diff --git a/package-lock.json b/package-lock.json
index 8f9741f3216770a3052ce32f74c2dc8d60eeb83c..ea896649b53787b7f80de488fcf60a6371db5cde 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -79,22 +79,22 @@
             }
         },
         "node_modules/@antfu/install-pkg": {
-            "version": "0.4.1",
-            "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.4.1.tgz",
-            "integrity": "sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==",
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz",
+            "integrity": "sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==",
             "license": "MIT",
             "dependencies": {
-                "package-manager-detector": "^0.2.0",
-                "tinyexec": "^0.3.0"
+                "package-manager-detector": "^0.2.8",
+                "tinyexec": "^0.3.2"
             },
             "funding": {
                 "url": "https://github.com/sponsors/antfu"
             }
         },
         "node_modules/@antfu/utils": {
-            "version": "0.7.10",
-            "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz",
-            "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==",
+            "version": "8.1.1",
+            "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz",
+            "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==",
             "license": "MIT",
             "funding": {
                 "url": "https://github.com/sponsors/antfu"
@@ -629,9 +629,9 @@
             "license": "MIT"
         },
         "node_modules/@braintree/sanitize-url": {
-            "version": "7.1.0",
-            "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.0.tgz",
-            "integrity": "sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg==",
+            "version": "7.1.1",
+            "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz",
+            "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==",
             "license": "MIT"
         },
         "node_modules/@chevrotain/cst-dts-gen": {
@@ -765,22 +765,22 @@
             }
         },
         "node_modules/@floating-ui/core": {
-            "version": "1.6.8",
-            "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz",
-            "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==",
+            "version": "1.6.9",
+            "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
+            "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
             "license": "MIT",
             "dependencies": {
-                "@floating-ui/utils": "^0.2.8"
+                "@floating-ui/utils": "^0.2.9"
             }
         },
         "node_modules/@floating-ui/dom": {
-            "version": "1.6.12",
-            "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz",
-            "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==",
+            "version": "1.6.13",
+            "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz",
+            "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==",
             "license": "MIT",
             "dependencies": {
                 "@floating-ui/core": "^1.6.0",
-                "@floating-ui/utils": "^0.2.8"
+                "@floating-ui/utils": "^0.2.9"
             }
         },
         "node_modules/@floating-ui/react": {
@@ -812,9 +812,9 @@
             }
         },
         "node_modules/@floating-ui/utils": {
-            "version": "0.2.8",
-            "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz",
-            "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==",
+            "version": "0.2.9",
+            "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
+            "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==",
             "license": "MIT"
         },
         "node_modules/@formatjs/intl-localematcher": {
@@ -899,25 +899,25 @@
             "license": "MIT"
         },
         "node_modules/@iconify/utils": {
-            "version": "2.2.1",
-            "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.2.1.tgz",
-            "integrity": "sha512-0/7J7hk4PqXmxo5PDBDxmnecw5PxklZJfNjIVG9FM0mEfVrvfudS22rYWsqVk6gR3UJ/mSYS90X4R3znXnqfNA==",
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz",
+            "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==",
             "license": "MIT",
             "dependencies": {
-                "@antfu/install-pkg": "^0.4.1",
-                "@antfu/utils": "^0.7.10",
+                "@antfu/install-pkg": "^1.0.0",
+                "@antfu/utils": "^8.1.0",
                 "@iconify/types": "^2.0.0",
                 "debug": "^4.4.0",
-                "globals": "^15.13.0",
+                "globals": "^15.14.0",
                 "kolorist": "^1.8.0",
-                "local-pkg": "^0.5.1",
-                "mlly": "^1.7.3"
+                "local-pkg": "^1.0.0",
+                "mlly": "^1.7.4"
             }
         },
         "node_modules/@iconify/utils/node_modules/globals": {
-            "version": "15.13.0",
-            "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz",
-            "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==",
+            "version": "15.15.0",
+            "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+            "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
             "license": "MIT",
             "engines": {
                 "node": ">=18"
@@ -3036,34 +3036,36 @@
             }
         },
         "node_modules/@react-aria/focus": {
-            "version": "3.19.0",
-            "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.19.0.tgz",
-            "integrity": "sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==",
+            "version": "3.19.1",
+            "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.19.1.tgz",
+            "integrity": "sha512-bix9Bu1Ue7RPcYmjwcjhB14BMu2qzfJ3tMQLqDc9pweJA66nOw8DThy3IfVr8Z7j2PHktOLf9kcbiZpydKHqzg==",
             "license": "Apache-2.0",
             "dependencies": {
-                "@react-aria/interactions": "^3.22.5",
-                "@react-aria/utils": "^3.26.0",
-                "@react-types/shared": "^3.26.0",
+                "@react-aria/interactions": "^3.23.0",
+                "@react-aria/utils": "^3.27.0",
+                "@react-types/shared": "^3.27.0",
                 "@swc/helpers": "^0.5.0",
                 "clsx": "^2.0.0"
             },
             "peerDependencies": {
-                "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+                "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+                "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
             }
         },
         "node_modules/@react-aria/interactions": {
-            "version": "3.22.5",
-            "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.5.tgz",
-            "integrity": "sha512-kMwiAD9E0TQp+XNnOs13yVJghiy8ET8L0cbkeuTgNI96sOAp/63EJ1FSrDf17iD8sdjt41LafwX/dKXW9nCcLQ==",
+            "version": "3.23.0",
+            "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.23.0.tgz",
+            "integrity": "sha512-0qR1atBIWrb7FzQ+Tmr3s8uH5mQdyRH78n0krYaG8tng9+u1JlSi8DGRSaC9ezKyNB84m7vHT207xnHXGeJ3Fg==",
             "license": "Apache-2.0",
             "dependencies": {
                 "@react-aria/ssr": "^3.9.7",
-                "@react-aria/utils": "^3.26.0",
-                "@react-types/shared": "^3.26.0",
+                "@react-aria/utils": "^3.27.0",
+                "@react-types/shared": "^3.27.0",
                 "@swc/helpers": "^0.5.0"
             },
             "peerDependencies": {
-                "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+                "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+                "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
             }
         },
         "node_modules/@react-aria/ssr": {
@@ -3082,19 +3084,20 @@
             }
         },
         "node_modules/@react-aria/utils": {
-            "version": "3.26.0",
-            "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz",
-            "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==",
+            "version": "3.27.0",
+            "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.27.0.tgz",
+            "integrity": "sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==",
             "license": "Apache-2.0",
             "dependencies": {
                 "@react-aria/ssr": "^3.9.7",
                 "@react-stately/utils": "^3.10.5",
-                "@react-types/shared": "^3.26.0",
+                "@react-types/shared": "^3.27.0",
                 "@swc/helpers": "^0.5.0",
                 "clsx": "^2.0.0"
             },
             "peerDependencies": {
-                "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+                "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+                "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
             }
         },
         "node_modules/@react-stately/utils": {
@@ -3110,9 +3113,9 @@
             }
         },
         "node_modules/@react-types/shared": {
-            "version": "3.26.0",
-            "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.26.0.tgz",
-            "integrity": "sha512-6FuPqvhmjjlpEDLTiYx29IJCbCNWPlsyO+ZUmCUXzhUv2ttShOXfw8CmeHWHftT/b2KweAWuzqSlfeXPR76jpw==",
+            "version": "3.27.0",
+            "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.27.0.tgz",
+            "integrity": "sha512-gvznmLhi6JPEf0bsq7SwRYTHAKKq/wcmKqFez9sRdbED+SPMUmK5omfZ6w3EwUFQHbYUa4zPBYedQ7Knv70RMw==",
             "license": "Apache-2.0",
             "peerDependencies": {
                 "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
@@ -3237,12 +3240,12 @@
             }
         },
         "node_modules/@tanstack/react-virtual": {
-            "version": "3.11.2",
-            "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.2.tgz",
-            "integrity": "sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==",
+            "version": "3.13.2",
+            "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.2.tgz",
+            "integrity": "sha512-LceSUgABBKF6HSsHK2ZqHzQ37IKV/jlaWbHm+NyTa3/WNb/JZVcThDuTainf+PixltOOcFCYXwxbLpOX9sCx+g==",
             "license": "MIT",
             "dependencies": {
-                "@tanstack/virtual-core": "3.11.2"
+                "@tanstack/virtual-core": "3.13.2"
             },
             "funding": {
                 "type": "github",
@@ -3254,28 +3257,15 @@
             }
         },
         "node_modules/@tanstack/virtual-core": {
-            "version": "3.11.2",
-            "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.2.tgz",
-            "integrity": "sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==",
+            "version": "3.13.2",
+            "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.2.tgz",
+            "integrity": "sha512-Qzz4EgzMbO5gKrmqUondCjiHcuu4B1ftHb0pjCut661lXZdGoHeze9f/M8iwsK1t5LGR6aNuNGU7mxkowaW6RQ==",
             "license": "MIT",
             "funding": {
                 "type": "github",
                 "url": "https://github.com/sponsors/tannerlinsley"
             }
         },
