From 7dee2d80699e8839020912ceaa455fb3855e68fb Mon Sep 17 00:00:00 2001 From: Sicherhaven Date: Mon, 23 Mar 2026 14:02:27 +0530 Subject: [PATCH] Initial commit: Eventify Server Health Monitor Full-stack real-time server monitoring dashboard with: - Express.js backend with SSH-based metrics collection - React + TypeScript + Tailwind CSS + shadcn/ui frontend - CPU, memory, disk, Docker container, and Nginx monitoring - Pure SVG charts (CPU area chart + memory donut) - Gilroy font, 10s auto-refresh polling - Multi-page dashboard with sidebar navigation Co-Authored-By: Claude Opus 4.6 --- .claude/launch.json | 19 + .gitignore | 5 + client/.gitignore | 24 + client/components.json | 21 + client/index.html | 13 + client/package.json | 31 + client/public/favicon.svg | 1 + client/public/fonts/Gilroy-Bold.ttf | Bin 0 -> 137256 bytes client/public/fonts/Gilroy-ExtraBold.ttf | Bin 0 -> 133044 bytes client/public/fonts/Gilroy-Medium.ttf | Bin 0 -> 143724 bytes client/public/fonts/Gilroy-Regular.ttf | Bin 0 -> 145148 bytes client/public/fonts/Gilroy-SemiBold.ttf | Bin 0 -> 139820 bytes client/public/icons.svg | 24 + client/src/App.tsx | 242 + client/src/assets/hero.png | Bin 0 -> 44919 bytes client/src/assets/typescript.svg | 1 + client/src/assets/vite.svg | 1 + client/src/components/dashboard/CpuChart.tsx | 164 + .../src/components/dashboard/DiskUsageBar.tsx | 63 + .../src/components/dashboard/DockerTable.tsx | 78 + client/src/components/dashboard/KpiCard.tsx | 74 + .../src/components/dashboard/MemoryDonut.tsx | 92 + .../src/components/dashboard/NetworkStats.tsx | 57 + .../src/components/dashboard/NginxStatus.tsx | 52 + .../components/dashboard/RefreshControl.tsx | 45 + client/src/components/layout/Header.tsx | 86 + client/src/components/layout/Sidebar.tsx | 120 + .../src/components/pages/ContainersPage.tsx | 188 + client/src/components/pages/MemoryPage.tsx | 111 + client/src/components/pages/NetworkPage.tsx | 177 + client/src/components/pages/StoragePage.tsx | 145 + client/src/components/ui/badge.tsx | 48 + client/src/components/ui/card.tsx | 92 + client/src/components/ui/progress.tsx | 31 + client/src/components/ui/select.tsx | 190 + client/src/components/ui/separator.tsx | 26 + client/src/components/ui/table.tsx | 114 + client/src/components/ui/tooltip.tsx | 55 + client/src/hooks/useCpuHistory.ts | 26 + client/src/hooks/useServerHealth.ts | 49 + client/src/index.css | 154 + client/src/lib/utils.ts | 18 + client/src/main.tsx | 10 + client/src/types/server.ts | 54 + client/tsconfig.json | 31 + client/vite.config.ts | 22 + package-lock.json | 5330 +++++++++++++++++ package.json | 15 + server/package.json | 23 + server/src/config.ts | 21 + server/src/index.ts | 57 + server/src/routes/health.ts | 95 + server/src/services/disk.ts | 28 + server/src/services/docker.ts | 92 + server/src/services/memory.ts | 30 + server/src/services/nginx.ts | 28 + server/src/services/system.ts | 36 + server/src/ssh/client.ts | 141 + server/src/types/index.ts | 56 + server/tsconfig.json | 13 + 60 files changed, 8719 insertions(+) create mode 100644 .claude/launch.json create mode 100644 .gitignore create mode 100644 client/.gitignore create mode 100644 client/components.json create mode 100644 client/index.html create mode 100644 client/package.json create mode 100644 client/public/favicon.svg create mode 100644 client/public/fonts/Gilroy-Bold.ttf create mode 100644 client/public/fonts/Gilroy-ExtraBold.ttf create mode 100644 client/public/fonts/Gilroy-Medium.ttf create mode 100644 client/public/fonts/Gilroy-Regular.ttf create mode 100644 client/public/fonts/Gilroy-SemiBold.ttf create mode 100644 client/public/icons.svg create mode 100644 client/src/App.tsx create mode 100644 client/src/assets/hero.png create mode 100644 client/src/assets/typescript.svg create mode 100644 client/src/assets/vite.svg create mode 100644 client/src/components/dashboard/CpuChart.tsx create mode 100644 client/src/components/dashboard/DiskUsageBar.tsx create mode 100644 client/src/components/dashboard/DockerTable.tsx create mode 100644 client/src/components/dashboard/KpiCard.tsx create mode 100644 client/src/components/dashboard/MemoryDonut.tsx create mode 100644 client/src/components/dashboard/NetworkStats.tsx create mode 100644 client/src/components/dashboard/NginxStatus.tsx create mode 100644 client/src/components/dashboard/RefreshControl.tsx create mode 100644 client/src/components/layout/Header.tsx create mode 100644 client/src/components/layout/Sidebar.tsx create mode 100644 client/src/components/pages/ContainersPage.tsx create mode 100644 client/src/components/pages/MemoryPage.tsx create mode 100644 client/src/components/pages/NetworkPage.tsx create mode 100644 client/src/components/pages/StoragePage.tsx create mode 100644 client/src/components/ui/badge.tsx create mode 100644 client/src/components/ui/card.tsx create mode 100644 client/src/components/ui/progress.tsx create mode 100644 client/src/components/ui/select.tsx create mode 100644 client/src/components/ui/separator.tsx create mode 100644 client/src/components/ui/table.tsx create mode 100644 client/src/components/ui/tooltip.tsx create mode 100644 client/src/hooks/useCpuHistory.ts create mode 100644 client/src/hooks/useServerHealth.ts create mode 100644 client/src/index.css create mode 100644 client/src/lib/utils.ts create mode 100644 client/src/main.tsx create mode 100644 client/src/types/server.ts create mode 100644 client/tsconfig.json create mode 100644 client/vite.config.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 server/package.json create mode 100644 server/src/config.ts create mode 100644 server/src/index.ts create mode 100644 server/src/routes/health.ts create mode 100644 server/src/services/disk.ts create mode 100644 server/src/services/docker.ts create mode 100644 server/src/services/memory.ts create mode 100644 server/src/services/nginx.ts create mode 100644 server/src/services/system.ts create mode 100644 server/src/ssh/client.ts create mode 100644 server/src/types/index.ts create mode 100644 server/tsconfig.json diff --git a/.claude/launch.json b/.claude/launch.json new file mode 100644 index 0000000..8a2ca19 --- /dev/null +++ b/.claude/launch.json @@ -0,0 +1,19 @@ +{ + "version": "0.0.1", + "configurations": [ + { + "name": "backend", + "runtimeExecutable": "npx", + "runtimeArgs": ["tsx", "src/index.ts"], + "port": 3001, + "cwd": "server" + }, + { + "name": "frontend", + "runtimeExecutable": "npx", + "runtimeArgs": ["vite", "--port", "5173"], + "port": 5173, + "cwd": "client" + } + ] +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ec4d0f6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +dist/ +.env +*.local +.DS_Store diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/client/components.json b/client/components.json new file mode 100644 index 0000000..13e1db0 --- /dev/null +++ b/client/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/index.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} diff --git a/client/index.html b/client/index.html new file mode 100644 index 0000000..bb0236a --- /dev/null +++ b/client/index.html @@ -0,0 +1,13 @@ + + + + + + + Eventify Server Monitor + + +
+ + + diff --git a/client/package.json b/client/package.json new file mode 100644 index 0000000..8969650 --- /dev/null +++ b/client/package.json @@ -0,0 +1,31 @@ +{ + "name": "client", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "devDependencies": { + "@tailwindcss/vite": "^4.2.2", + "tailwindcss": "^4.2.2", + "typescript": "~5.9.3", + "vite": "^8.0.1" + }, + "dependencies": { + "@tanstack/react-query": "^5.95.0", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react-swc": "^4.3.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^0.577.0", + "radix-ui": "^1.4.3", + "react": "^19.2.4", + "react-dom": "^19.2.4", +"tailwind-merge": "^3.5.0", + "tailwindcss-animate": "^1.0.7" + } +} diff --git a/client/public/favicon.svg b/client/public/favicon.svg new file mode 100644 index 0000000..6893eb1 --- /dev/null +++ b/client/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client/public/fonts/Gilroy-Bold.ttf b/client/public/fonts/Gilroy-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1aea716b2e58df547dac15e3f9acc3c540ef25ad GIT binary patch literal 137256 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

7$YLGB&}p>@PplwIfH2UiNaPMR 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

f~7Js%1~MD)Czm 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