-        "node_modules/@theguild/remark-mermaid": {
-            "version": "0.1.3",
-            "resolved": "https://registry.npmjs.org/@theguild/remark-mermaid/-/remark-mermaid-0.1.3.tgz",
-            "integrity": "sha512-2FjVlaaKXK7Zj7UJAgOVTyaahn/3/EAfqYhyXg0BfDBVUl+lXcoIWRaxzqfnDr2rv8ax6GsC5mNh6hAaT86PDw==",
-            "license": "MIT",
-            "dependencies": {
-                "mermaid": "^11.0.0",
-                "unist-util-visit": "^5.0.0"
-            },
-            "peerDependencies": {
-                "react": "^18.2.0"
-            }
-        },
         "node_modules/@theguild/remark-npm2yarn": {
             "version": "0.3.3",
             "resolved": "https://registry.npmjs.org/@theguild/remark-npm2yarn/-/remark-npm2yarn-0.3.3.tgz",
@@ -3628,9 +3618,9 @@
             }
         },
         "node_modules/@types/geojson": {
-            "version": "7946.0.15",
-            "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.15.tgz",
-            "integrity": "sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==",
+            "version": "7946.0.16",
+            "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
+            "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",
             "license": "MIT"
         },
         "node_modules/@types/graceful-fs": {
@@ -5462,9 +5452,9 @@
             "license": "MIT"
         },
         "node_modules/cytoscape": {
-            "version": "3.30.4",
-            "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.4.tgz",
-            "integrity": "sha512-OxtlZwQl1WbwMmLiyPSEBuzeTIQnwZhJYYWFzZ2PhEHVFwpeaqNIkUzSiso00D98qk60l8Gwon2RP304d3BJ1A==",
+            "version": "3.31.0",
+            "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.31.0.tgz",
+            "integrity": "sha512-zDGn1K/tfZwEnoGOcHc0H4XazqAAXAuDpcYw9mUnUjATjqljyCNGJv8uEvbvxGaGHaVshxMecyl6oc6uKzRfbw==",
             "license": "MIT",
             "engines": {
                 "node": ">=0.10"
@@ -6288,9 +6278,9 @@
             }
         },
         "node_modules/dompurify": {
-            "version": "3.2.3",
-            "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.3.tgz",
-            "integrity": "sha512-U1U5Hzc2MO0oW3DF+G9qYN0aT7atAou4AgI0XjWz061nyBPbdxkfdhfy5uMgGn6+oLFCfn44ZGbdDqCzVmlOWA==",
+            "version": "3.2.4",
+            "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz",
+            "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==",
             "license": "(MPL-2.0 OR Apache-2.0)",
             "optionalDependencies": {
                 "@types/trusted-types": "^2.0.7"
@@ -10274,13 +10264,13 @@
             "license": "MIT"
         },
         "node_modules/local-pkg": {
-            "version": "0.5.1",
-            "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz",
-            "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==",
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.0.0.tgz",
+            "integrity": "sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==",
             "license": "MIT",
             "dependencies": {
                 "mlly": "^1.7.3",
-                "pkg-types": "^1.2.1"
+                "pkg-types": "^1.3.0"
             },
             "engines": {
                 "node": ">=14"
@@ -11729,14 +11719,14 @@
             "license": "Apache-2.0"
         },
         "node_modules/mlly": {
-            "version": "1.7.3",
-            "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.3.tgz",
-            "integrity": "sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==",
+            "version": "1.7.4",
+            "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz",
+            "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==",
             "license": "MIT",
             "dependencies": {
                 "acorn": "^8.14.0",
-                "pathe": "^1.1.2",
-                "pkg-types": "^1.2.1",
+                "pathe": "^2.0.1",
+                "pkg-types": "^1.3.0",
                 "ufo": "^1.5.4"
             }
         },
@@ -11976,6 +11966,19 @@
                 "url": "https://github.com/sponsors/sindresorhus"
             }
         },
+        "node_modules/nextra/node_modules/@theguild/remark-mermaid": {
+            "version": "0.1.3",
+            "resolved": "https://registry.npmjs.org/@theguild/remark-mermaid/-/remark-mermaid-0.1.3.tgz",
+            "integrity": "sha512-2FjVlaaKXK7Zj7UJAgOVTyaahn/3/EAfqYhyXg0BfDBVUl+lXcoIWRaxzqfnDr2rv8ax6GsC5mNh6hAaT86PDw==",
+            "license": "MIT",
+            "dependencies": {
+                "mermaid": "^11.0.0",
+                "unist-util-visit": "^5.0.0"
+            },
+            "peerDependencies": {
+                "react": "^18.2.0"
+            }
+        },
         "node_modules/nextra/node_modules/slash": {
             "version": "5.1.0",
             "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
@@ -12336,9 +12339,9 @@
             }
         },
         "node_modules/package-manager-detector": {
-            "version": "0.2.7",
-            "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.7.tgz",
-            "integrity": "sha512-g4+387DXDKlZzHkP+9FLt8yKj8+/3tOkPv7DVTJGGRm00RkEWgqbFstX1mXJ4M0VDYhUqsTOiISqNOJnhAu3PQ==",
+            "version": "0.2.9",
+            "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.9.tgz",
+            "integrity": "sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==",
             "license": "MIT"
         },
         "node_modules/parent-module": {
@@ -12499,9 +12502,9 @@
             "license": "ISC"
         },
         "node_modules/pathe": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