SY4%v;eI{Sup-vP0_=dqxTfRE zN5ALO=MR48S-8%6_buabC6-i;Xn5c1j@zWdkJFvD`X-#>Zz5Sq`Tm~l$lBZ|(`83? z?v@|^(CoXh~t;0uOe;%KY?`@M{mNAv+w5SR)r zuPCTaJ}X5=VdchCA=PbJOQO_qiLsd)3W1!*~1qNsTAnb{iLWX2%~~mByFhi6h-q zlhYp>c-t1nf=(TQ0IRLsBGyeBGDR}n4NM$)!37$Z0%)a5zV^TA?7-^X(8j@cLwACg zKM&o>;5fH7bf=h){2+9vgLfx>9lA3?zvTNvcP^+*V%OTD&*R=5y32xosjARjj(axT z1eeMaZX>663l_f^x)b!WpN8%v>(|eO?o?3kz8bpIF5!L=x--G>!y32#%sgc24bPYFR8MvMO%P$I6V-vcbz0&Hj*)S=XjQz}d?D}uzx)3{2 zD+#-vaP2%V=Ds0VhtC%5Y}N;}gI13ESUj8TsRj9g7JRpGT}jAbZrjGK?Q1Sty}ADL z^^KDzPpx0RwSM8Um2KbB8%chq0EiEhg@&uA>C8{n{%3vJbItW%+o*M|d70Ux{n>b{d<5lp5lq zE85mKtlzq-ZNuhG4K2$yZEa}xg`T+C7y2U0e#0iRKXEzvZ@6^Tx;2{{8@9BxZ(7r~ zp`m%slKCprLDmAMY~mTJr%@YdS{+BRe6xr~k~{9ZnyhcOirYYOqAwbP=^RH$2R{JW|8Gkg`+Pi~krY0^;(7S&IhK?(RmtNWsLgbnatK@Nz;Tg5;*ZDPoqK{v~+rCUN3Z;+&$iQhsei(Y93>|<9 z_$&R`VWSEelNxkd`@^Rgz}^;vz|BLD#Tdr;I0BFy8H|DoAA=O;IIJ~|hr&E8I6Rm@ zzihygv%tBLSyMA$I2B-=jwt1k0OZlEs~?M;*eph?IgEVA1;-=zcLLhFCj}=5r_f7J zWmomn=@xIJP8Tu8Eus6I8JrcIjUL#!SW-GaxFEO?ZJ1@jKL_t+=j4A2ZVG+_U;TPC zus$Dr208F2gZCh{{6VPA({}FtJ&a#3vjg{b<7Hknc z68tCf=ig(eso&B7j|blmeh_?>k@$t+!)OKmh&^yt2fqt`AN)hGmX5ZL?$=6F-AYqk z%($(Q<`SB63yt*O>?U&=BicKHcVhSS-r%<2UC5|jiHzT#;Q8P_mvkwY#-38v<&f#@ zz=UEU=yZWAbLFnWIjk`Cb46F>s$Gq%b^U`^gV$K)9pDDKLF`a5#0_=B(1slmydM0- z)w_{y6kXS(Vc{y`%~O}cWUr;cbYrhEpTsR zceCe$JKREK6BfHA!LHyJ;K!$epMe?wEBLuP!=35Qa%a19+_~;NcRuEFE_6%XGPm5V za4TJlTNQlLUF24~HEyk2=UOpnw!yWzjqYOC?l!s2?h?1fUFzQMwz|vQJKW{&o$dyN9vX`fc|e_lRQ(!m8zt;2t!E zcLsN}kH)_TR|O9-&-!BUaPW=bf#7}?;~#VX8C>VSkDTHU-Q(^@?#J#4_Y=3v{g->v z{nS0>e&(JIKJI>wMV3zle+WJs+!)*vd=8n9kHX{p*Wkh6o9-F+3%A?-(*4S@w}gAn z{l@*){kQv_+v9%kp2z;%3+_etl6#pw2L9;wy8m&ny4T$6?hQ0J-*g?W6B5QH5{YCY zl}MwJm&K}GK2b=NCCb@Xwh|j)#Y9!28XJqX=z`ZFlR7XlC^0xO1nIV6iQ&i})+a_L zMkPig#W$AO#vzIE$jBa+I6N^SF%hY(BNCGmlM{`|@HRugPt9JkVa=pTbEafxuV1#J zy=_BwnZIXdFK=(z(vn$bx9se;i`q7{tjjL*_rlzjZJU>^Skba!b74i7GjrUEWkiu# z>2Jpo-?Giw`7tjYr^|UVLEI4z5JBeXXWc+51IMPR$Q{VCDUrR^7*k><*l)Y z%zU5IR)0Iqf3?AXby_T7`G(j-<}@FCgWZzHZ@4Jgvf-la>0vJ0{JrAz)t79zXj%Iu z>syyyvbmxy{*+nhQ)>4qEsRB8-X43%Ec7Y0``aS_)h4@H<4>O27~Y#Qi+!NYc1tZ* zEpApVE(!B>iNB|pw6EE4QTh^HE0)A_RdGrDDZ3=B?MwWYuuBI?VfsyB`b}Z_O=0>?VfsyB`pseb&0+e@ zVfxKs`pseb&0+e@VfxKs`pseb&0+e@VfxKs`pseb&0+e@VfxKs`cuMmr-bQF3Dcbt zraL7}cS@MlPA!@r zuP)!by1gZIZz@~0W=rHQ-vm0_-~(;SFKcgayR@}s)#j|ZF4*Do?-RVIC+NE4|l5{?lW>N>o;!Rx~XMzeoaGb+lto33r|U|x^PvR z^TIWDU2E4?eAo69_HCZrY$4~IurPd{)BU-z>wS3?e$%E&ll?>E)P~r@411`Jf++(; zYo0#trpE4ZH#PNm?n)~RKefmE={=rj^mv}#`g$KK9M4vKF`QikbI{m-jwa96nA0Sd5!j`8==O(6-+4 zY!1aKN0?_heV)BbFo2-A?$r{P^n!@?;I z3+K}?r%%HIS{ml^b$`jmO}_5su)4<))jiIz?#*R&uW(lP3K!PBoMGK7ps#yeSy7|Z zW`1Q`YwNOhTv-ho@>$i|2C0Ip5RM=?%QkIpX>Wyq!JXOKqPJP2bysY)3ApR*WLEBQ z%P`l`=9ggJ?c8CUhr1a;l3CdgaWhMRWdE`IG43balemAHIGiuxHru>jaTMI6iKl|( zar5Rc4r*6yZEp>xw=Ubff%&jP1*C=k6QTY5zUO?NZ4l_i^~~4z7gFz)-zcWuyn%)w zJNumD>w^Vz7cPeLc*^W^>VuD-diwnO;GTu2pIRU6T09&7*BQ3z9eNyLe6B0To_UKx zL@8!_aU*($$m};n`F=ydBksZT=$Q&CdHV?g&v`!~%6f&UTehrqb8z*F73((!*RO0{ zb5Zb7^`YSARnXzVt#~X8zMxSz*k;#z?0UalAF}JW?fRHqe`MDu)kA`3+S*rc2%g=@ zL$GI)Qh7;ZRq(1t_n>1F5bjc&c?$=k1XpSoarL!$=*X>j;+_|zXSU(yiV+g7;+eCL zn_UHSj*z;_)Tl|Pb5+cy$-oukAY5zg%HkF7GP@46Yq?!(;V?~wJ2VgO&slJIR>NI+ zdvGOOoEuo_y*0QKKE}Pwi604m2#;qs+?JPu*WvQ0M>zO2mIL=`%T*$ALqhf!c$4^1 zcz-s$YmW-~|HCFD@V-2}`;`cn^s5#wd0FUxg-_F17Pcu)!BPz{Hdb0M6Yl_8Jj;x7Ko zWpHKQ9dcvd4<|-^lb`m`BHR6$mhSf6z1-vZR=(EA zq7uc!vW`bfL}QNXn|OeuLF)C?`CZiazC$Q%2Fv>9I9DkaAz+n}zVimEvUL8;`p$ z?s)gUCFYx8AfOi?#&~Go(X0F7%~?N(zec|$jVk(N-|?%L4p*-uluDT+R&b!(MGj92 zP8G!f4_)~@iF2xj5ERxDdQ>pp{g;J1-TlPw^W77KKS?x4aJqY(s~|+*dT4suX{`AL zJ}FvO|7QdfsV%)W6_7e_ytXcnYk)U_}7eoqyI^$~#zRcqg^^F7V{L;Xl8} z)#UtT5PXw0l7DAaPTF>W}0r?&IOpnvBZ*cI8!$X-Cd`VI8%Uj!Ex-0;pl_|$a1 z8isn&LJcJ3V9uePyMtBSH+Al{kY$A0MO+H?Mi`eu?zWJ`*DZ8KkmcJNQmCc<`{N$a zxs%j)Bek?E7=r&?zF5KY%FaE+f1lfdU!FAfSm-*^iSj#$kjfFcv7F??6743=J;b?( zIQLkHm0h8B193N#l5m(txpE-9w8nQdYZ7Y1;qJB|QPZJXthll`oRDYGiyrIT)47*p zXXmq>&)d_k&Rv~%;ClzYySeY;y0`NMyS_{+wYcu<+{W=bZ+COuWp{=0$DYn>@bfX- zJL?zV=-5H$I@n+5bL4j~>HW;^dvHBQzJ9^eZXXvl6Lh|TKl#8C)o%Iw+;M-MmMoCd zy|`b9(&l*^U-*#E@!cD|-QD>j{yJVXm&)Kv_FU*MpFP-jdQRc{{?VpNQ{TN|r{egX zp7FP@h{NAs=zLwNa_*(|b+unSZtoX;K^S6JNJ_WYa;d9I{}_4lX(&F`nA%WjDjys^ z?!K?e$Nqj%?)nPX>z%aHqn~CFJ$`SU8}j_txee<{k*e%nKWsObew~l0?5fv&{d(nE zb+)r-=+65hAD@=5<;c&{C_VJy3csQsy>(b?#dyiA?fQtYdzrfe_|o()Q&)g}I-=U% z-?#gFzt04C5v5TI<9&MjmqPS(0rNWYvm;l^%lh5 zKF<65%(c_TSGEt*j})WtHOlT`mv-g;mM-70PvUEkLoSupcL;MIJ^OLWD7@1Pz7?wX zFREu7lX`@(cx}WW{%1*#k(Sg{hgRG1*etBCLybUS0edSR0>4t)G}a3L?D6f{6-FhjCGMZ` z<`zyL({959`e*y0Mp?IE{nHRW*|zN!II590`9 zF4aQlA>5=krmhrP@pQcjM+N+!{s{%XTroi`d) zmR4?*Hhzz(FA`Q%$1Q}vkC<*$VwP*-z_k-!V&W@3?ZpMG*!K@u-|5O5j)MA@eee5E zZ%m`Qgoffu-nfP%fZV-*$`@fQ7IJ%EJcPB1@)fJ?2(yKGh}B#C%iiv&1-rkYtb*pQ z`1h69uzg}9quM4Om*v&qsN_p|)Pwi?vzCbUCSP;bLj?oYSMXyj;uKt1eyxox@Akdm zPknB0=N*LAT|HVbApBr09%aPBTPXSHiR(@)L02w(T=vFOi-M(HqRt4*xXLvw8~ISm z!dm1Em%{Dse9A%^9j!DtG~#$Hpiq8vke}k>y`^O(GgqwUgs~K+bd6j-4@y@)J%5%W z`Qlq2TiW*wrir6~OlC9gDI8_+ho&<3leln&2^aS>In5%Hnn%HdI+~*z ziOpl+MZKFN35Ve-^6(xww@G*m*AnvwIP!2AuEYI7cno>C3?Je8QMe5K;4^%j7(T&K z38&$keEThq1RRHd=lUNUc{mT>;rd;UBpitEas5w@B%FvJaDAL34M*a~Tz|rmhA;6` z()t-k2L8m)x&DG93!mbbl=s&hIrtUNas4ev4!*_j2=jZ63^I0q;QAs*20q5ir29vX zJp7FRA+6Uq%HV6f!Szj!vY?Zr93BTVWcVCOu4$J>6FJL{8x?Ro&?tcGQNfjiYn7|w zTH|VhA~Wdz=tT~21Go-!1L2Jhc7wSNWhJZz&d3O28|g+8&r!%@=HZbX!z$n`Hw&)e zY&V;?$Ya9WJkA|QoF}>y;WwS^PR8d{WHKG{mN?b`^4&8A)Xlel2$hn_DvDK z%0F?v4NgEcvX8VE@{ivp%+K7A>S4U`PW0$J5qB;49Q{20&Z`d^1V) zE`X~z8Hk+-Z(}YYbPNSXn&Ap&j5iqFj}4#vv)*|Lv4~?}cuHb<6dblOK=e4|jrDsQ=?C5mlmOxH04S3W$-c@yQ-=Qn;;j&=APM{kDkJSsfK@pc@k4(vKJ zxTAAE?i8o)@iTg_yMD^UzE1ys5${W9{QJ0n7Af%P%u%~K1I|3Tjh|)Ic{%x3tDVqw z9&X?IZ7$SFAAY;6s1~1{d}1G9=weI-;OVRa9rtq@ubC(p4BDs zexgabpDGD=FWKIU`@Ga-*jI(J>k+?Mvf#*Yv(?E};*qku*&bSo^=+eFM8jz=5zfg( zQ|!9|jbhQ9!BZTbmeiM`D0}^kPBEIV^op>etdwStFFc)Mbd*s+`bIhQ-|jnwQrwC+ z{#0^%|0u37#x9Ds6fS%t%E_qf(i=}X^_7C^g12ElqZs;3QMD%AV>7-|JxAZFcKMCx znGn97;&GS0uyB1|s4*W)pKs%yQGG{#VL8Hz6o=abA)Ft2f8YzXe zXRY65IW*cyyJs|qW0ijequol5a@PJ=fw5O}lp$@fmJxA1M?&i(K~DM+P#0fC&#}O2 z;|}PGudxa$8Hq9Af5{iQFhzft%!vQ#S!X1}lO`t_8`Z)9+$2S!eC5FZat8{k%zT}@ERCFe(U7f0B#;$IsRwOgzTdh{! zb^34pH+*mqKMx_%TCP6y&?28YPC?VYe*Rm@7b#>355_t6s(C?9RP%ECQhP|!RlgjN z6#1*ZLWT;FMq9{FI(@}m`UKNt3Omj-NX9w_%BrsN69>mJenRZ zxt`VZ==Jnv={bFs9{jZc0SmQq;^yQ9#D_ElbLq{-snYyf7-y$&MDOf$_aWSV!<4=t zM&qONmAIl2&gn4=FNG&pyERMKXooArWro$nFSWUMJakXDpXbY$Z@XcRc*s%-;@C*F z5D(SMT_8?E7@y5BsknPQi5D?dN{U=BV+s$QV8+xzEUEj#RYFfd?$_W+l&jM z+7rJ=oPKeCJTGNi*n-w>)DGOqUb*h&L8z{pA)b&XAV+=hOZ~^B2Omr&)oCRYkA>A} z@mBCte)iWkF-~5OEG2^aaJ==>5Sl-!zv-wnJf?n-0mh4r163TdSv?YnKbFHm=g*;6 zUcga~Ug$FXmvf}h)ojJRkt2(S=4QseEgV@S&n~0S-^h_ghmTEWr5y;iLqCxD?dRO* znBSr$i2Dof3%I}Rz6@Uciu(#~v;_(Oh+m^_{Dop>9mGX- zT0?58UC^XMZv9G65tOC)TE9#f%7=}fQ#-i)wSMX)ef>0lt+QFIpUZkm&DV><7py#jF`q~2 zt@}f{c5t4&JXe8SN7C9}m;G2qkP8?&mfM&idmPf}zKjv#u3nnMUuGnb&hR~q0*^|= zSNgp{qH-It2f19~`_u#y{*04;g-9!S{`jLGw}k^(D|?kEk9YlbZ|9qxZ}wH}zs!%c z;i*Tz66TA1{#tjiimhdBme#1Ee*q`%BA2e`o>E-bv>yRF*-#43e7e%uw`3XzQTERXd#(KWe?0nv*9D^6%5BkiI^&{2DaQcIN8Lwmegqd46zZeBc>Q-YO0{cwB zJpJh4--mgBnOMWwh(T`*9xYDfH^T7NNBQbmJx9KAchtvxc*Wc0>H*KZvo%lNLwCmd zN9l_8)@PEyKtl@w9k=B9lA4RPuM4fFM-deL5xDizl*!OztPv--*!(e zOmnZzF^*#$Aj3M?@z5hDaAe@HpU9h&IFhV}v4+RW!YN=M*}KWGHg+2H-{~CM&*N?Q z%l1v4l_^&B;KDBfBG2F`!xGM!P<&@`WXvK?B{p%+g;G6_qY~RV=R=X*%#p%M_^pJw zjU$1joIALF4q5vQ)=9od%wOWjVGn0J?j0O?ESUTYZ|~)(#PZ0$;&UHIWpF=72Hl)* zaD9*?gTZiiNMJGN`&@s>kw6dYM}&ETBZGaIU0k2!$YCYsDcnzUWP)cn zGH7rK=6=PI!LH1+Tz|un#a7N9!avWE!v@a_TwmhIVZ-MYaZz`25hPRG_xIrF$m2UiknJ4LS5u9|DDt3{8Z z&N1i0-p(LaJ%_joxdX;x1u5bc=gC z?yYVsZ!dF~;eLmE2ktA}6~z25_b%L5x+_`J#i|W&uXa~+#i|Yd*Sc$Qf53f!IInZp z!H4~j`w;2g;BLhKAKgFVbCbJ?R6gcDMrjFHepN%5wfh;p*WLdHbKBRc5YxJy-M=rr8_pOKo$(b#zd}BVIHGeDEv8ik z&(Bre_h-Fd-^N$Wc{re71SzU}4;3Y7Q3Qgfef|8mr5O4Or zFEdEQX}?6|*yr7sN-*nB-@gL-#0XN?)gP*%QVmQdpDL$dY%rs$N)y3bJw6W1@aI@x zyBW-KOYkZ5Hvb6>a~oFG{u!%lp9RBw4jrb?gJZr3Zuv4+*1jscW8fCq#*&q+d%-IA zfla;v7I_GpSr3Cp9tD4VAH4A+@Wn3h#8cphXTS@;0w4SaJn%f@|4WSfdl~OvXPoa~ zgikQCXBg27jO3M!;MI)Wb&S|U7^&+Sp=DWYW0$^a+@6@XCMH{ASI4Y~m28Mb_QP&r zEWMR6w5P=`S>f_FxMYFr_l%Q?^aW~FbYP#Sw&?*-PrGe~8_vu6mal@ zo4kwEeW)m&@SdRWij#((6i1FeQb+#~Pb^{FBI))HqIav8r|DBe84KRdk>dT0j2mO< zJCemKg5eJ1Dw(?^*rpM;q=JfI#;L@v9+xtCx-=N_C}Na6T^6Z}V;BQOBUTuVSc4SP ziMT}_RvC3z0c|*+9G=QiZT1jrpa>TdMigO%(Snsm3)aTyznsy31uPP_^X)r=E6L}( zIT9wdS2Rhza+A?3nv7o2r1P>yFV@hj?;vK;h&4tdRv2|yVbo!T(SbIwSb-klzu^{*Sb;|21GpdLs4$7YB7OZK+>-k%((8BPmh@kd{{Jv;QIi!W16Ypk z_anGPSymWjSz(lAg;ACjCJ9(H`m)000gFauR+v;^(P+&IqcUrZ%B(Rev&N{*8ly66 zjLNJrDznC<|B6OaR+tQ6(J0FblLRapeOY1Be|e)RD@_J4Zx zawFYHG;l?I)|#|n5u1(2;xh|r!JN zG(tiRi*l_nI<*2@it3$jv-O4kblcG^(`HsL~3fM{A4*tpRfV z>WSzI={lP5_zL&IK=VxQm z?OsS)>RrjO=Xgn1Nwg-cwjO#a14-)xN$Ue%8rILTlGXT$W9szB@B8JF<422GNOWyq`^nh;3H}9ku>;78cZY&CX&{=iC9}EtQC{AgG0tM zk$X(-le!}HJnc4<(TIv9Q*POD-u z<*HJVBko9|;THFgUzm!dr_ghW`+4{NuC_|PiyVH3G+#9RDz7bPACmTF4wYap>)u)~ zkk*V!M~a-a_}@XzOZP@x>RT+2x4<_mbbhg0t*SJ)=)IMf8c_m#O{&Br9Ua9&i}Rf{ zc#O8ePf({ai_-WRcR}4XxE{y#0O76FC3=PwLcQ4Tw2OZVuU&LaRAZKxkcQb;J6VPN z6)#p(suM|7sN9c7DN|nQf{9*~=C(AjwK8)fepcgz6+~#||8Y*=6TikgX%aq0%_FH$ z$|z4>%ArL4S^pu8H!L3A={tNajcE0GL0z~uX6YzD9_m5}^RY)7Vx_bW(4}38ge5ar zH=YSj#I7-%4&lcPwvA6><^D8>O$M{o;;=ig5NvgUy8! zmHqAMJo{68ktT~kyaNB5Nc!>LF+3D4SDMSK42oxj1u2EpC?6fY^J{_0b#xrsqeM|o zBaTYxt{m&|Igb1fUjtpG`XiUBZ;6%@T4{N@ywK_!>^Nnja`qRX8pRX!ZccI z2KJ@ud>~P9E1s2NmxdgRrG~s0Z^jfdJ6b^KJ0)FLoC*`)GIVV2Ukn3v--zx_2_Ri&LM5JAV~eKpgpgSeO3@Z^d&@ z+sL1zm7fMvXyngfnf=$q^IP{@dYR;zyu7uSz?A$YvX{wO1`AImt^wi(P!Ey_+$o84 z+IXAc*RZa->SaHUcujW?YB<`{&9q$fi(~7^Pj?Fq-Gs|Dwjk-RKvFuC@9Q1sdhe>uDSH?Nbc%wUcpksLcR!K&>qN3E#;Yq@>;@x0nW#Mska3 zaOg<746*Dne#f(WQvg05}CMKnrH7UikNhxMcN--UiQcRnaV#cHt zGbW{&F)76ic^z)OCuzMW6Vg7?AuKlvsM7jS()v)w`cT69P>uDWl=Yzs>qBYlLs{!X z)z*g!)`xP|hlq%ACllogv@-$R`tQtalT7Rmx{?w2C z4PF4BIYx5rRMNNPmbSxbMNigCZ5@QnR`yEu%H##fd+4=C(Aw&aX1xMf)7&VUn=(uE z@J9#_i3+FwV)Ih+cF;fIp8lmYIW@ZjiVfbCvfQ4FX(Kfw#2rSX$NKXDBq&G}4_I=# z>Pe>kf;A}h7h7TR>6Bt3O=hGD9q(zS_mL}{oB8~Ho3CWiX}5UOsy(jT%q42ROHzS2 zh0nqgSQ=eeDT+6`69;q%F)HsKpY1U`9kZ>Xu&TT0M>ubjp$qFpZ@S-=1FwZ`GZNK{ zPVvljw>hKIB(JZRzKrKxA@#oWw!15;JB894pUWt(mWq8#O@}fWQ5XwtSRbE0;xB!x z_fZJl?Tw(wpp$#Vdlv+}O4zWbtQ>vB>`P$f68s4!MS1vmyX7bj&Kj3BxWfxNmkhVc6Qw5g!H9tu`kHX3!SZPXoOqi#9xtC&}b-#-)@tQO9`xc(END(j4T z9RQ6f8PNvg`X6Fkf9WL;#ZO~(wXH1=H`*j`e8mYymwLVX6f|QaV~F_vDWh`J#_^AM z{gO-{Yx>RujO$o5u4B=-{6*tB7LDszG@kxQlkD(3{lg3|R2v;sX5(A6>1UNO&b3ie zNwrtA_s}MCEUETt<6BNJUVqBC{3*j7)yBO{g}i=o`HRNGEE*59XqctiIGIJ00jV{9 z<^<#H7mc4e!8rRx<7Z9?9^@z*KQje4^C8^g?5B*MSu}oT$~gN)<7XC)pIJ11X3_YW zMdN1{jh|UGo_@-B`bFbsri`CiG=65v_?boHXQqswSu}oT%J`W@<7cLfpIOu-G#F{z z`H{w#A8CAf*(J;Zf0Fp9HHnW}llZ7Li4V`6&xG9h0d4^FT)nF&9uB^eR({Gj2x;S# zri^!xHh$>@w7ZTI<7yvTxBJXbWL=(aLo}dzY=)cFO;5+vVx~j0W1z z>1Ja5HQ(*=I~@gy#B||nc8IzWe61OkjZERF1&1jbeR|(*d=D`R;q{$Smpwuv8(_HD zMm|4!TZq#9+8!C}cEJ-g>@N>Sa>E$r3Nc*h{~d+1j}%U!>v3Q8llL@0I(=mE7WAtQ&(US?ICw&ho8amlXV zHwxAts;xg{4f?AL?#m3y3kKy`qaiC}G-Rd0TzQOotRlw=!vN7bl2(9}e{XGBwA*+} zS%9Kv7_l=!|JVG|Q^Lt`2C2DY!tx-_fmS$N@-B<1AGoA}Rov6C$NDrYfLF24)*Z>( z}iEk}DW6AX>hC$#} z%LlDLl>EeOnnF#=PHJ>UdGgj(WntBy@qDRd(W$zLPT5tBPL(n`v9l^$tC79ct~`z; zkFqf8&nTtH4r?7H)*01+?oq0`4<@zfj8fG-RwG?GP)_!hi$lzwYnBi?W!E)2W#2VA zW#=_IW$!gQ2a;lR%KmF~$_{LF${uWV$}Vhlu2f6-lRCMt>%?BHY{r`1*df#p7XQLC z%7N~(BO9IF>!<`NvM(E*Q7h>lwG8*DHFSrA7Qvynth<{O{3(01(K!%zbjm($bjDLy zNh;CVJ+2;>Q}UOK){u=g-xl3pbv+p!v{|%BmzPlzaT=ra#=GcWvb(mkb1kup ziV5?EkGBA={Dko-tbP_oVPo(78{R?B#J-5-gm=;_5XA!Y5PO`)@ogeq(i|-!dPVxg zo?aP+pIS(|k;sH|Xs44(?&8&D4YK^KG0W=QaK6+mu)=16$#51ZSW6qMRoMKjU@cl< z^Rt4@&zwPDg~45g&BH1T;wlW{JoTM2>N{%?mon-*YgRYP4C1mzgC`8`DvSnq27MI< zeH8|M6;?LC?}SV2PFxR#yoZ&a@knLfi3H}|$Z9>vZ0u2HTf2~o`W1Voyuj?~Pt25Z z%!g``J*s!(+yvLiE)&NhL3A=UaL!;>vmDB713R)_#th_YB++j~()`oxp!x;!a}PVC zK7{3)$Jo#GNp=T#7W(`p_8sj=q}Y3-$W9wW*;ivcyMs0-j!eu-%uCEqEKHo0xFE4I zu{Ns_9WnoQbC0sC5C1j6K+QOhKUns3kSKqIKKO5my@@|16Ukh%l6k=3WPNg6aze5(IX!u7^0?&5$py(X zlIJCtCs!voBsV87OJ2#oLDwa3OnyB1>EvgUUr26C-jlpP`B3uP$;XmENd4fr)V$RE)WXzRsS8poQ)^QjQ(ID(r>;s} zle#|j(bUbUTT^$WzLdHvb#Lk$shz1uQr}NKk$Nh%JN28?^Ql)-uftHwq|4LQ>4E9t z=`rcU(v#9t(?_T0q)$wrmR_7bC%rViD&3lHPrp5VMf$zzYtuKRZ%W^izCC?s`YY+X z)AywxOh24{H2uT$uJqICU#0&${X%+g`cIieCYPzq)Mf@}>NDdq6EcmN>6v3Q$7N2= zEXbUZIWMz3vpTaOvpI8F=E}^~nd>q)W;>7C*|ph?*)7@2 zvsY!W$zGrRX!hppt=T)WU&`KreSTbiLcTFSJ%4Qe zxctfa1^F}b=jE5@SLZk6H|H(E9>>S^aE!EkDmsS@ zwyy87{KUsad&@YcF>;fI`G&?7_?rsv$Lwd#?L)@KT6s{1@3!#X9UH%c7v&$vfq#iR z-ga?ZeIRb1&)#_Zt^HlQ)zv~PW3Tr0-#TmSgK*zef~#(HK@0}==^uxO7;cZ_`2%$E-{#d7vBRW!!TB#aritC|86iD zqmK^OKTONUqR{POFE%cP{?-<8nE#9XdyRF@j~fT+@AJ^Df5qs#ZvJuF*}`-iS8IqV z8vSBpY`3xNVEqrXIB&PH^quDJHEzdY6{$&nN!uRI^Dzl)b8Rz@3d6RhM)`zv7mS8}J4QB0YZXByuB5pW77vlg5~@^?Di znIkzW(f2xr*@|?%s#y7*$11HX0o2&~Z>?!|^+(@-A^hnjto;rO&fyrwJm!2j57OYO zXFd1Br1uflZ>O40|Iy6t?|}bsCz@I(plP|CxON2hG6%X3YwBm1Ce=!8sqYF}YzMbZ zSV(^nKE%t+`~M+$&EYj+cb0T|NmfyrRKH~>pwcS{ag=^ LfA({8qWk{?^3XId literal 0 HcmV?d00001 diff --git a/client/public/icons.svg b/client/public/icons.svg new file mode 100644 index 0000000..e952219 --- /dev/null +++ b/client/public/icons.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/src/App.tsx b/client/src/App.tsx new file mode 100644 index 0000000..a84e2f8 --- /dev/null +++ b/client/src/App.tsx @@ -0,0 +1,242 @@ +import { useEffect, useState } from "react" +import { QueryClient, QueryClientProvider } from "@tanstack/react-query" +import { Cpu, MemoryStick, HardDrive, Container } from "lucide-react" +import { Sidebar } from "@/components/layout/Sidebar" +import { Header } from "@/components/layout/Header" +import { KpiCard } from "@/components/dashboard/KpiCard" +import { CpuChart } from "@/components/dashboard/CpuChart" +import { MemoryDonut } from "@/components/dashboard/MemoryDonut" +import { DockerTable } from "@/components/dashboard/DockerTable" +import { NginxStatus } from "@/components/dashboard/NginxStatus" +import { DiskUsageBar } from "@/components/dashboard/DiskUsageBar" +import { NetworkStats } from "@/components/dashboard/NetworkStats" +import { ContainersPage } from "@/components/pages/ContainersPage" +import { MemoryPage } from "@/components/pages/MemoryPage" +import { StoragePage } from "@/components/pages/StoragePage" +import { NetworkPage } from "@/components/pages/NetworkPage" +import { useServerHealth } from "@/hooks/useServerHealth" +import { useCpuHistory } from "@/hooks/useCpuHistory" +import { formatBytes } from "@/lib/utils" + +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + retry: 2, + refetchOnWindowFocus: true, + }, + }, +}) + +const PAGE_TITLES: Record = { + dashboard: "Dashboard", + containers: "Containers", + memory: "Memory", + storage: "Storage", + network: "Network", +} + +function DashboardContent({ activePage }: { activePage: string }) { + const { + data, + isLoading, + isError, + error, + refetch, + refetchInterval, + setRefetchInterval, + dataUpdatedAt, + } = useServerHealth() + + const { history, addDataPoint } = useCpuHistory() + + useEffect(() => { + if (data?.system) { + addDataPoint(data.system.cpuPercent, data.timestamp) + } + }, [data, addDataPoint]) + + const lastUpdated = dataUpdatedAt ? new Date(dataUpdatedAt).toISOString() : null + + if (isError) { + return ( +

+ ) + } + + if (isLoading || !data) { + return ( +
+
refetch()} + lastUpdated={null} + isLoading={true} + /> +
+
+ {Array.from({ length: 4 }).map((_, i) => ( +
+ ))} +
+
+
+
+
+
+
+
+ ) + } + + const system = data.system + const memory = data.memory + const disk = data.disk + const containers = data.docker ?? [] + const nginx = data.nginx + + const renderPage = () => { + switch (activePage) { + case "containers": + return + case "memory": + return + case "storage": + return + case "network": + return + default: + return ( + <> + {/* KPI cards */} +
+ + + + c.status.toLowerCase().includes("up")).length} running`} + icon={Container} + iconColor="text-purple-500" + /> +
+ + {/* Charts row */} +
+
+ +
+ {memory && } +
+ + {/* Docker table */} + + + {/* Bottom row */} +
+ {nginx && } + + {disk && } +
+ + ) + } + } + + return ( +
+
refetch()} + lastUpdated={lastUpdated} + isLoading={isLoading} + /> + +
+ {renderPage()} +
+
+ ) +} + +export default function App() { + const [activePage, setActivePage] = useState("dashboard") + + return ( + +
+ + +
+
+ ) +} diff --git a/client/src/assets/hero.png b/client/src/assets/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..cc51a3d20ad4bc961b596a6adfd686685cd84bb0 GIT binary patch literal 44919 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 JPDHLkV1myZcL)Fg literal 0 HcmV?d00001 diff --git a/client/src/assets/typescript.svg b/client/src/assets/typescript.svg new file mode 100644 index 0000000..6c9d69c --- /dev/null +++ b/client/src/assets/typescript.svg @@ -0,0 +1 @@ + diff --git a/client/src/assets/vite.svg b/client/src/assets/vite.svg new file mode 100644 index 0000000..5101b67 --- /dev/null +++ b/client/src/assets/vite.svg @@ -0,0 +1 @@ +Vite diff --git a/client/src/components/dashboard/CpuChart.tsx b/client/src/components/dashboard/CpuChart.tsx new file mode 100644 index 0000000..e1bd496 --- /dev/null +++ b/client/src/components/dashboard/CpuChart.tsx @@ -0,0 +1,164 @@ +import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card" + +interface CpuChartProps { + history: Array<{ cpuPercent: number; timestamp: string }> + loadAvg: [number, number, number] +} + +const CHART_WIDTH = 600 +const CHART_HEIGHT = 220 +const PADDING = { top: 10, right: 10, bottom: 30, left: 45 } +const INNER_W = CHART_WIDTH - PADDING.left - PADDING.right +const INNER_H = CHART_HEIGHT - PADDING.top - PADDING.bottom + +export function CpuChart({ history, loadAvg }: CpuChartProps) { + const currentCpu = history.length > 0 ? history[history.length - 1].cpuPercent : 0 + + // Build points + const points = history.map((point, i) => { + const x = PADDING.left + (history.length > 1 ? (i / (history.length - 1)) * INNER_W : INNER_W / 2) + const y = PADDING.top + INNER_H - (point.cpuPercent / 100) * INNER_H + return { x, y, time: point.timestamp, cpu: point.cpuPercent } + }) + + // Build line path + const linePath = points.length > 1 + ? points.map((p, i) => `${i === 0 ? "M" : "L"} ${p.x} ${p.y}`).join(" ") + : "" + + // Build area path (line + close to bottom) + const areaPath = points.length > 1 + ? `${linePath} L ${points[points.length - 1].x} ${PADDING.top + INNER_H} L ${points[0].x} ${PADDING.top + INNER_H} Z` + : "" + + // Y-axis ticks + const yTicks = [0, 25, 50, 75, 100] + + // X-axis labels (show ~5 evenly spaced) + const xLabelCount = Math.min(5, points.length) + const xLabels = points.length > 1 + ? Array.from({ length: xLabelCount }, (_, i) => { + const idx = Math.round((i / (xLabelCount - 1)) * (points.length - 1)) + const p = points[idx] + const time = new Date(p.time).toLocaleTimeString("en-US", { + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + hour12: false, + }) + return { x: p.x, label: time } + }) + : points.length === 1 + ? [{ x: points[0].x, label: new Date(points[0].time).toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit", second: "2-digit", hour12: false }) }] + : [] + + return ( + + + CPU & Load Average + + Current: {currentCpu.toFixed(1)}% | Load: {loadAvg.map((l) => l.toFixed(2)).join(", ")} + + + +
+ + + + + + + + + {/* Grid lines */} + {yTicks.map((tick) => { + const y = PADDING.top + INNER_H - (tick / 100) * INNER_H + return ( + + ) + })} + + {/* Y-axis labels */} + {yTicks.map((tick) => { + const y = PADDING.top + INNER_H - (tick / 100) * INNER_H + return ( + + {tick}% + + ) + })} + + {/* Area fill */} + {areaPath && ( + + )} + + {/* Line */} + {linePath && ( + + )} + + {/* Dots */} + {points.map((p, i) => ( + + ))} + + {/* X-axis labels */} + {xLabels.map((label, i) => ( + + {label.label} + + ))} + +
+
+
+ ) +} diff --git a/client/src/components/dashboard/DiskUsageBar.tsx b/client/src/components/dashboard/DiskUsageBar.tsx new file mode 100644 index 0000000..1e8c538 --- /dev/null +++ b/client/src/components/dashboard/DiskUsageBar.tsx @@ -0,0 +1,63 @@ +import type { DiskStats } from "@/types/server" +import { formatBytes, cn } from "@/lib/utils" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" +import { Progress } from "@/components/ui/progress" +import { HardDrive } from "lucide-react" + +interface DiskUsageBarProps { + disk: DiskStats +} + +export function DiskUsageBar({ disk }: DiskUsageBarProps) { + const percent = disk.usedPercent + const colorClass = + percent >= 80 + ? "[&_[data-slot=progress-indicator]]:bg-red-500" + : percent >= 60 + ? "[&_[data-slot=progress-indicator]]:bg-amber-500" + : "[&_[data-slot=progress-indicator]]:bg-green-500" + + return ( + + + + + Disk Usage + + + +
+

+ {formatBytes(disk.used)} / {formatBytes(disk.total)} +

+

+ {formatBytes(disk.free)} free +

+
+ +
+
+ Usage + = 80 + ? "text-red-600" + : percent >= 60 + ? "text-amber-600" + : "text-green-600" + )} + > + {percent.toFixed(1)}% + +
+ +
+ +

+ Mount: {disk.mountPoint} +

+
+
+ ) +} diff --git a/client/src/components/dashboard/DockerTable.tsx b/client/src/components/dashboard/DockerTable.tsx new file mode 100644 index 0000000..5539c24 --- /dev/null +++ b/client/src/components/dashboard/DockerTable.tsx @@ -0,0 +1,78 @@ +import type { ContainerStats } from "@/types/server" +import { formatBytes } from "@/lib/utils" +import { cn } from "@/lib/utils" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table" + +interface DockerTableProps { + containers: ContainerStats[] +} + +export function DockerTable({ containers }: DockerTableProps) { + return ( + + + Docker Containers + + + + + + Status + Name + CPU % + Memory + Mem % + Net I/O + + + + {containers.length === 0 && ( + + + No containers running + + + )} + {containers.map((container) => { + const isRunning = container.status.toLowerCase().includes("up") + return ( + + + + + {container.name} + + {container.cpuPercent.toFixed(2)}% + + + {formatBytes(container.memUsage)} / {formatBytes(container.memLimit)} + + + {container.memPercent.toFixed(1)}% + + + {formatBytes(container.netInput)} / {formatBytes(container.netOutput)} + + + ) + })} + +
+
+
+ ) +} diff --git a/client/src/components/dashboard/KpiCard.tsx b/client/src/components/dashboard/KpiCard.tsx new file mode 100644 index 0000000..66bd225 --- /dev/null +++ b/client/src/components/dashboard/KpiCard.tsx @@ -0,0 +1,74 @@ +import type { LucideIcon } from "lucide-react" +import { TrendingUp, TrendingDown } from "lucide-react" +import { cn } from "@/lib/utils" +import { Card, CardContent } from "@/components/ui/card" + +interface KpiCardProps { + title: string + value: string + subtitle?: string + icon: LucideIcon + iconColor?: string + trend?: { value: string; positive: boolean } +} + +export function KpiCard({ + title, + value, + subtitle, + icon: Icon, + iconColor = "text-primary", + trend, +}: KpiCardProps) { + return ( + + +
+ + {title} + +
+ +
+
+ +
+

+ {value} +

+ {(subtitle || trend) && ( +
+ {trend && ( + <> + {trend.positive ? ( + + ) : ( + + )} + + {trend.value} + + + )} + {subtitle && ( + + {subtitle} + + )} +
+ )} +
+
+
+ ) +} diff --git a/client/src/components/dashboard/MemoryDonut.tsx b/client/src/components/dashboard/MemoryDonut.tsx new file mode 100644 index 0000000..fa7fd63 --- /dev/null +++ b/client/src/components/dashboard/MemoryDonut.tsx @@ -0,0 +1,92 @@ +import type { MemoryStats } from "@/types/server" +import { formatBytes } from "@/lib/utils" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" + +interface MemoryDonutProps { + memory: MemoryStats +} + +const COLORS = ["#f59e0b", "#3b82f6", "#22c55e"] +const LABELS = ["Used", "Cached", "Free"] + +export function MemoryDonut({ memory }: MemoryDonutProps) { + const actualUsed = Math.max(0, memory.total - memory.available) + const freeBytes = Math.max(0, memory.total - actualUsed - memory.cached) + const total = actualUsed + memory.cached + freeBytes + + const segments = [ + { value: actualUsed, bytes: actualUsed }, + { value: memory.cached, bytes: memory.cached }, + { value: freeBytes, bytes: freeBytes }, + ] + + // Calculate stroke-dasharray segments for SVG circle + const radius = 70 + const circumference = 2 * Math.PI * radius + let cumulativeOffset = 0 + + const arcs = segments.map((seg, i) => { + const pct = total > 0 ? seg.value / total : 0 + const dashLength = pct * circumference + const gap = circumference - dashLength + const offset = -cumulativeOffset + cumulativeOffset += dashLength + return { dashLength, gap, offset, color: COLORS[i], label: LABELS[i], bytes: seg.bytes } + }) + + return ( + + + Memory Usage + + +
+ {/* SVG Donut */} +
+ + {arcs.map((arc, i) => ( + + ))} + + {/* Center text */} +
+
+

+ {memory.usedPercent.toFixed(0)}% +

+

+ {formatBytes(memory.used)} / {formatBytes(memory.total)} +

+
+
+
+ + {/* Legend */} +
+ {arcs.map((arc) => ( +
+
+ + {arc.label} ({formatBytes(arc.bytes)}) + +
+ ))} +
+
+ + + ) +} diff --git a/client/src/components/dashboard/NetworkStats.tsx b/client/src/components/dashboard/NetworkStats.tsx new file mode 100644 index 0000000..e843f55 --- /dev/null +++ b/client/src/components/dashboard/NetworkStats.tsx @@ -0,0 +1,57 @@ +import { useMemo } from "react" +import { ArrowDownToLine, ArrowUpFromLine, Network } from "lucide-react" +import type { ContainerStats } from "@/types/server" +import { formatBytes } from "@/lib/utils" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" + +interface NetworkStatsProps { + containers: ContainerStats[] +} + +export function NetworkStats({ containers }: NetworkStatsProps) { + const totals = useMemo(() => { + let inbound = 0 + let outbound = 0 + for (const c of containers) { + inbound += c.netInput + outbound += c.netOutput + } + return { inbound, outbound } + }, [containers]) + + return ( + + + + + Network I/O + + + +
+
+ +
+
+

Inbound

+

+ {formatBytes(totals.inbound)} +

+
+
+ +
+
+ +
+
+

Outbound

+

+ {formatBytes(totals.outbound)} +

+
+
+
+
+ ) +} diff --git a/client/src/components/dashboard/NginxStatus.tsx b/client/src/components/dashboard/NginxStatus.tsx new file mode 100644 index 0000000..097b462 --- /dev/null +++ b/client/src/components/dashboard/NginxStatus.tsx @@ -0,0 +1,52 @@ +import type { NginxStatus as NginxStatusType } from "@/types/server" +import { cn } from "@/lib/utils" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" +import { Badge } from "@/components/ui/badge" +import { Shield } from "lucide-react" + +interface NginxStatusProps { + nginx: NginxStatusType +} + +export function NginxStatus({ nginx }: NginxStatusProps) { + const isActive = nginx.status === "active" + const isFailed = nginx.status === "failed" + + return ( + + + + + Nginx Status + + + +
+ {isActive && ( + + + + + )} + + {nginx.status.charAt(0).toUpperCase() + nginx.status.slice(1)} + +
+

+ Checked: {new Date(nginx.checkedAt).toLocaleTimeString()} +

+ {isFailed && ( +

+ Service requires attention +

+ )} +
+
+ ) +} diff --git a/client/src/components/dashboard/RefreshControl.tsx b/client/src/components/dashboard/RefreshControl.tsx new file mode 100644 index 0000000..637b0ba --- /dev/null +++ b/client/src/components/dashboard/RefreshControl.tsx @@ -0,0 +1,45 @@ +import { useMemo } from "react" +import { cn } from "@/lib/utils" + +interface RefreshControlProps { + lastUpdated: string | null + isConnected: boolean +} + +function formatRelativeTime(timestamp: string): string { + const diff = Date.now() - new Date(timestamp).getTime() + const seconds = Math.floor(diff / 1000) + if (seconds < 5) return "just now" + if (seconds < 60) return `${seconds}s ago` + const minutes = Math.floor(seconds / 60) + return `${minutes}m ago` +} + +export function RefreshControl({ lastUpdated, isConnected }: RefreshControlProps) { + const relativeTime = useMemo(() => { + if (!lastUpdated) return "..." + return formatRelativeTime(lastUpdated) + }, [lastUpdated]) + + return ( +
+ + {isConnected && ( + + )} + + + {relativeTime} +
+ ) +} diff --git a/client/src/components/layout/Header.tsx b/client/src/components/layout/Header.tsx new file mode 100644 index 0000000..f54facc --- /dev/null +++ b/client/src/components/layout/Header.tsx @@ -0,0 +1,86 @@ +import { RefreshCw, Bell } from "lucide-react" +import { cn } from "@/lib/utils" +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select" +import { RefreshControl } from "@/components/dashboard/RefreshControl" + +interface HeaderProps { + title?: string + refreshInterval: number + onRefreshIntervalChange: (ms: number) => void + onRefresh: () => void + lastUpdated: string | null + isLoading?: boolean +} + +export function Header({ + title = "Dashboard", + refreshInterval, + onRefreshIntervalChange, + onRefresh, + lastUpdated, + isLoading, +}: HeaderProps) { + const today = new Date().toLocaleDateString("en-US", { + month: "short", + day: "numeric", + year: "numeric", + }) + + return ( +
+ {/* Left */} +
+

{title}

+

{today}

+
+ + {/* Right */} +
+ + + + + + + + +
+ BS +
+
+
+ ) +} diff --git a/client/src/components/layout/Sidebar.tsx b/client/src/components/layout/Sidebar.tsx new file mode 100644 index 0000000..a07689e --- /dev/null +++ b/client/src/components/layout/Sidebar.tsx @@ -0,0 +1,120 @@ +import { + LayoutDashboard, + Container, + MemoryStick, + HardDrive, + Wifi, + Settings, + HelpCircle, + Server, +} from "lucide-react" +import { cn } from "@/lib/utils" +import { Separator } from "@/components/ui/separator" + +interface NavItem { + id: string + label: string + icon: React.ElementType +} + +const mainNav: NavItem[] = [ + { id: "dashboard", label: "Dashboard", icon: LayoutDashboard }, + { id: "containers", label: "Containers", icon: Container }, + { id: "memory", label: "Memory", icon: MemoryStick }, + { id: "storage", label: "Storage", icon: HardDrive }, + { id: "network", label: "Network", icon: Wifi }, +] + +const bottomNav: NavItem[] = [ + { id: "settings", label: "Settings", icon: Settings }, + { id: "help", label: "Help & Support", icon: HelpCircle }, +] + +interface SidebarProps { + activePage: string + onNavigate: (page: string) => void +} + +function NavButton({ + item, + active, + onClick, +}: { + item: NavItem + active: boolean + onClick: () => void +}) { + const Icon = item.icon + return ( + + ) +} + +export function Sidebar({ activePage, onNavigate }: SidebarProps) { + return ( + + ) +} diff --git a/client/src/components/pages/ContainersPage.tsx b/client/src/components/pages/ContainersPage.tsx new file mode 100644 index 0000000..38f0f92 --- /dev/null +++ b/client/src/components/pages/ContainersPage.tsx @@ -0,0 +1,188 @@ +import { useMemo } from "react" +import type { ContainerStats } from "@/types/server" +import { formatBytes, cn } from "@/lib/utils" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table" +import { Container, Cpu, MemoryStick, Network } from "lucide-react" + +interface ContainersPageProps { + containers: ContainerStats[] +} + +export function ContainersPage({ containers }: ContainersPageProps) { + const running = containers.filter((c) => c.status.toLowerCase().includes("up")).length + const stopped = containers.length - running + + const totals = useMemo(() => { + let cpu = 0 + let mem = 0 + let netIn = 0 + let netOut = 0 + for (const c of containers) { + cpu += c.cpuPercent + mem += c.memUsage + netIn += c.netInput + netOut += c.netOutput + } + return { cpu, mem, netIn, netOut } + }, [containers]) + + return ( +
+ {/* Summary cards */} +
+ + +
+
+ +
+
+

Running

+

{running}

+
+
+
+
+ + +
+
+ +
+
+

Stopped

+

{stopped}

+
+
+
+
+ + +
+
+ +
+
+

Total CPU

+

{totals.cpu.toFixed(2)}%

+
+
+
+
+ + +
+
+ +
+
+

Total Memory

+

{formatBytes(totals.mem)}

+
+
+
+
+
+ + {/* Detailed table */} + + + All Containers + + + + + + Status + Name + Image + Uptime + CPU % + Memory + Mem % + Net I/O + Block I/O + PIDs + + + + {containers.length === 0 && ( + + + No containers found + + + )} + {containers.map((c) => { + const isRunning = c.status.toLowerCase().includes("up") + return ( + + + + + {c.name} + + {c.image} + + {c.status} + + {c.cpuPercent.toFixed(2)}% + + + {formatBytes(c.memUsage)} / {formatBytes(c.memLimit)} + + + {c.memPercent.toFixed(1)}% + + + {formatBytes(c.netInput)} / {formatBytes(c.netOutput)} + + + {formatBytes(c.blockInput)} / {formatBytes(c.blockOutput)} + + {c.pids} + + ) + })} + +
+
+
+ + {/* Network totals */} + + + + + Aggregate Network I/O + + + +
+
+

Total Inbound

+

{formatBytes(totals.netIn)}

+
+
+

Total Outbound

+

{formatBytes(totals.netOut)}

+
+
+
+
+
+ ) +} diff --git a/client/src/components/pages/MemoryPage.tsx b/client/src/components/pages/MemoryPage.tsx new file mode 100644 index 0000000..7ac756d --- /dev/null +++ b/client/src/components/pages/MemoryPage.tsx @@ -0,0 +1,111 @@ +import type { MemoryStats } from "@/types/server" +import { formatBytes } from "@/lib/utils" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" +import { MemoryDonut } from "@/components/dashboard/MemoryDonut" +import { Progress } from "@/components/ui/progress" +import { cn } from "@/lib/utils" + +interface MemoryPageProps { + memory: MemoryStats | null +} + +export function MemoryPage({ memory }: MemoryPageProps) { + if (!memory) { + return ( +
+ Memory data unavailable +
+ ) + } + + const actualUsed = Math.max(0, memory.total - memory.available) + const segments = [ + { label: "Used", value: actualUsed, color: "bg-amber-500" }, + { label: "Cached", value: memory.cached, color: "bg-blue-500" }, + { label: "Free", value: Math.max(0, memory.total - actualUsed - memory.cached), color: "bg-green-500" }, + ] + + const pctUsed = memory.usedPercent + const pctColor = pctUsed >= 80 ? "text-red-600" : pctUsed >= 60 ? "text-amber-600" : "text-green-600" + const barColor = pctUsed >= 80 + ? "[&_[data-slot=progress-indicator]]:bg-red-500" + : pctUsed >= 60 + ? "[&_[data-slot=progress-indicator]]:bg-amber-500" + : "[&_[data-slot=progress-indicator]]:bg-green-500" + + return ( +
+ {/* Top summary cards */} +
+ + +

Total

+

{formatBytes(memory.total)}

+
+
+ + +

Used

+

{formatBytes(memory.used)}

+

{pctUsed.toFixed(1)}%

+
+
+ + +

Available

+

{formatBytes(memory.available)}

+
+
+ + +

Cached

+

{formatBytes(memory.cached)}

+
+
+
+ + {/* Chart + breakdown */} +
+ + + + + Memory Breakdown + + + {/* Overall progress */} +
+
+ Overall Usage + {pctUsed.toFixed(1)}% +
+ +
+ + {/* Segment bars */} + {segments.map((seg) => { + const pct = memory.total > 0 ? (seg.value / memory.total) * 100 : 0 + return ( +
+
+
+ + {seg.label} +
+ {formatBytes(seg.value)} ({pct.toFixed(1)}%) +
+
+
+
+
+ ) + })} + + +
+
+ ) +} diff --git a/client/src/components/pages/NetworkPage.tsx b/client/src/components/pages/NetworkPage.tsx new file mode 100644 index 0000000..80af9fe --- /dev/null +++ b/client/src/components/pages/NetworkPage.tsx @@ -0,0 +1,177 @@ +import { useMemo } from "react" +import type { ContainerStats, NginxStatus } from "@/types/server" +import { formatBytes, cn } from "@/lib/utils" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table" +import { ArrowDownToLine, ArrowUpFromLine, Globe, Shield } from "lucide-react" + +interface NetworkPageProps { + containers: ContainerStats[] + nginx: NginxStatus | null +} + +export function NetworkPage({ containers, nginx }: NetworkPageProps) { + const totals = useMemo(() => { + let inbound = 0 + let outbound = 0 + for (const c of containers) { + inbound += c.netInput + outbound += c.netOutput + } + return { inbound, outbound, total: inbound + outbound } + }, [containers]) + + return ( +
+ {/* Summary cards */} +
+ + +
+
+ +
+
+

Total Inbound

+

{formatBytes(totals.inbound)}

+
+
+
+
+ + +
+
+ +
+
+

Total Outbound

+

{formatBytes(totals.outbound)}

+
+
+
+
+ + +
+
+ +
+
+

Total Traffic

+

{formatBytes(totals.total)}

+
+
+
+
+ + +
+
+ +
+
+

Nginx

+

{nginx?.status ?? "Unknown"}

+
+
+
+
+
+ + {/* Nginx status */} + {nginx && ( + + + + + Nginx Reverse Proxy + + + +
+ + + + + + {nginx.status === "active" ? "Active" : nginx.status === "inactive" ? "Inactive" : "Failed"} + + + Last checked: {new Date(nginx.checkedAt).toLocaleTimeString()} + +
+
+
+ )} + + {/* Per-container network */} + + + Network I/O by Container + + + + + + Container + Inbound + Outbound + Total + + + + {containers.length === 0 && ( + + + No containers found + + + )} + {[...containers] + .sort((a, b) => (b.netInput + b.netOutput) - (a.netInput + a.netOutput)) + .map((c) => ( + + {c.name} + + {formatBytes(c.netInput)} + + + {formatBytes(c.netOutput)} + + + {formatBytes(c.netInput + c.netOutput)} + + + ))} + +
+
+
+
+ ) +} diff --git a/client/src/components/pages/StoragePage.tsx b/client/src/components/pages/StoragePage.tsx new file mode 100644 index 0000000..14a5490 --- /dev/null +++ b/client/src/components/pages/StoragePage.tsx @@ -0,0 +1,145 @@ +import type { DiskStats } from "@/types/server" +import { formatBytes, cn } from "@/lib/utils" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" +import { Progress } from "@/components/ui/progress" +import { HardDrive } from "lucide-react" + +interface StoragePageProps { + disk: DiskStats | null +} + +const DONUT_RADIUS = 80 +const DONUT_CIRCUMFERENCE = 2 * Math.PI * DONUT_RADIUS + +export function StoragePage({ disk }: StoragePageProps) { + if (!disk) { + return ( +
+ Disk data unavailable +
+ ) + } + + const pct = disk.usedPercent + const pctColor = pct >= 80 ? "text-red-600" : pct >= 60 ? "text-amber-600" : "text-green-600" + const strokeColor = pct >= 80 ? "#ef4444" : pct >= 60 ? "#f59e0b" : "#22c55e" + const barColor = pct >= 80 + ? "[&_[data-slot=progress-indicator]]:bg-red-500" + : pct >= 60 + ? "[&_[data-slot=progress-indicator]]:bg-amber-500" + : "[&_[data-slot=progress-indicator]]:bg-green-500" + + const usedDash = (pct / 100) * DONUT_CIRCUMFERENCE + const freeDash = DONUT_CIRCUMFERENCE - usedDash + + return ( +
+ {/* Summary cards */} +
+ + +

Total Capacity

+

{formatBytes(disk.total)}

+
+
+ + +

Used

+

{formatBytes(disk.used)}

+

{pct.toFixed(1)}%

+
+
+ + +

Free

+

{formatBytes(disk.free)}

+
+
+
+ + {/* Donut + details */} +
+ + + + + Disk Usage + + + +
+ + {/* Background circle */} + + {/* Used arc */} + + +
+
+

{pct.toFixed(0)}%

+

used

+
+
+
+ +
+
+ + Used ({formatBytes(disk.used)}) +
+
+ + Free ({formatBytes(disk.free)}) +
+
+
+
+ + + + Details + + +
+
+ Usage + {pct.toFixed(1)}% +
+ +
+ +
+
+ Mount Point + {disk.mountPoint} +
+
+ Total + {formatBytes(disk.total)} +
+
+ Used + {formatBytes(disk.used)} +
+
+ Available + {formatBytes(disk.free)} +
+
+
+
+
+
+ ) +} diff --git a/client/src/components/ui/badge.tsx b/client/src/components/ui/badge.tsx new file mode 100644 index 0000000..6eb2a05 --- /dev/null +++ b/client/src/components/ui/badge.tsx @@ -0,0 +1,48 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" +import { Slot } from "radix-ui" + +import { cn } from "@/lib/utils" + +const badgeVariants = cva( + "inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90", + secondary: + "bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90", + destructive: + "bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90", + outline: + "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground", + ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground", + link: "text-primary underline-offset-4 [a&]:hover:underline", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +function Badge({ + className, + variant = "default", + asChild = false, + ...props +}: React.ComponentProps<"span"> & + VariantProps & { asChild?: boolean }) { + const Comp = asChild ? Slot.Root : "span" + + return ( + + ) +} + +export { Badge, badgeVariants } diff --git a/client/src/components/ui/card.tsx b/client/src/components/ui/card.tsx new file mode 100644 index 0000000..acf57dc --- /dev/null +++ b/client/src/components/ui/card.tsx @@ -0,0 +1,92 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +function Card({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardHeader({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardTitle({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardDescription({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardAction({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardContent({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardFooter({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +export { + Card, + CardHeader, + CardFooter, + CardTitle, + CardAction, + CardDescription, + CardContent, +} diff --git a/client/src/components/ui/progress.tsx b/client/src/components/ui/progress.tsx new file mode 100644 index 0000000..5a0a5a6 --- /dev/null +++ b/client/src/components/ui/progress.tsx @@ -0,0 +1,31 @@ +"use client" + +import * as React from "react" +import { Progress as ProgressPrimitive } from "radix-ui" + +import { cn } from "@/lib/utils" + +function Progress({ + className, + value, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { Progress } diff --git a/client/src/components/ui/select.tsx b/client/src/components/ui/select.tsx new file mode 100644 index 0000000..c0dc712 --- /dev/null +++ b/client/src/components/ui/select.tsx @@ -0,0 +1,190 @@ +"use client" + +import * as React from "react" +import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react" +import { Select as SelectPrimitive } from "radix-ui" + +import { cn } from "@/lib/utils" + +function Select({ + ...props +}: React.ComponentProps) { + return +} + +function SelectGroup({ + ...props +}: React.ComponentProps) { + return +} + +function SelectValue({ + ...props +}: React.ComponentProps) { + return +} + +function SelectTrigger({ + className, + size = "default", + children, + ...props +}: React.ComponentProps & { + size?: "sm" | "default" +}) { + return ( + + {children} + + + + + ) +} + +function SelectContent({ + className, + children, + position = "item-aligned", + align = "center", + ...props +}: React.ComponentProps) { + return ( + + + + + {children} + + + + + ) +} + +function SelectLabel({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SelectItem({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + + + + + {children} + + ) +} + +function SelectSeparator({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SelectScrollUpButton({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +function SelectScrollDownButton({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { + Select, + SelectContent, + SelectGroup, + SelectItem, + SelectLabel, + SelectScrollDownButton, + SelectScrollUpButton, + SelectSeparator, + SelectTrigger, + SelectValue, +} diff --git a/client/src/components/ui/separator.tsx b/client/src/components/ui/separator.tsx new file mode 100644 index 0000000..db91e97 --- /dev/null +++ b/client/src/components/ui/separator.tsx @@ -0,0 +1,26 @@ +import * as React from "react" +import { Separator as SeparatorPrimitive } from "radix-ui" + +import { cn } from "@/lib/utils" + +function Separator({ + className, + orientation = "horizontal", + decorative = true, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { Separator } diff --git a/client/src/components/ui/table.tsx b/client/src/components/ui/table.tsx new file mode 100644 index 0000000..a47749b --- /dev/null +++ b/client/src/components/ui/table.tsx @@ -0,0 +1,114 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +function Table({ className, ...props }: React.ComponentProps<"table">) { + return ( +
+ + + ) +} + +function TableHeader({ className, ...props }: React.ComponentProps<"thead">) { + return ( + + ) +} + +function TableBody({ className, ...props }: React.ComponentProps<"tbody">) { + return ( + + ) +} + +function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">) { + return ( + tr]:last:border-b-0", + className + )} + {...props} + /> + ) +} + +function TableRow({ className, ...props }: React.ComponentProps<"tr">) { + return ( + + ) +} + +function TableHead({ className, ...props }: React.ComponentProps<"th">) { + return ( +
[role=checkbox]]:translate-y-[2px]", + className + )} + {...props} + /> + ) +} + +function TableCell({ className, ...props }: React.ComponentProps<"td">) { + return ( + [role=checkbox]]:translate-y-[2px]", + className + )} + {...props} + /> + ) +} + +function TableCaption({ + className, + ...props +}: React.ComponentProps<"caption">) { + return ( +
+ ) +} + +export { + Table, + TableHeader, + TableBody, + TableFooter, + TableHead, + TableRow, + TableCell, + TableCaption, +} diff --git a/client/src/components/ui/tooltip.tsx b/client/src/components/ui/tooltip.tsx new file mode 100644 index 0000000..d4d2254 --- /dev/null +++ b/client/src/components/ui/tooltip.tsx @@ -0,0 +1,55 @@ +import * as React from "react" +import { Tooltip as TooltipPrimitive } from "radix-ui" + +import { cn } from "@/lib/utils" + +function TooltipProvider({ + delayDuration = 0, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function Tooltip({ + ...props +}: React.ComponentProps) { + return +} + +function TooltipTrigger({ + ...props +}: React.ComponentProps) { + return +} + +function TooltipContent({ + className, + sideOffset = 0, + children, + ...props +}: React.ComponentProps) { + return ( + + + {children} + + + + ) +} + +export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } diff --git a/client/src/hooks/useCpuHistory.ts b/client/src/hooks/useCpuHistory.ts new file mode 100644 index 0000000..b7f5614 --- /dev/null +++ b/client/src/hooks/useCpuHistory.ts @@ -0,0 +1,26 @@ +import { useCallback, useRef, useState } from "react" + +export interface CpuDataPoint { + cpuPercent: number + timestamp: string +} + +const MAX_POINTS = 30 + +export function useCpuHistory() { + const historyRef = useRef([]) + const [history, setHistory] = useState([]) + const lastTimestampRef = useRef(null) + + const addDataPoint = useCallback((cpuPercent: number, timestamp: string) => { + if (timestamp === lastTimestampRef.current) return + lastTimestampRef.current = timestamp + + const next = [...historyRef.current, { cpuPercent, timestamp }] + if (next.length > MAX_POINTS) next.shift() + historyRef.current = next + setHistory(next) + }, []) + + return { history, addDataPoint } +} diff --git a/client/src/hooks/useServerHealth.ts b/client/src/hooks/useServerHealth.ts new file mode 100644 index 0000000..8003c60 --- /dev/null +++ b/client/src/hooks/useServerHealth.ts @@ -0,0 +1,49 @@ +import { useQuery } from "@tanstack/react-query" +import { useState } from "react" +import type { ServerOverview } from "@/types/server" + +const STORAGE_KEY = "server-monitor-refresh-interval" + +function getStoredInterval(): number { + try { + const stored = localStorage.getItem(STORAGE_KEY) + if (stored) { + const parsed = parseInt(stored, 10) + if ([5000, 10000, 30000, 60000].includes(parsed)) return parsed + } + } catch { + // localStorage unavailable + } + return 10000 +} + +export function useServerHealth() { + const [refetchInterval, setRefetchInterval] = useState(getStoredInterval) + + const query = useQuery({ + queryKey: ["server-overview"], + queryFn: async () => { + const res = await fetch("/api/overview") + if (!res.ok) throw new Error(`Server responded with ${res.status}`) + return res.json() + }, + refetchInterval, + refetchIntervalInBackground: true, + staleTime: 0, + }) + + const updateInterval = (ms: number) => { + setRefetchInterval(ms) + try { + localStorage.setItem(STORAGE_KEY, String(ms)) + } catch { + // localStorage unavailable + } + } + + return { + ...query, + refetchInterval, + setRefetchInterval: updateInterval, + } +} diff --git a/client/src/index.css b/client/src/index.css new file mode 100644 index 0000000..878351f --- /dev/null +++ b/client/src/index.css @@ -0,0 +1,154 @@ +@import "tailwindcss"; +@import "tailwindcss/theme" theme(static); + +/* Gilroy Font Family */ +@font-face { + font-family: "Gilroy"; + src: url("/fonts/Gilroy-Regular.ttf") format("truetype"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Gilroy"; + src: url("/fonts/Gilroy-Medium.ttf") format("truetype"); + font-weight: 500; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Gilroy"; + src: url("/fonts/Gilroy-SemiBold.ttf") format("truetype"); + font-weight: 600; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Gilroy"; + src: url("/fonts/Gilroy-Bold.ttf") format("truetype"); + font-weight: 700; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Gilroy"; + src: url("/fonts/Gilroy-ExtraBold.ttf") format("truetype"); + font-weight: 800; + font-style: normal; + font-display: swap; +} + +@custom-variant dark (&:is(.dark *)); + +:root { + --radius: 0.75rem; + --font-sans: "Gilroy", system-ui, -apple-system, sans-serif; + + --background: oklch(0.985 0.002 247); + --foreground: oklch(0.145 0.015 260); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0.015 260); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0.015 260); + --primary: oklch(0.55 0.18 255); + --primary-foreground: oklch(0.985 0.002 247); + --secondary: oklch(0.965 0.002 247); + --secondary-foreground: oklch(0.205 0.015 260); + --muted: oklch(0.965 0.002 247); + --muted-foreground: oklch(0.525 0.015 260); + --accent: oklch(0.965 0.002 247); + --accent-foreground: oklch(0.205 0.015 260); + --destructive: oklch(0.577 0.245 27.325); + --destructive-foreground: oklch(0.577 0.245 27.325); + --border: oklch(0.922 0.004 247); + --input: oklch(0.922 0.004 247); + --ring: oklch(0.55 0.18 255); + --chart-1: oklch(0.55 0.18 255); + --chart-2: oklch(0.6 0.2 145); + --chart-3: oklch(0.7 0.15 75); + --chart-4: oklch(0.6 0.2 300); + --chart-5: oklch(0.65 0.15 200); + + --sidebar-background: oklch(1 0 0); + --sidebar-foreground: oklch(0.525 0.015 260); + --sidebar-primary: oklch(0.55 0.18 255); + --sidebar-primary-foreground: oklch(1 0 0); + --sidebar-accent: oklch(0.955 0.015 255); + --sidebar-accent-foreground: oklch(0.55 0.18 255); + --sidebar-border: oklch(0.922 0.004 247); + + --status-healthy: oklch(0.6 0.2 145); + --status-warning: oklch(0.75 0.15 75); + --status-critical: oklch(0.577 0.245 27); +} + +@theme inline { + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-destructive-foreground: var(--destructive-foreground); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); + --color-sidebar-background: var(--sidebar-background); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-status-healthy: var(--status-healthy); + --color-status-warning: var(--status-warning); + --color-status-critical: var(--status-critical); + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + --font-sans: var(--font-sans); +} + +* { + border-color: var(--border); +} + +body { + font-family: var(--font-sans); + background: var(--background); + color: var(--foreground); + margin: 0; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* Respect reduced motion preference */ +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } +} diff --git a/client/src/lib/utils.ts b/client/src/lib/utils.ts new file mode 100644 index 0000000..d617b09 --- /dev/null +++ b/client/src/lib/utils.ts @@ -0,0 +1,18 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} + +export function formatBytes(bytes: number, decimals = 1): string { + if (bytes === 0) return "0 B" + const k = 1024 + const sizes = ["B", "KB", "MB", "GB", "TB"] + const i = Math.floor(Math.log(bytes) / Math.log(k)) + return parseFloat((bytes / Math.pow(k, i)).toFixed(decimals)) + " " + sizes[i] +} + +export function formatUptime(uptimeStr: string): string { + return uptimeStr.replace("up ", "").trim() +} diff --git a/client/src/main.tsx b/client/src/main.tsx new file mode 100644 index 0000000..8e749d7 --- /dev/null +++ b/client/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from "react" +import { createRoot } from "react-dom/client" +import App from "./App" +import "./index.css" + +createRoot(document.getElementById("root")!).render( + + + +) diff --git a/client/src/types/server.ts b/client/src/types/server.ts new file mode 100644 index 0000000..e4b52d1 --- /dev/null +++ b/client/src/types/server.ts @@ -0,0 +1,54 @@ +export interface SystemHealth { + hostname: string + uptime: string + loadAvg: [number, number, number] + cpuPercent: number + os: string +} + +export interface MemoryStats { + total: number + used: number + free: number + cached: number + available: number + usedPercent: number +} + +export interface DiskStats { + total: number + used: number + free: number + usedPercent: number + mountPoint: string +} + +export interface ContainerStats { + name: string + status: string + image: string + cpuPercent: number + memUsage: number + memLimit: number + memPercent: number + netInput: number + netOutput: number + blockInput: number + blockOutput: number + pids: number +} + +export interface NginxStatus { + status: "active" | "inactive" | "failed" + checkedAt: string +} + +export interface ServerOverview { + system: SystemHealth | null + memory: MemoryStats | null + disk: DiskStats | null + docker: ContainerStats[] | null + nginx: NginxStatus | null + errors: Record + timestamp: string +} diff --git a/client/tsconfig.json b/client/tsconfig.json new file mode 100644 index 0000000..e450141 --- /dev/null +++ b/client/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "target": "ES2023", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2023", "DOM", "DOM.Iterable"], + "types": ["vite/client"], + "skipLibCheck": true, + "jsx": "react-jsx", + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["src"] +} diff --git a/client/vite.config.ts b/client/vite.config.ts new file mode 100644 index 0000000..9ec66b2 --- /dev/null +++ b/client/vite.config.ts @@ -0,0 +1,22 @@ +import path from "path" +import tailwindcss from "@tailwindcss/vite" +import react from "@vitejs/plugin-react-swc" +import { defineConfig } from "vite" + +export default defineConfig({ + plugins: [react(), tailwindcss()], + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, + server: { + port: 5174, + proxy: { + "/api": { + target: "http://localhost:3002", + changeOrigin: true, + }, + }, + }, +}) diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..8525186 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5330 @@ +{ + "name": "eventify-server-monitor", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "eventify-server-monitor", + "workspaces": [ + "client", + "server" + ], + "devDependencies": { + "concurrently": "^9.1.0" + } + }, + "client": { + "version": "0.0.0", + "dependencies": { + "@tanstack/react-query": "^5.95.0", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react-swc": "^4.3.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^0.577.0", + "radix-ui": "^1.4.3", + "react": "^19.2.4", + "react-dom": "^19.2.4", + "tailwind-merge": "^3.5.0", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@tailwindcss/vite": "^4.2.2", + "tailwindcss": "^4.2.2", + "typescript": "~5.9.3", + "vite": "^8.0.1" + } + }, + "node_modules/@emnapi/core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz", + "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", + "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", + "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz", + "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz", + "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz", + "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz", + "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz", + "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz", + "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz", + "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz", + "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz", + "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz", + "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz", + "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz", + "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz", + "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz", + "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz", + "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz", + "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz", + "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz", + "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz", + "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz", + "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz", + "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz", + "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz", + "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz", + "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz", + "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz", + "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", + "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.6" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", + "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.120.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.120.0.tgz", + "integrity": "sha512-k1YNu55DuvAip/MGE1FTsIuU3FUCn6v/ujG9V7Nq5Df/kX2CWb13hhwD0lmJGMGqE+bE1MXvv9SZVnMzEXlWcg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accessible-icon": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.7.tgz", + "integrity": "sha512-XM+E4WXl0OqUJFovy6GjmxxFyx9opfCAIUku4dlKRd5YEPqt4kALOkQOp0Of6reHuUkJuiPBEc5k0o4z4lTC8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", + "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.15.tgz", + "integrity": "sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dialog": "1.1.15", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.7.tgz", + "integrity": "sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", + "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-is-hydrated": "0.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.3.tgz", + "integrity": "sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", + "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.16.tgz", + "integrity": "sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz", + "integrity": "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.1.8.tgz", + "integrity": "sha512-QM70k4Zwjttifr5a4sZFts9fn8FzHYvQ5PiB19O2HsYibaHSVt9fH9rzB0XZo/YcM+b7t/p7lYCT/F5eOeF5yQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-label": "2.1.7", + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.15.tgz", + "integrity": "sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", + "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz", + "integrity": "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menubar": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.16.tgz", + "integrity": "sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-navigation-menu": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz", + "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-one-time-password-field": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-one-time-password-field/-/react-one-time-password-field-0.1.8.tgz", + "integrity": "sha512-ycS4rbwURavDPVjCb5iS3aG4lURFDILi6sKI/WITUMZ13gMmn/xGjpLoqBAalhJaDk8I3UbCM5GzKHrnzwHbvg==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-is-hydrated": "0.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-password-toggle-field": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-password-toggle-field/-/react-password-toggle-field-0.1.3.tgz", + "integrity": "sha512-/UuCrDBWravcaMix4TdT+qlNdVwOM1Nck9kWx/vafXsdfj1ChfhOdfi3cy9SGBpWgTXwYCuboT/oYpJy3clqfw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-is-hydrated": "0.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz", + "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.8.tgz", + "integrity": "sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", + "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz", + "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", + "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.6.tgz", + "integrity": "sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.6.tgz", + "integrity": "sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", + "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.15.tgz", + "integrity": "sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", + "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle-group": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz", + "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-toggle": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toolbar": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.11.tgz", + "integrity": "sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-separator": "1.1.7", + "@radix-ui/react-toggle-group": "1.1.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz", + "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-is-hydrated": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", + "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "^1.5.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT" + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.10.tgz", + "integrity": "sha512-jOHxwXhxmFKuXztiu1ORieJeTbx5vrTkcOkkkn2d35726+iwhrY1w/+nYY/AGgF12thg33qC3R1LMBF5tHTZHg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.10.tgz", + "integrity": "sha512-gED05Teg/vtTZbIJBc4VNMAxAFDUPkuO/rAIyyxZjTj1a1/s6z5TII/5yMGZ0uLRCifEtwUQn8OlYzuYc0m70w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.10.tgz", + "integrity": "sha512-rI15NcM1mA48lqrIxVkHfAqcyFLcQwyXWThy+BQ5+mkKKPvSO26ir+ZDp36AgYoYVkqvMcdS8zOE6SeBsR9e8A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.10.tgz", + "integrity": "sha512-XZRXHdTa+4ME1MuDVp021+doQ+z6Ei4CCFmNc5/sKbqb8YmkiJdj8QKlV3rCI0AJtAeSB5n0WGPuJWNL9p/L2w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.10.tgz", + "integrity": "sha512-R0SQMRluISSLzFE20sPWYHVmJdDQnRyc/FzSCN72BqQmh2SOZUFG+N3/vBZpR4C6WpEUVYJLrYUXaj43sJsNLA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.10.tgz", + "integrity": "sha512-Y1reMrV/o+cwpduYhJuOE3OMKx32RMYCidf14y+HssARRmhDuWXJ4yVguDg2R/8SyyGNo+auzz64LnPK9Hq6jg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.10.tgz", + "integrity": "sha512-vELN+HNb2IzuzSBUOD4NHmP9yrGwl1DVM29wlQvx1OLSclL0NgVWnVDKl/8tEks79EFek/kebQKnNJkIAA4W2g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.10.tgz", + "integrity": "sha512-ZqrufYTgzxbHwpqOjzSsb0UV/aV2TFIY5rP8HdsiPTv/CuAgCRjM6s9cYFwQ4CNH+hf9Y4erHW1GjZuZ7WoI7w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.10.tgz", + "integrity": "sha512-gSlmVS1FZJSRicA6IyjoRoKAFK7IIHBs7xJuHRSmjImqk3mPPWbR7RhbnfH2G6bcmMEllCt2vQ/7u9e6bBnByg==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.10.tgz", + "integrity": "sha512-eOCKUpluKgfObT2pHjztnaWEIbUabWzk3qPZ5PuacuPmr4+JtQG4k2vGTY0H15edaTnicgU428XW/IH6AimcQw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.10.tgz", + "integrity": "sha512-Xdf2jQbfQowJnLcgYfD/m0Uu0Qj5OdxKallD78/IPPfzaiaI4KRAwZzHcKQ4ig1gtg1SuzC7jovNiM2TzQsBXA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.10.tgz", + "integrity": "sha512-o1hYe8hLi1EY6jgPFyxQgQ1wcycX+qz8eEbVmot2hFkgUzPxy9+kF0u0NIQBeDq+Mko47AkaFFaChcvZa9UX9Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.10.tgz", + "integrity": "sha512-Ugv9o7qYJudqQO5Y5y2N2SOo6S4WiqiNOpuQyoPInnhVzCY+wi/GHltcLHypG9DEUYMB0iTB/huJrpadiAcNcA==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.1.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.10.tgz", + "integrity": "sha512-7UODQb4fQUNT/vmgDZBl3XOBAIOutP5R3O/rkxg0aLfEGQ4opbCgU5vOw/scPe4xOqBwL9fw7/RP1vAMZ6QlAQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.10.tgz", + "integrity": "sha512-PYxKHMVHOb5NJuDL53vBUl1VwUjymDcYI6rzpIni0C9+9mTiJedvUxSk7/RPp7OOAm3v+EjgMu9bIy3N6b408w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.10.tgz", + "integrity": "sha512-UkVDEFk1w3mveXeKgaTuYfKWtPbvgck1dT8TUG3bnccrH0XtLTuAyfCoks4Q/M5ZGToSVJTIQYCzy2g/atAOeg==", + "license": "MIT" + }, + "node_modules/@swc/core": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.21.tgz", + "integrity": "sha512-fkk7NJcBscrR3/F8jiqlMptRHP650NxqDnspBMrRe5d8xOoCy9MLL5kOBLFXjFLfMo3KQQHhk+/jUULOMlR1uQ==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.25" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.15.21", + "@swc/core-darwin-x64": "1.15.21", + "@swc/core-linux-arm-gnueabihf": "1.15.21", + "@swc/core-linux-arm64-gnu": "1.15.21", + "@swc/core-linux-arm64-musl": "1.15.21", + "@swc/core-linux-ppc64-gnu": "1.15.21", + "@swc/core-linux-s390x-gnu": "1.15.21", + "@swc/core-linux-x64-gnu": "1.15.21", + "@swc/core-linux-x64-musl": "1.15.21", + "@swc/core-win32-arm64-msvc": "1.15.21", + "@swc/core-win32-ia32-msvc": "1.15.21", + "@swc/core-win32-x64-msvc": "1.15.21" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.21.tgz", + "integrity": "sha512-SA8SFg9dp0qKRH8goWsax6bptFE2EdmPf2YRAQW9WoHGf3XKM1bX0nd5UdwxmC5hXsBUZAYf7xSciCler6/oyA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.21.tgz", + "integrity": "sha512-//fOVntgowz9+V90lVsNCtyyrtbHp3jWH6Rch7MXHXbcvbLmbCTmssl5DeedUWLLGiAAW1wksBdqdGYOTjaNLw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.21.tgz", + "integrity": "sha512-meNI4Sh6h9h8DvIfEc0l5URabYMSuNvyisLmG6vnoYAS43s8ON3NJR8sDHvdP7NJTrLe0q/x2XCn6yL/BeHcZg==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.21.tgz", + "integrity": "sha512-QrXlNQnHeXqU2EzLlnsPoWEh8/GtNJLvfMiPsDhk+ht6Xv8+vhvZ5YZ/BokNWSIZiWPKLAqR0M7T92YF5tmD3g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.21.tgz", + "integrity": "sha512-8/yGCMO333ultDaMQivE5CjO6oXDPeeg1IV4sphojPkb0Pv0i6zvcRIkgp60xDB+UxLr6VgHgt+BBgqS959E9g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-ppc64-gnu": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.21.tgz", + "integrity": "sha512-ucW0HzPx0s1dgRvcvuLSPSA/2Kk/VYTv9st8qe1Kc22Gu0Q0rH9+6TcBTmMuNIp0Xs4BPr1uBttmbO1wEGI49Q==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-s390x-gnu": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.21.tgz", + "integrity": "sha512-ulTnOGc5I7YRObE/9NreAhQg94QkiR5qNhhcUZ1iFAYjzg/JGAi1ch+s/Ixe61pMIr8bfVrF0NOaB0f8wjaAfA==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.21.tgz", + "integrity": "sha512-D0RokxtM+cPvSqJIKR6uja4hbD+scI9ezo95mBhfSyLUs9wnPPl26sLp1ZPR/EXRdYm3F3S6RUtVi+8QXhT24Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.21.tgz", + "integrity": "sha512-nER8u7VeRfmU6fMDzl1NQAbbB/G7O2avmvCOwIul1uGkZ2/acbPH+DCL9h5+0yd/coNcxMBTL6NGepIew+7C2w==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.21.tgz", + "integrity": "sha512-+/AgNBnjYugUA8C0Do4YzymgvnGbztv7j8HKSQLvR/DQgZPoXQ2B3PqB2mTtGh/X5DhlJWiqnunN35JUgWcAeQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.21.tgz", + "integrity": "sha512-IkSZj8PX/N4HcaFhMQtzmkV8YSnuNoJ0E6OvMwFiOfejPhiKXvl7CdDsn1f4/emYEIDO3fpgZW9DTaCRMDxaDA==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.15.21", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.21.tgz", + "integrity": "sha512-zUyWso7OOENB6e1N1hNuNn8vbvLsTdKQ5WKLgt/JcBNfJhKy/6jmBmqI3GXk/MyvQKd5SLvP7A0F36p7TeDqvw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.25", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz", + "integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==", + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz", + "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.19.0", + "jiti": "^2.6.1", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.2.2" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz", + "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.2.2", + "@tailwindcss/oxide-darwin-arm64": "4.2.2", + "@tailwindcss/oxide-darwin-x64": "4.2.2", + "@tailwindcss/oxide-freebsd-x64": "4.2.2", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2", + "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2", + "@tailwindcss/oxide-linux-arm64-musl": "4.2.2", + "@tailwindcss/oxide-linux-x64-gnu": "4.2.2", + "@tailwindcss/oxide-linux-x64-musl": "4.2.2", + "@tailwindcss/oxide-wasm32-wasi": "4.2.2", + "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2", + "@tailwindcss/oxide-win32-x64-msvc": "4.2.2" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz", + "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz", + "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz", + "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz", + "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz", + "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz", + "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz", + "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz", + "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz", + "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz", + "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.8.1", + "@emnapi/runtime": "^1.8.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.1", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz", + "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz", + "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz", + "integrity": "sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.2.2", + "@tailwindcss/oxide": "4.2.2", + "tailwindcss": "4.2.2" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7 || ^8" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.95.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.95.0.tgz", + "integrity": "sha512-H1/CWCe8tGL3YIVeo770Z6kPbt0B3M1d/iQXIIK1qlFiFt6G2neYdkHgLapOC8uMYNt9DmHjmGukEKgdMk1P+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.95.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.95.0.tgz", + "integrity": "sha512-EMP8B+BK9zvnAemT8M/y3z/WO0NjZ7fIUY3T3wnHYK6AA3qK/k33i7tPgCXCejhX0cd4I6bJIXN2GmjrHjDBzg==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.95.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cors": { + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.6.tgz", + "integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "^2" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz", + "integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", + "devOptional": true, + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "license": "MIT", + "peer": true, + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*" + } + }, + "node_modules/@types/ssh2": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-1.15.5.tgz", + "integrity": "sha512-N1ASjp/nXH3ovBHddRJpli4ozpk6UdDYIX4RJWFa9L1YKnzdhTlVmiGHm4DZnj/jLbqZpes4aeR30EFGQtvhQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "^18.11.18" + } + }, + "node_modules/@types/ssh2/node_modules/@types/node": { + "version": "18.19.130", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz", + "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/ssh2/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-4.3.0.tgz", + "integrity": "sha512-mOkXCII839dHyAt/gpoSlm28JIVDwhZ6tnG6wJxUy2bmOx7UaPjvOyIDf3SFv5s7Eo7HVaq6kRcu6YMEzt5Z7w==", + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-rc.7", + "@swc/core": "^1.15.11" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/@vitejs/plugin-react-swc/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.7", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz", + "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==", + "license": "MIT" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/body-parser": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/buildcheck": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.7.tgz", + "integrity": "sha512-lHblz4ahamxpTmnsk+MNTRWsjYKv965MwOrSJyeD588rR3Jcu7swE+0wN5F+PbL5cjgu/9ObkhfzEPuofEMwLA==", + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/client": { + "resolved": "client", + "link": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concurrently": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", + "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "4.1.2", + "rxjs": "7.8.2", + "shell-quote": "1.8.3", + "supports-color": "8.1.1", + "tree-kill": "1.2.2", + "yargs": "17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cpu-features": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.10.tgz", + "integrity": "sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "buildcheck": "~0.0.6", + "nan": "^2.19.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz", + "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==", + "devOptional": true, + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.4", + "@esbuild/android-arm": "0.27.4", + "@esbuild/android-arm64": "0.27.4", + "@esbuild/android-x64": "0.27.4", + "@esbuild/darwin-arm64": "0.27.4", + "@esbuild/darwin-x64": "0.27.4", + "@esbuild/freebsd-arm64": "0.27.4", + "@esbuild/freebsd-x64": "0.27.4", + "@esbuild/linux-arm": "0.27.4", + "@esbuild/linux-arm64": "0.27.4", + "@esbuild/linux-ia32": "0.27.4", + "@esbuild/linux-loong64": "0.27.4", + "@esbuild/linux-mips64el": "0.27.4", + "@esbuild/linux-ppc64": "0.27.4", + "@esbuild/linux-riscv64": "0.27.4", + "@esbuild/linux-s390x": "0.27.4", + "@esbuild/linux-x64": "0.27.4", + "@esbuild/netbsd-arm64": "0.27.4", + "@esbuild/netbsd-x64": "0.27.4", + "@esbuild/openbsd-arm64": "0.27.4", + "@esbuild/openbsd-x64": "0.27.4", + "@esbuild/openharmony-arm64": "0.27.4", + "@esbuild/sunos-x64": "0.27.4", + "@esbuild/win32-arm64": "0.27.4", + "@esbuild/win32-ia32": "0.27.4", + "@esbuild/win32-x64": "0.27.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.14.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-tsconfig": { + "version": "4.13.7", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.7.tgz", + "integrity": "sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "devOptional": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lucide-react": { + "version": "0.577.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.577.0.tgz", + "integrity": "sha512-4LjoFv2eEPwYDPg/CUdBJQSDfPyzXCRrVW1X7jrx/trgxnxkHFjnVZINbzvzxjN70dxychOfg+FTYwBiS3pQ5A==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/nan": { + "version": "2.26.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.26.2.tgz", + "integrity": "sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw==", + "license": "MIT", + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", + "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/radix-ui": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/radix-ui/-/radix-ui-1.4.3.tgz", + "integrity": "sha512-aWizCQiyeAenIdUbqEpXgRA1ya65P13NKn/W8rWkcN0OPkRDxdBVLWnIEDsS2RpwCK2nobI7oMUSmexzTDyAmA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-accessible-icon": "1.1.7", + "@radix-ui/react-accordion": "1.2.12", + "@radix-ui/react-alert-dialog": "1.1.15", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-aspect-ratio": "1.1.7", + "@radix-ui/react-avatar": "1.1.10", + "@radix-ui/react-checkbox": "1.3.3", + "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-context-menu": "2.2.16", + "@radix-ui/react-dialog": "1.1.15", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-dropdown-menu": "2.1.16", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-form": "0.1.8", + "@radix-ui/react-hover-card": "1.1.15", + "@radix-ui/react-label": "2.1.7", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-menubar": "1.1.16", + "@radix-ui/react-navigation-menu": "1.2.14", + "@radix-ui/react-one-time-password-field": "0.1.8", + "@radix-ui/react-password-toggle-field": "0.1.3", + "@radix-ui/react-popover": "1.1.15", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-progress": "1.1.7", + "@radix-ui/react-radio-group": "1.3.8", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-scroll-area": "1.2.10", + "@radix-ui/react-select": "2.2.6", + "@radix-ui/react-separator": "1.1.7", + "@radix-ui/react-slider": "1.3.6", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-switch": "1.2.6", + "@radix-ui/react-tabs": "1.1.13", + "@radix-ui/react-toast": "1.2.15", + "@radix-ui/react-toggle": "1.1.10", + "@radix-ui/react-toggle-group": "1.1.11", + "@radix-ui/react-toolbar": "1.1.11", + "@radix-ui/react-tooltip": "1.2.8", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-escape-keydown": "1.1.1", + "@radix-ui/react-use-is-hydrated": "0.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "devOptional": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/rolldown": { + "version": "1.0.0-rc.10", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.10.tgz", + "integrity": "sha512-q7j6vvarRFmKpgJUT8HCAUljkgzEp4LAhPlJUvQhA5LA1SUL36s5QCysMutErzL3EbNOZOkoziSx9iZC4FddKA==", + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.120.0", + "@rolldown/pluginutils": "1.0.0-rc.10" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.10", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.10", + "@rolldown/binding-darwin-x64": "1.0.0-rc.10", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.10", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.10", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.10", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.10", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.10", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.10", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.10", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.10", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.10", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.10", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.10", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.10" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/server": { + "resolved": "server", + "link": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssh2": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.17.0.tgz", + "integrity": "sha512-wPldCk3asibAjQ/kziWQQt1Wh3PgDFpC0XpwclzKcdT1vql6KeYxf5LIt4nlFkUeR8WuphYMKqUA56X4rjbfgQ==", + "hasInstallScript": true, + "dependencies": { + "asn1": "^0.2.6", + "bcrypt-pbkdf": "^1.0.2" + }, + "engines": { + "node": ">=10.16.0" + }, + "optionalDependencies": { + "cpu-features": "~0.0.10", + "nan": "^2.23.0" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/tailwind-merge": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz", + "integrity": "sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz", + "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==", + "license": "MIT", + "peer": true + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "devOptional": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.1.tgz", + "integrity": "sha512-wt+Z2qIhfFt85uiyRt5LPU4oVEJBXj8hZNWKeqFG4gRG/0RaRGJ7njQCwzFVjO+v4+Ipmf5CY7VdmZRAYYBPHw==", + "license": "MIT", + "peer": true, + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.8", + "rolldown": "1.0.0-rc.10", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.0", + "esbuild": "^0.27.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "server": { + "version": "1.0.0", + "dependencies": { + "cors": "^2.8.5", + "dotenv": "^16.4.0", + "express": "^4.21.0", + "ssh2": "^1.16.0" + }, + "devDependencies": { + "@types/cors": "^2.8.17", + "@types/express": "^5.0.0", + "@types/ssh2": "^1.15.0", + "tsx": "^4.19.0", + "typescript": "^5.8.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a18c071 --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "name": "eventify-server-monitor", + "private": true, + "workspaces": ["client", "server"], + "scripts": { + "dev": "concurrently \"npm run dev:server\" \"npm run dev:client\"", + "dev:server": "npm run dev -w server", + "dev:client": "npm run dev -w client", + "build": "npm run build -w client", + "start": "npm run start -w server" + }, + "devDependencies": { + "concurrently": "^9.1.0" + } +} diff --git a/server/package.json b/server/package.json new file mode 100644 index 0000000..4f6d321 --- /dev/null +++ b/server/package.json @@ -0,0 +1,23 @@ +{ + "name": "server", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "tsx watch src/index.ts", + "start": "tsx src/index.ts" + }, + "dependencies": { + "express": "^4.21.0", + "ssh2": "^1.16.0", + "cors": "^2.8.5", + "dotenv": "^16.4.0" + }, + "devDependencies": { + "@types/express": "^5.0.0", + "@types/ssh2": "^1.15.0", + "@types/cors": "^2.8.17", + "typescript": "^5.8.0", + "tsx": "^4.19.0" + } +} diff --git a/server/src/config.ts b/server/src/config.ts new file mode 100644 index 0000000..f4fd130 --- /dev/null +++ b/server/src/config.ts @@ -0,0 +1,21 @@ +import { homedir } from 'os'; +import { resolve } from 'path'; +import 'dotenv/config'; + +function resolveHome(filepath: string): string { + if (filepath.startsWith('~')) { + return resolve(homedir(), filepath.slice(2)); + } + return resolve(filepath); +} + +export const config = { + ssh: { + host: process.env.SSH_HOST ?? 'ec2-174-129-72-160.compute-1.amazonaws.com', + user: process.env.SSH_USER ?? 'ubuntu', + keyPath: resolveHome( + process.env.SSH_KEY_PATH ?? '~/.ssh/eventify_keys_21_03_2026.pem' + ), + }, + port: parseInt(process.env.PORT ?? '3002', 10), +} as const; diff --git a/server/src/index.ts b/server/src/index.ts new file mode 100644 index 0000000..7a1b48b --- /dev/null +++ b/server/src/index.ts @@ -0,0 +1,57 @@ +import express from 'express'; +import cors from 'cors'; +import { fileURLToPath } from 'url'; +import { dirname, resolve } from 'path'; +import { existsSync } from 'fs'; +import { config } from './config.js'; +import { healthRouter } from './routes/health.js'; +import { sshManager } from './ssh/client.js'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const app = express(); + +// ── Middleware ── +app.use( + cors({ + origin: ['http://localhost:5173', 'http://localhost:5174'], + credentials: true, + }) +); +app.use(express.json()); + +// ── API Routes ── +app.use('/api', healthRouter); + +// ── Static file serving for production SPA ── +const clientDistPath = resolve(__dirname, '../../client/dist'); +if (existsSync(clientDistPath)) { + app.use(express.static(clientDistPath)); + + // SPA fallback: serve index.html for any non-API route + app.get('*', (_req, res) => { + res.sendFile(resolve(clientDistPath, 'index.html')); + }); +} + +// ── Start server ── +const server = app.listen(config.port, () => { + console.log(`[Server] Listening on http://localhost:${config.port}`); + console.log(`[Server] SSH target: ${config.ssh.user}@${config.ssh.host}`); +}); + +// ── Graceful shutdown ── +async function shutdown(signal: string) { + console.log(`\n[Server] ${signal} received, shutting down gracefully...`); + + server.close(() => { + console.log('[Server] HTTP server closed'); + }); + + await sshManager.disconnect(); + process.exit(0); +} + +process.on('SIGINT', () => shutdown('SIGINT')); +process.on('SIGTERM', () => shutdown('SIGTERM')); diff --git a/server/src/routes/health.ts b/server/src/routes/health.ts new file mode 100644 index 0000000..3e68a66 --- /dev/null +++ b/server/src/routes/health.ts @@ -0,0 +1,95 @@ +import { Router } from 'express'; +import { getSystemInfo } from '../services/system.js'; +import { getMemoryInfo } from '../services/memory.js'; +import { getDiskInfo } from '../services/disk.js'; +import { getDockerInfo } from '../services/docker.js'; +import { getNginxStatus } from '../services/nginx.js'; +import type { OverviewResponse } from '../types/index.js'; + +export const healthRouter = Router(); + +// GET /api/overview - all metrics collected sequentially to avoid SSH channel exhaustion +healthRouter.get('/overview', async (_req, res) => { + try { + const errors: Record = {}; + + const safe = async (name: string, fn: () => Promise): Promise => { + try { + return await fn(); + } catch (err) { + errors[name] = (err as Error).message ?? 'Unknown error'; + return null; + } + }; + + const system = await safe('system', getSystemInfo); + const memory = await safe('memory', getMemoryInfo); + const disk = await safe('disk', getDiskInfo); + const docker = await safe('docker', getDockerInfo); + const nginx = await safe('nginx', getNginxStatus); + + const response: OverviewResponse = { + system, + memory, + disk, + docker, + nginx, + errors, + timestamp: new Date().toISOString(), + }; + + res.json(response); + } catch (err) { + res.status(500).json({ error: 'Failed to fetch server overview', details: (err as Error).message }); + } +}); + +// GET /api/system +healthRouter.get('/system', async (_req, res) => { + try { + const data = await getSystemInfo(); + res.json(data); + } catch (err) { + res.status(500).json({ error: 'Failed to fetch system info', details: (err as Error).message }); + } +}); + +// GET /api/memory +healthRouter.get('/memory', async (_req, res) => { + try { + const data = await getMemoryInfo(); + res.json(data); + } catch (err) { + res.status(500).json({ error: 'Failed to fetch memory info', details: (err as Error).message }); + } +}); + +// GET /api/disk +healthRouter.get('/disk', async (_req, res) => { + try { + const data = await getDiskInfo(); + res.json(data); + } catch (err) { + res.status(500).json({ error: 'Failed to fetch disk info', details: (err as Error).message }); + } +}); + +// GET /api/docker +healthRouter.get('/docker', async (_req, res) => { + try { + const data = await getDockerInfo(); + res.json(data); + } catch (err) { + res.status(500).json({ error: 'Failed to fetch docker info', details: (err as Error).message }); + } +}); + +// GET /api/nginx +healthRouter.get('/nginx', async (_req, res) => { + try { + const data = await getNginxStatus(); + res.json(data); + } catch (err) { + res.status(500).json({ error: 'Failed to fetch nginx status', details: (err as Error).message }); + } +}); diff --git a/server/src/services/disk.ts b/server/src/services/disk.ts new file mode 100644 index 0000000..f788d40 --- /dev/null +++ b/server/src/services/disk.ts @@ -0,0 +1,28 @@ +import { sshManager } from '../ssh/client.js'; +import type { DiskInfo } from '../types/index.js'; + +export async function getDiskInfo(): Promise { + const output = await sshManager.execCommand('df -B1 /'); + + // Example output: + // Filesystem 1B-blocks Used Available Use% Mounted on + // /dev/xvda1 32212254720 18345678912 13866575808 57% / + + const lines = output.split('\n'); + const dataLine = lines.find((l) => l.startsWith('/')); + + if (!dataLine) { + return { total: 0, used: 0, free: 0, usedPercent: 0, mountPoint: '/' }; + } + + const parts = dataLine.trim().split(/\s+/); + // parts: [filesystem, 1B-blocks, used, available, use%, mounted-on] + + const total = parseInt(parts[1], 10) || 0; + const used = parseInt(parts[2], 10) || 0; + const free = parseInt(parts[3], 10) || 0; + const usedPercent = parseFloat(parts[4]?.replace('%', '') ?? '0') || 0; + const mountPoint = parts[5] ?? '/'; + + return { total, used, free, usedPercent, mountPoint }; +} diff --git a/server/src/services/docker.ts b/server/src/services/docker.ts new file mode 100644 index 0000000..8b76b1f --- /dev/null +++ b/server/src/services/docker.ts @@ -0,0 +1,92 @@ +import { sshManager } from '../ssh/client.js'; +import type { DockerContainer } from '../types/index.js'; + +function parseByteString(str: string): number { + const cleaned = str.trim(); + const match = cleaned.match(/^([\d.]+)\s*([A-Za-z]+)$/); + if (!match) return 0; + + const value = parseFloat(match[1]); + const unit = match[2].toLowerCase(); + + const multipliers: Record = { + b: 1, + kb: 1000, + mb: 1_000_000, + gb: 1_000_000_000, + tb: 1_000_000_000_000, + kib: 1024, + mib: 1024 ** 2, + gib: 1024 ** 3, + tib: 1024 ** 4, + }; + + return Math.round(value * (multipliers[unit] ?? 0)); +} + +export async function getDockerInfo(): Promise { + // Run both commands in a single SSH channel + const output = await sshManager.execCommand( + "docker stats --no-stream --format '{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}\t{{.NetIO}}\t{{.BlockIO}}\t{{.PIDs}}' && echo '---DOCKER_SEP---' && docker ps --format '{{.Names}}\t{{.Status}}\t{{.Image}}'" + ); + + const [statsOutput, psOutput] = output.split('---DOCKER_SEP---').map((s) => s.trim()); + + // Build lookup from docker ps output + const psMap = new Map(); + if (psOutput) { + for (const line of psOutput.split('\n')) { + const trimmed = line.trim(); + if (!trimmed) continue; + const [name, status, image] = trimmed.split('\t'); + if (name) { + psMap.set(name, { status: status ?? 'unknown', image: image ?? 'unknown' }); + } + } + } + + const containers: DockerContainer[] = []; + + if (statsOutput) { + for (const line of statsOutput.split('\n')) { + const trimmed = line.trim(); + if (!trimmed) continue; + + const parts = trimmed.split('\t'); + if (parts.length < 7) continue; + + const [name, cpuPerc, memUsage, memPerc, netIO, blockIO, pids] = parts; + + const memParts = memUsage.split('/').map((s) => s.trim()); + const memUsageBytes = parseByteString(memParts[0] ?? '0B'); + const memLimitBytes = parseByteString(memParts[1] ?? '0B'); + + const netParts = netIO.split('/').map((s) => s.trim()); + const netInput = parseByteString(netParts[0] ?? '0B'); + const netOutputBytes = parseByteString(netParts[1] ?? '0B'); + + const blockParts = blockIO.split('/').map((s) => s.trim()); + const blockInput = parseByteString(blockParts[0] ?? '0B'); + const blockOutputBytes = parseByteString(blockParts[1] ?? '0B'); + + const psInfo = psMap.get(name) ?? { status: 'unknown', image: 'unknown' }; + + containers.push({ + name, + status: psInfo.status, + image: psInfo.image, + cpuPercent: parseFloat(cpuPerc.replace('%', '')) || 0, + memUsage: memUsageBytes, + memLimit: memLimitBytes, + memPercent: parseFloat(memPerc.replace('%', '')) || 0, + netInput, + netOutput: netOutputBytes, + blockInput, + blockOutput: blockOutputBytes, + pids: parseInt(pids, 10) || 0, + }); + } + } + + return containers; +} diff --git a/server/src/services/memory.ts b/server/src/services/memory.ts new file mode 100644 index 0000000..cc76835 --- /dev/null +++ b/server/src/services/memory.ts @@ -0,0 +1,30 @@ +import { sshManager } from '../ssh/client.js'; +import type { MemoryInfo } from '../types/index.js'; + +export async function getMemoryInfo(): Promise { + const output = await sshManager.execCommand('free -b'); + + // Example output: + // total used free shared buff/cache available + // Mem: 16508469248 3456789504 8765432320 123456789 4286247424 12345678848 + // Swap: 2147483648 0 2147483648 + + const lines = output.split('\n'); + const memLine = lines.find((l) => l.startsWith('Mem:')); + + if (!memLine) { + return { total: 0, used: 0, free: 0, cached: 0, available: 0, usedPercent: 0 }; + } + + const parts = memLine.trim().split(/\s+/); + // parts: ["Mem:", total, used, free, shared, buff/cache, available] + + const total = parseInt(parts[1], 10) || 0; + const used = parseInt(parts[2], 10) || 0; + const free = parseInt(parts[3], 10) || 0; + const cached = parseInt(parts[5], 10) || 0; // buff/cache column + const available = parseInt(parts[6], 10) || 0; + const usedPercent = total > 0 ? Math.round((used / total) * 10000) / 100 : 0; + + return { total, used, free, cached, available, usedPercent }; +} diff --git a/server/src/services/nginx.ts b/server/src/services/nginx.ts new file mode 100644 index 0000000..d7201f3 --- /dev/null +++ b/server/src/services/nginx.ts @@ -0,0 +1,28 @@ +import { sshManager } from '../ssh/client.js'; +import type { NginxStatus } from '../types/index.js'; + +export async function getNginxStatus(): Promise { + let statusText: string; + + try { + statusText = await sshManager.execCommand('systemctl is-active nginx'); + } catch { + statusText = 'failed'; + } + + const normalized = statusText.trim().toLowerCase(); + let status: NginxStatus['status']; + + if (normalized === 'active') { + status = 'active'; + } else if (normalized === 'inactive') { + status = 'inactive'; + } else { + status = 'failed'; + } + + return { + status, + checkedAt: new Date().toISOString(), + }; +} diff --git a/server/src/services/system.ts b/server/src/services/system.ts new file mode 100644 index 0000000..60af4fb --- /dev/null +++ b/server/src/services/system.ts @@ -0,0 +1,36 @@ +import { sshManager } from '../ssh/client.js'; +import type { SystemInfo } from '../types/index.js'; + +export async function getSystemInfo(): Promise { + // Run all commands in a single SSH channel to avoid channel exhaustion + const output = await sshManager.execCommand( + "hostname && echo '---SEP---' && uptime -p && echo '---SEP---' && cat /proc/loadavg && echo '---SEP---' && top -bn1 | grep 'Cpu(s)' | awk '{print $2}' && echo '---SEP---' && cat /etc/os-release | grep PRETTY_NAME" + ); + + const parts = output.split('---SEP---').map((s) => s.trim()); + const hostnameOut = parts[0] || 'unknown'; + const uptimeOut = parts[1] || 'unknown'; + const loadAvgOut = parts[2] || '0 0 0'; + const cpuOut = parts[3] || '0'; + const osOut = parts[4] || 'PRETTY_NAME="Unknown"'; + + const loadParts = loadAvgOut.split(/\s+/); + const loadAvg: [number, number, number] = [ + parseFloat(loadParts[0]) || 0, + parseFloat(loadParts[1]) || 0, + parseFloat(loadParts[2]) || 0, + ]; + + const cpuPercent = parseFloat(cpuOut.replace('%', '')) || 0; + + const osMatch = osOut.match(/PRETTY_NAME="?([^"]*)"?/); + const os = osMatch ? osMatch[1] : 'Unknown'; + + return { + hostname: hostnameOut, + uptime: uptimeOut, + loadAvg, + cpuPercent, + os, + }; +} diff --git a/server/src/ssh/client.ts b/server/src/ssh/client.ts new file mode 100644 index 0000000..257d613 --- /dev/null +++ b/server/src/ssh/client.ts @@ -0,0 +1,141 @@ +import { Client } from 'ssh2'; +import { readFileSync } from 'fs'; +import { config } from '../config.js'; + +class SSHConnectionManager { + private client: Client | null = null; + private connected = false; + private connecting = false; + private reconnectTimer: ReturnType | null = null; + + async connect(): Promise { + if (this.connected || this.connecting) return; + this.connecting = true; + + return new Promise((resolve, reject) => { + const conn = new Client(); + + conn.on('ready', () => { + console.log('[SSH] Connection established'); + this.client = conn; + this.connected = true; + this.connecting = false; + resolve(); + }); + + conn.on('error', (err) => { + console.error('[SSH] Connection error:', err.message); + this.handleDisconnect(); + if (this.connecting) { + this.connecting = false; + reject(err); + } + }); + + conn.on('close', () => { + console.warn('[SSH] Connection closed'); + this.handleDisconnect(); + }); + + conn.on('end', () => { + this.handleDisconnect(); + }); + + let privateKey: Buffer; + try { + privateKey = readFileSync(config.ssh.keyPath); + } catch (err) { + this.connecting = false; + reject(new Error(`Failed to read SSH key at ${config.ssh.keyPath}: ${(err as Error).message}`)); + return; + } + + conn.connect({ + host: config.ssh.host, + username: config.ssh.user, + privateKey, + readyTimeout: 10_000, + keepaliveInterval: 30_000, + keepaliveCountMax: 3, + }); + }); + } + + private handleDisconnect(): void { + this.connected = false; + this.client = null; + + if (!this.reconnectTimer) { + this.reconnectTimer = setTimeout(() => { + this.reconnectTimer = null; + console.log('[SSH] Attempting reconnect...'); + this.connect().catch((err) => { + console.error('[SSH] Reconnect failed:', err.message); + }); + }, 5_000); + } + } + + async ensureConnected(): Promise { + if (!this.connected || !this.client) { + await this.connect(); + } + } + + async execCommand(cmd: string): Promise { + await this.ensureConnected(); + + if (!this.client) { + throw new Error('SSH client is not connected'); + } + + return new Promise((resolve, reject) => { + const timeout = setTimeout(() => { + reject(new Error(`Command timed out after 10s: ${cmd}`)); + }, 10_000); + + this.client!.exec(cmd, (err, stream) => { + if (err) { + clearTimeout(timeout); + reject(err); + return; + } + + let stdout = ''; + let stderr = ''; + + stream.on('data', (data: Buffer) => { + stdout += data.toString(); + }); + + stream.stderr.on('data', (data: Buffer) => { + stderr += data.toString(); + }); + + stream.on('close', (code: number) => { + clearTimeout(timeout); + if (code !== 0 && !stdout) { + reject(new Error(`Command exited with code ${code}: ${stderr.trim()}`)); + } else { + resolve(stdout.trim()); + } + }); + }); + }); + } + + async disconnect(): Promise { + if (this.reconnectTimer) { + clearTimeout(this.reconnectTimer); + this.reconnectTimer = null; + } + if (this.client) { + this.client.end(); + this.client = null; + this.connected = false; + console.log('[SSH] Connection closed gracefully'); + } + } +} + +export const sshManager = new SSHConnectionManager(); diff --git a/server/src/types/index.ts b/server/src/types/index.ts new file mode 100644 index 0000000..2829dd6 --- /dev/null +++ b/server/src/types/index.ts @@ -0,0 +1,56 @@ +// ─── Server Health Monitoring API Types ─── + +export interface SystemInfo { + hostname: string; + uptime: string; + loadAvg: [number, number, number]; + cpuPercent: number; + os: string; +} + +export interface MemoryInfo { + total: number; + used: number; + free: number; + cached: number; + available: number; + usedPercent: number; +} + +export interface DiskInfo { + total: number; + used: number; + free: number; + usedPercent: number; + mountPoint: string; +} + +export interface DockerContainer { + name: string; + status: string; + image: string; + cpuPercent: number; + memUsage: number; + memLimit: number; + memPercent: number; + netInput: number; + netOutput: number; + blockInput: number; + blockOutput: number; + pids: number; +} + +export interface NginxStatus { + status: 'active' | 'inactive' | 'failed'; + checkedAt: string; +} + +export interface OverviewResponse { + system: SystemInfo | null; + memory: MemoryInfo | null; + disk: DiskInfo | null; + docker: DockerContainer[] | null; + nginx: NginxStatus | null; + errors: Record; + timestamp: string; +} diff --git a/server/tsconfig.json b/server/tsconfig.json new file mode 100644 index 0000000..1d6524b --- /dev/null +++ b/server/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "bundler", + "esModuleInterop": true, + "strict": true, + "outDir": "dist", + "rootDir": "src", + "skipLibCheck": true + }, + "include": ["src"] +}

fnShvNn?j*yy4Tg0m;nu=> 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 W+%`(S`_8(b=;MjM{>o{|`~Lw@!oPz6 literal 0 HcmV?d00001 diff --git a/client/public/fonts/Gilroy-Medium.ttf b/client/public/fonts/Gilroy-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..06d6a9431cc38c7695aa9d8316e41641c151c283 GIT binary patch literal 143724 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 literal 0 HcmV?d00001 diff --git a/client/public/fonts/Gilroy-Regular.ttf b/client/public/fonts/Gilroy-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ad17f71cbea192fca535acef186e8015fffa596c GIT binary patch literal 145148 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 B$#eh! literal 0 HcmV?d00001 diff --git a/client/public/fonts/Gilroy-SemiBold.ttf b/client/public/fonts/Gilroy-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cb3cbb610ef10c9070224a511674fe9d65c68974 GIT binary patch literal 139820 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�=VFpCufv93SO?pGFQ*~hm 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