-            "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+            "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
             "license": "MIT"
         },
         "node_modules/picocolors": {
@@ -12613,14 +12616,14 @@
             }
         },
         "node_modules/pkg-types": {
-            "version": "1.2.1",
-            "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz",
-            "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==",
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
+            "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
             "license": "MIT",
             "dependencies": {
                 "confbox": "^0.1.8",
-                "mlly": "^1.7.2",
-                "pathe": "^1.1.2"
+                "mlly": "^1.7.4",
+                "pathe": "^2.0.1"
             }
         },
         "node_modules/points-on-curve": {
@@ -14971,9 +14974,9 @@
             }
         },
         "node_modules/stylis": {
-            "version": "4.3.4",
-            "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz",
-            "integrity": "sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==",
+            "version": "4.3.6",
+            "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz",
+            "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==",
             "license": "MIT"
         },
         "node_modules/sucrase": {
@@ -15265,9 +15268,9 @@
             "license": "MIT"
         },
         "node_modules/tinyexec": {
-            "version": "0.3.1",
-            "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz",
-            "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==",
+            "version": "0.3.2",
+            "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
+            "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
             "license": "MIT"
         },
         "node_modules/title": {
diff --git a/package.json b/package.json
index ba5e96016cfd46fedde354209a7ddc44588c6692..7d5615e0ad8bcdb406ff266a30b645b365619125 100644
--- a/package.json
+++ b/package.json
@@ -74,4 +74,4 @@
         "tailwindcss": "^3.4.16",
         "typescript": "^5.7.2"
     }
-}
+}
\ No newline at end of file
diff --git a/src/components/CheckRepoForm.tsx b/src/components/CheckRepoForm.tsx
index 259919f0b1a574a7112adf1e5b498876b28691d2..aa8dfbe74d398d0cb562ea646c33965ef2d20e3e 100644
--- a/src/components/CheckRepoForm.tsx
+++ b/src/components/CheckRepoForm.tsx
@@ -20,35 +20,50 @@ const CheckRepoForm: FunctionComponent<Props> = ({
     const form = useForm<{
         repositoryUrl: string
     }>()
-    const [isPending, startTransition] = useTransition()
+    const [isPending, setIsPending] = React.useState(false)
     const { toast } = useToast()
 
-    const handleSubmit = ({ repositoryUrl }: { repositoryUrl: string }) => {
+    const handleSubmit = async ({
+        repositoryUrl,
+    }: {
+        repositoryUrl: string
+    }) => {
+        if (isPending) {
+            return
+        }
+        setIsPending(true)
         // check if valid url
-        startTransition(async () => {
-            try {
-                const url = new URL(repositoryUrl)
 
-                // valid url.
-                // lets url encode it
-                const encodedUri = encodeURIComponent(url.toString())
+        await new Promise<void>((resolve) =>
+            setTimeout(() => {
+                console.log('resolved')
+                resolve()
+            }, 100000),
+        )
+
+        try {
+            const url = new URL(repositoryUrl)
 
-                const resp = await apiCall(
-                    '/repositories/' + encodedUri + '/sarif',
-                )
-                const json: SarifApiResponse = await resp.json()
-                onScanFinished(json)
-                form.reset()
-            } catch (e) {
-                console.error(e)
-                toast({
-                    title: 'Provided url is invalid',
-                    description:
-                        'Please check if the url you provided has a typo. Make sure to include the whole url to the repo, without the .git ending.',
-                })
-            }
-        })
+            // valid url.
+            // lets url encode it
+            const encodedUri = encodeURIComponent(url.toString())
+
+            const resp = await apiCall('/repositories/' + encodedUri + '/sarif')
+            const json: SarifApiResponse = await resp.json()
+            onScanFinished(json)
+            form.reset()
+        } catch (e) {
+            console.error(e)
+            toast({
+                title: 'Provided url is invalid',
+                description:
+                    'Please check if the url you provided has a typo. Make sure to include the whole url to the repo, without the .git ending.',
+            })
+        } finally {
+            setIsPending(false)
+        }
     }
+
     return (
         <Form {...form}>
             <form onSubmit={form.handleSubmit(handleSubmit)}>
@@ -66,7 +81,10 @@ const CheckRepoForm: FunctionComponent<Props> = ({
                             {...form.register('repositoryUrl')}
                         />
                         {isPending ? (
-                            <Button disabled>
+                            <Button
+                                className="border-transparent bg-white"
+                                disabled
+                            >
                                 <Loader2 className="animate-spin" />
                                 Please wait
                             </Button>
diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx
index 35baeaad98a1f824c218789a79ff6467402b612c..089cfb4a1ef3e76cb75cac2c1367033c2c1fc372 100644
--- a/src/components/ui/button.tsx
+++ b/src/components/ui/button.tsx
@@ -5,7 +5,7 @@ import { cva, VariantProps } from 'class-variance-authority'
 import { cn } from '../../lib/utils'
 
 const buttonVariants = cva(
-    'inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
+    'inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
     {
         variants: {
             variant: {
@@ -21,7 +21,7 @@ const buttonVariants = cva(
                 link: 'text-primary underline-offset-4 hover:underline',
             },
             size: {
-                default: 'h-9 px-4 py-2',
+                default: 'h-12 px-4 py-2',
                 sm: 'h-8 rounded-md px-3 text-xs',
                 lg: 'h-10 rounded-md px-8',
                 icon: 'h-9 w-9',
diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx
index 75d396bb4afc320538cd8be13d6cdc196a81f7a2..a5f5e4d68e5eb753cfa316077b8eefebfd278c61 100644
--- a/src/components/ui/input.tsx
+++ b/src/components/ui/input.tsx
@@ -8,7 +8,7 @@ const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<'input'>>(
             <input
                 type={type}
                 className={cn(
-                    'bg-input file:text-foreground placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',
+                    'bg-input file:text-foreground placeholder:text-muted-foreground focus-visible:ring-ring flex h-12 w-full rounded-md border px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50',
                     className,
                 )}
                 ref={ref}