diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 12c264ab9..d7245bfbc 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -8,16 +8,16 @@
"name": "3x-ui-frontend",
"version": "0.4.1",
"dependencies": {
- "@ant-design/icons": "^6.2.5",
+ "@ant-design/icons": "^6.3.2",
"@codemirror/lang-json": "^6.0.2",
"@codemirror/theme-one-dark": "^6.1.3",
- "@tanstack/react-query": "^5.101.1",
- "@tanstack/react-query-devtools": "^5.101.1",
- "antd": "^6.4.5",
+ "@tanstack/react-query": "^5.101.2",
+ "@tanstack/react-query-devtools": "^5.101.2",
+ "antd": "^6.5.0",
"axios": "^1.18.1",
"codemirror": "^6.0.2",
"dayjs": "^1.11.21",
- "i18next": "^26.3.2",
+ "i18next": "^26.3.3",
"otpauth": "^9.5.1",
"persian-calendar-suite": "^1.5.5",
"qs": "^6.15.3",
@@ -38,7 +38,7 @@
"@types/swagger-ui-react": "^5.18.0",
"@vitejs/plugin-react": "^6.0.3",
"@vitest/coverage-v8": "^4.1.9",
- "eslint": "^10.5.0",
+ "eslint": "^10.6.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react-hooks": "^7.1.1",
"globals": "^17.7.0",
@@ -106,13 +106,13 @@
}
},
"node_modules/@ant-design/icons": {
- "version": "6.2.5",
- "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-6.2.5.tgz",
- "integrity": "sha512-0hKtoKqTjGFOndUyJLJmC9Cg6k4rEO7rLo6xmgbNJH+/ZX1C57RVals2v1j1knHl9n7Q+sBOveTvn931wLOCKw==",
+ "version": "6.3.2",
+ "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-6.3.2.tgz",
+ "integrity": "sha512-B6O5a5XJ4wjtNOfZejXYwHW5zvKV5gYkjGf11dHGLEbKn0ABDGndo41+gfIiXyTFhvESj4XTotuud33mUFid0g==",
"license": "MIT",
"dependencies": {
"@ant-design/colors": "^8.0.1",
- "@ant-design/icons-svg": "^4.4.2",
+ "@ant-design/icons-svg": "^4.5.0",
"@rc-component/util": "^1.11.0",
"clsx": "^2.1.1"
},
@@ -125,9 +125,9 @@
}
},
"node_modules/@ant-design/icons-svg": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz",
- "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.5.0.tgz",
+ "integrity": "sha512-1BTUFyKPTBZ53MuTP8s0k5SFEXL7o3VHEOwLgzaoWKwnBeqIcqUtVshc4SKzhI6uACfqhJqBwBUE9FsWR3uULA==",
"license": "MIT"
},
"node_modules/@ant-design/react-slick": {
@@ -573,9 +573,9 @@
}
},
"node_modules/@codemirror/view": {
- "version": "6.43.3",
- "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.43.3.tgz",
- "integrity": "sha512-MwEwCAr/o0agJefhC2+reBv5kfOQpMcDRUNQrRYZgWlhH8IwQcerMZrpqWyUFSyO0ebgN2cnh/w87F7G4BGSng==",
+ "version": "6.43.4",
+ "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.43.4.tgz",
+ "integrity": "sha512-YImu23iyKfncJzT7sRy+rEqEhSc8RhOHqDxwy4WzXRKJwYm6iwf/9OJk5ctCAdZ6yi2ZqaGEvmf55fSVqMDrgg==",
"license": "MIT",
"dependencies": {
"@codemirror/state": "^6.7.0",
@@ -680,9 +680,9 @@
}
},
"node_modules/@csstools/css-syntax-patches-for-csstree": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.5.tgz",
- "integrity": "sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.6.tgz",
+ "integrity": "sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==",
"dev": true,
"funding": [
{
@@ -1068,9 +1068,9 @@
}
},
"node_modules/@marijn/find-cluster-break": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz",
- "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.3.tgz",
+ "integrity": "sha512-FY+MKLBoTsLNJF/eLWaOsXGdz6uh3Iu1axjPf6TUq92IYumcTcXWHoS747JARLkcdlJ/Waiaxc5wQfFO8jC6NA==",
"license": "MIT"
},
"node_modules/@napi-rs/wasm-runtime": {
@@ -1127,12 +1127,12 @@
}
},
"node_modules/@rc-component/cascader": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/@rc-component/cascader/-/cascader-1.16.1.tgz",
- "integrity": "sha512-wxLopwM+EBed0zNNGdnGE4coYoqcO+XD42fHgn+pDvO+XzhNFbdgSlSNXdKocIYqccvqgWvoxDPNb0OVRdi59A==",
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/@rc-component/cascader/-/cascader-1.17.0.tgz",
+ "integrity": "sha512-3cVNG0zrQF1PoXq262L3wGCU+/YLEC1mGSVHDl577dQmA0ZKkXFbY6nwyXo+beCcM7buo49t24jkr+QZdL7O8w==",
"license": "MIT",
"dependencies": {
- "@rc-component/select": "~1.7.1",
+ "@rc-component/select": "~1.8.0",
"@rc-component/tree": "~1.3.2",
"@rc-component/util": "^1.11.1",
"clsx": "^2.1.1"
@@ -1201,12 +1201,12 @@
}
},
"node_modules/@rc-component/dialog": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@rc-component/dialog/-/dialog-1.9.0.tgz",
- "integrity": "sha512-zbAAogkg4kkKum79sLE6M+vq1jSAW25zdkafrahgcTP9t9S//SD634Znd1A4c8F2Gc12ZKnehGLsVaaOvZzD2A==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@rc-component/dialog/-/dialog-1.10.0.tgz",
+ "integrity": "sha512-eDukNlz9vNszAGv7i3zKXdxEd3wgVmNxuJijYt8zvTh17QwTu8KK/bdURRd/lU4qaMzhO1HKKmMrwOnkaw0BvQ==",
"license": "MIT",
"dependencies": {
- "@rc-component/motion": "^1.1.3",
+ "@rc-component/motion": "^1.3.3",
"@rc-component/portal": "^2.1.0",
"@rc-component/util": "^1.9.0",
"clsx": "^2.1.1"
@@ -1312,13 +1312,13 @@
}
},
"node_modules/@rc-component/mentions": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@rc-component/mentions/-/mentions-1.9.0.tgz",
- "integrity": "sha512-WUwfFKDSOF5S9UPsNsXcLYtzjTxBGsftTXWRbZuxX6BYrsySISTnujfJNgaaQ6qVzaCDJ35QUkZKvsYxip1C5g==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@rc-component/mentions/-/mentions-1.10.0.tgz",
+ "integrity": "sha512-CI1njYUVY0NjHtLhNoVmXlJyy568Sfep9Wsak6vmGjtT6uazx98djGYlCXz2xkHhEm73g91Y3MTvzUyE5avI7w==",
"license": "MIT",
"dependencies": {
"@rc-component/input": "~1.3.0",
- "@rc-component/menu": "~1.3.0",
+ "@rc-component/menu": "~1.4.0",
"@rc-component/trigger": "^3.0.0",
"@rc-component/util": "^1.3.0",
"clsx": "^2.1.1"
@@ -1329,9 +1329,9 @@
}
},
"node_modules/@rc-component/menu": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@rc-component/menu/-/menu-1.3.1.tgz",
- "integrity": "sha512-pSZl9nBPgKgxN0aaW7NilIBEwWsc+43S+ulGdWAg9afak96dNOGWsGx0DLLBB1VQsAJvo6bQMTDzXoPlEHsBEw==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@rc-component/menu/-/menu-1.4.1.tgz",
+ "integrity": "sha512-3GsVRoQ4cnF/AoIQ4P+Z1haBfgfBPQfLT1RJY3Nu4DzOnheTslfCiGSPj7bv/cLj5sW5pHqN25dDXGP3JELAlQ==",
"license": "MIT",
"dependencies": {
"@rc-component/motion": "^1.1.4",
@@ -1422,9 +1422,9 @@
}
},
"node_modules/@rc-component/pagination": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@rc-component/pagination/-/pagination-1.3.0.tgz",
- "integrity": "sha512-12ahTY+HPITg1L2bjWKXUqBJe/oOnpA2QsChdCjthqLVf/e19StiCsv8OLKpWoHbc+8PFEkNjRqRqrLoRBHjFw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@rc-component/pagination/-/pagination-1.4.0.tgz",
+ "integrity": "sha512-CW1g7P9V8u+e8JQdUsl2RWg+GCsoee0mtJjZUCCxn/vb3jzOwDKm6hAdwddHCVBfWJ58eGUBZz3IvnU8rRktjw==",
"license": "MIT",
"dependencies": {
"@rc-component/util": "^1.11.1",
@@ -1436,15 +1436,15 @@
}
},
"node_modules/@rc-component/picker": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@rc-component/picker/-/picker-1.10.0.tgz",
- "integrity": "sha512-vVOXP2RVWozwpERGUFAehVH1Jz6o/uRrAb9qSZm1LC+iJs8rvEwFo1bzz2jlOYV+uWwu0dIuG86tnDui14Ea0w==",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/@rc-component/picker/-/picker-1.11.0.tgz",
+ "integrity": "sha512-6qXGKtoJvO8sUd17m5cyNEbEJub0zflCHnaZTBBmj63DPRZYc0WEHN8rp6hFSl+yMCJS/dJY5G+1fQ8bLCuD7A==",
"license": "MIT",
"dependencies": {
"@rc-component/overflow": "^1.0.0",
"@rc-component/resize-observer": "^1.0.0",
"@rc-component/trigger": "^3.6.15",
- "@rc-component/util": "^1.3.0",
+ "@rc-component/util": "^1.11.1",
"clsx": "^2.1.1"
},
"engines": {
@@ -1567,9 +1567,9 @@
}
},
"node_modules/@rc-component/select": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@rc-component/select/-/select-1.7.1.tgz",
- "integrity": "sha512-GZ1cMJk2xQh0VHyOQjjG8drYL4iu24NcbkXioUcReQOCUr+ub/3fmRonZe6cRPEZhWMbJdeHsqnEltogDaZ5Tg==",
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/@rc-component/select/-/select-1.8.2.tgz",
+ "integrity": "sha512-HQ9zuYqjfZTlcEMWlU1GAPBajd2OHIMVHyjZSGVTCVARwkfCgvXZMTEn0cduy3L+ejAKkaZluOQvxovZoaJaQw==",
"license": "MIT",
"dependencies": {
"@rc-component/overflow": "^1.0.0",
@@ -1587,9 +1587,9 @@
}
},
"node_modules/@rc-component/slider": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@rc-component/slider/-/slider-1.0.1.tgz",
- "integrity": "sha512-uDhEPU1z3WDfCJhaL9jfd2ha/Eqpdfxsn0Zb0Xcq1NGQAman0TWaR37OWp2vVXEOdV2y0njSILTMpTfPV1454g==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@rc-component/slider/-/slider-1.1.1.tgz",
+ "integrity": "sha512-LSzgWGYDgeCDgR4r1XlU29gbYws6HpLnvJd/uMhLeW/vQgxldeR+Wb4uzHDCHiYEbr1bnEHWdjkPxjJRHxuiig==",
"license": "MIT",
"dependencies": {
"@rc-component/util": "^1.3.0",
@@ -1655,13 +1655,13 @@
}
},
"node_modules/@rc-component/tabs": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/@rc-component/tabs/-/tabs-1.9.1.tgz",
- "integrity": "sha512-6mY08Fce6aNOHuGsxbzT+f2ekgL9mg1cGGHkittMlVGymjGg+kGupu5v90sRxcUd/paRU9jclLLXtF/PkK1FUA==",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/@rc-component/tabs/-/tabs-1.11.0.tgz",
+ "integrity": "sha512-hA/drZYOVa/MMIb4M2fWf3yaTyTG4qVuIABmghvEhyfw2nBob5VTH69lMCDjSVKmgODjO6nWlCV+gVn3xBrj5Q==",
"license": "MIT",
"dependencies": {
"@rc-component/dropdown": "~1.0.0",
- "@rc-component/menu": "~1.3.0",
+ "@rc-component/menu": "~1.4.0",
"@rc-component/motion": "^1.1.3",
"@rc-component/resize-observer": "^1.0.0",
"@rc-component/util": "^1.11.1",
@@ -1729,14 +1729,14 @@
}
},
"node_modules/@rc-component/tree-select": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@rc-component/tree-select/-/tree-select-1.10.0.tgz",
- "integrity": "sha512-E1U4pn2LAbXEhLJdzIzid7WYbIuFbkTIctuFoeC6weppf8UbPR3+YYB6/ay0c0ksand4gXMRQpa1Z60Auo7VJA==",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/@rc-component/tree-select/-/tree-select-1.11.0.tgz",
+ "integrity": "sha512-EhS0X0wtUhBfK4S5TlpSY3MR9ndPMGgujtt1PJW3Ej+ToAlnS/6ohYURtCoXBYGqazUwHmgQGVUDsfpVwhWPkg==",
"license": "MIT",
"dependencies": {
- "@rc-component/select": "~1.7.0",
- "@rc-component/tree": "~1.3.0",
- "@rc-component/util": "^1.4.0",
+ "@rc-component/select": "~1.8.0",
+ "@rc-component/tree": "~1.3.2",
+ "@rc-component/util": "^1.11.1",
"clsx": "^2.1.1"
},
"peerDependencies": {
@@ -2814,9 +2814,9 @@
}
},
"node_modules/@tanstack/query-core": {
- "version": "5.101.1",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.101.1.tgz",
- "integrity": "sha512-Y6Y92dkXtNqx67m2pMSxUsA3zOCwv862JexZRP8/EPwvKXMPu9m8rv43spiXWzOUIggQ3SQApttALStzhA8B4g==",
+ "version": "5.101.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.101.2.tgz",
+ "integrity": "sha512-hH5MLoJhF7KaIGd7q3xTXGXvslI+GYlM1Z/35aSHHWaCJWB7XvTSHYuV3eM7tw+aE0mT/xMro4M4Q9rCGHT0lw==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2824,9 +2824,9 @@
}
},
"node_modules/@tanstack/query-devtools": {
- "version": "5.101.1",
- "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.101.1.tgz",
- "integrity": "sha512-37RQ9U2PxlXQiv1era2t+uHgVhmiyvxqTMu30+KoVf0rufiucu6rpGRKFJk61Wh5OAZFKqCQd6lxTzFWfLZiuQ==",
+ "version": "5.101.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.101.2.tgz",
+ "integrity": "sha512-o+wHcqgN7Pp0s8v1i0UGq/ZrrEKrxdIiMQmKRdYb2w7NPtylYSJ4+wg/tIn71m9DLstwUwdEGAvROdly6HXP6w==",
"license": "MIT",
"funding": {
"type": "github",
@@ -2834,12 +2834,12 @@
}
},
"node_modules/@tanstack/react-query": {
- "version": "5.101.1",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.101.1.tgz",
- "integrity": "sha512-ZnONUuQKJe1bJMStXUL1s5uKN9FcfC28j5cK+iDZcdSHtUv1wtin1cGc/Oewhf2Oc4eKY7lggtpvT/AbMmhHew==",
+ "version": "5.101.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.101.2.tgz",
+ "integrity": "sha512-seDkr6kzGzX1okaaTtZPtgA688CDPlXUz1C6xSg0ESqn04Vuc8tlrYms1s3de+znBqhPVxFRfpAfUf+6XvfPWg==",
"license": "MIT",
"dependencies": {
- "@tanstack/query-core": "5.101.1"
+ "@tanstack/query-core": "5.101.2"
},
"funding": {
"type": "github",
@@ -2850,19 +2850,19 @@
}
},
"node_modules/@tanstack/react-query-devtools": {
- "version": "5.101.1",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.101.1.tgz",
- "integrity": "sha512-OXFR9XKdEslraq3cpl3kCUeNvTIq/xGWEZiFZdn2bLB/q4WxSALMEDKYZ5yYjMQytsfnQxwQYqV4qtVEf0nuog==",
+ "version": "5.101.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.101.2.tgz",
+ "integrity": "sha512-eU7HctdA9gDjqoERoEdzLbw9DiqnBDfh5+Hu0u26gjqoHJezOpQAuiesDL2VvkU+2cPV76zgv0tMZsOrI4LjnQ==",
"license": "MIT",
"dependencies": {
- "@tanstack/query-devtools": "5.101.1"
+ "@tanstack/query-devtools": "5.101.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/tannerlinsley"
},
"peerDependencies": {
- "@tanstack/react-query": "^5.101.1",
+ "@tanstack/react-query": "^5.101.2",
"react": "^18 || ^19"
}
},
@@ -3596,51 +3596,51 @@
}
},
"node_modules/antd": {
- "version": "6.4.5",
- "resolved": "https://registry.npmjs.org/antd/-/antd-6.4.5.tgz",
- "integrity": "sha512-xyAgX/sqF/CRS1G95oM4ql0+3TBG+tE58aRJqdUPVv4yMZcQrnnkA4cU7Uc5Rny2yK2TrusDVargHzzXUrlJ1g==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/antd/-/antd-6.5.0.tgz",
+ "integrity": "sha512-9zbVc9UukfGuqCvIAov01nlpDQWfARNmZQyt21ZhqLX7ilXmi4cdkp12xA48WEmXRXwZvno8A03qQuGE9JG8fg==",
"license": "MIT",
"dependencies": {
"@ant-design/colors": "^8.0.1",
"@ant-design/cssinjs": "^2.1.2",
"@ant-design/cssinjs-utils": "^2.1.2",
"@ant-design/fast-color": "^3.0.1",
- "@ant-design/icons": "^6.2.5",
+ "@ant-design/icons": "^6.3.1",
"@ant-design/react-slick": "~2.0.0",
"@babel/runtime": "^7.29.2",
- "@rc-component/cascader": "~1.16.1",
+ "@rc-component/cascader": "~1.17.0",
"@rc-component/checkbox": "~2.0.0",
"@rc-component/collapse": "~1.2.0",
"@rc-component/color-picker": "~3.1.1",
- "@rc-component/dialog": "~1.9.0",
+ "@rc-component/dialog": "~1.10.0",
"@rc-component/drawer": "~1.4.2",
"@rc-component/dropdown": "~1.0.2",
"@rc-component/form": "~1.8.5",
"@rc-component/image": "~1.9.0",
"@rc-component/input": "~1.3.1",
"@rc-component/input-number": "~1.6.2",
- "@rc-component/mentions": "~1.9.0",
- "@rc-component/menu": "~1.3.1",
+ "@rc-component/mentions": "~1.10.0",
+ "@rc-component/menu": "~1.4.1",
"@rc-component/motion": "^1.3.3",
"@rc-component/mutate-observer": "^2.0.1",
"@rc-component/notification": "~2.0.7",
- "@rc-component/pagination": "~1.3.0",
- "@rc-component/picker": "~1.10.0",
+ "@rc-component/pagination": "~1.4.0",
+ "@rc-component/picker": "~1.11.0",
"@rc-component/progress": "~1.0.2",
"@rc-component/qrcode": "~2.0.0",
"@rc-component/rate": "~1.0.1",
"@rc-component/resize-observer": "^1.1.2",
"@rc-component/segmented": "~1.3.0",
- "@rc-component/select": "~1.7.1",
- "@rc-component/slider": "~1.0.1",
+ "@rc-component/select": "~1.8.2",
+ "@rc-component/slider": "~1.1.1",
"@rc-component/steps": "~1.2.2",
"@rc-component/switch": "~1.0.3",
"@rc-component/table": "~1.10.2",
- "@rc-component/tabs": "~1.9.1",
+ "@rc-component/tabs": "~1.11.0",
"@rc-component/tooltip": "~1.4.0",
"@rc-component/tour": "~2.4.0",
"@rc-component/tree": "~1.3.2",
- "@rc-component/tree-select": "~1.10.0",
+ "@rc-component/tree-select": "~1.11.0",
"@rc-component/trigger": "^3.9.1",
"@rc-component/upload": "~1.1.1",
"@rc-component/util": "^1.11.1",
@@ -3941,9 +3941,9 @@
}
},
"node_modules/brace-expansion": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
- "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz",
+ "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==",
"license": "MIT",
"dependencies": {
"balanced-match": "^4.0.2"
@@ -4224,9 +4224,9 @@
}
},
"node_modules/crelt": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz",
- "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.7.tgz",
+ "integrity": "sha512-aK6BbWfhf4U/wCcLHKPJl/xa6VkVstRaPywWtMKGwuOLc/wZTyQYuoxgvZnNsBvv7Kg3YTBQYYBCggcviQczuA==",
"license": "MIT"
},
"node_modules/cross-spawn": {
@@ -4644,9 +4644,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.378",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.378.tgz",
- "integrity": "sha512-VinvOAuuPmdD1guEgGv5f2Qp7/vlfqOrUOMYNnOD4wj3pit8kRsQHzfIf6teyUGWo15Tg5+bOJaRunvyltpVWQ==",
+ "version": "1.5.381",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.381.tgz",
+ "integrity": "sha512-n9Wa6yB+vDsGuA8AKbl/0z7HbvWqt5jxIdvr1IUicd0ryPrk7/xzwqLv8D9AbbvZ6avVNtXYLTfmgFHkwkyelg==",
"dev": true,
"license": "ISC"
},
@@ -4777,9 +4777,9 @@
}
},
"node_modules/es-module-lexer": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz",
- "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.2.0.tgz",
+ "integrity": "sha512-3lGxdTXCLfe1MYfTz1y2ksAAUM4NAOP6rPEjxGJVKO7TZ5+tvHCaQWGpC4Y3IXvW3ece0Cz1cIP4FWBxOnGCTQ==",
"dev": true,
"license": "MIT"
},
@@ -4845,9 +4845,9 @@
}
},
"node_modules/es-toolkit": {
- "version": "1.48.1",
- "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.48.1.tgz",
- "integrity": "sha512-wfnXlwd5I75eXRtdD2vuEs50xHHESECDsGD7yiQnfFVNoa5522NwXEbmgo98LfiukSQHs+mBM7/YG3qKJB9/mQ==",
+ "version": "1.49.0",
+ "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.49.0.tgz",
+ "integrity": "sha512-G5iZ6Pc/FNRY/soKZHC+TxGDD83rHUDXxzaWhGCX44vAv/tMs56WMusnm/KMNK+luUPsgA9U28cGr4RDlSzL2g==",
"license": "MIT",
"workspaces": [
"docs",
@@ -4878,9 +4878,9 @@
}
},
"node_modules/eslint": {
- "version": "10.5.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.5.0.tgz",
- "integrity": "sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==",
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.6.0.tgz",
+ "integrity": "sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==",
"dev": true,
"license": "MIT",
"workspaces": [
@@ -5700,9 +5700,9 @@
}
},
"node_modules/i18next": {
- "version": "26.3.2",
- "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.3.2.tgz",
- "integrity": "sha512-QQkXAM1sPDHqhxMQuBeHVMUn6mJchF+wdpOoQerciLAFqO3ZYdxO0EUbeEhruyutnNwpUQIITDVzLjwnNL0T1w==",
+ "version": "26.3.3",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.3.3.tgz",
+ "integrity": "sha512-aYVegyBdXSO93CMMihvr47jI7GHSOcIahMpJX+qzUXDzW4xDJf2uenIA+45vDU+YhiVdcfsql70AC9RVdMNrHg==",
"funding": [
{
"type": "individual",
@@ -6327,9 +6327,9 @@
"license": "MIT"
},
"node_modules/js-yaml": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz",
- "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
+ "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
"funding": [
{
"type": "github",
@@ -7025,9 +7025,9 @@
"license": "MIT"
},
"node_modules/node-addon-api": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.8.0.tgz",
- "integrity": "sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA==",
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.9.0.tgz",
+ "integrity": "sha512-ekZMeaaIzSQTSpr7X2X3iJM7lTzgnx8ahAG9pJfT/7+14mlEM8ZYQ9cgCDvSSRbReFK0oHli3WrZdCiRsgAT9Q==",
"license": "MIT",
"optional": true,
"engines": {
@@ -7368,9 +7368,9 @@
}
},
"node_modules/postcss": {
- "version": "8.5.15",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz",
- "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==",
+ "version": "8.5.16",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz",
+ "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==",
"dev": true,
"funding": [
{
@@ -8576,22 +8576,22 @@
}
},
"node_modules/tldts": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.4.tgz",
- "integrity": "sha512-kFXFK7O4WPextIUAOk8qtnw9dxR9UIXP9CjuH1cTBVBZMDeQcUPgr/IazGiw1B0Yiw5L75gHLWeW4iD793r90g==",
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.5.tgz",
+ "integrity": "sha512-RfEzKWcq5fHUOFq7J3rl3Oz6ylKGtcHqUznzj4EcXsxLSIjJcvpbXAQtWGeJQ0xKnimR5e0Cn+cn9TssfMzm+g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "tldts-core": "^7.4.4"
+ "tldts-core": "^7.4.5"
},
"bin": {
"tldts": "bin/cli.js"
}
},
"node_modules/tldts-core": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.4.tgz",
- "integrity": "sha512-vwVLJVvvpslm7vqAH7+XNj/neA/Ynq7DT2EEcMuwc5YzN5XaMyRAqxwU+uX3azZ1FQtB2gvrvnLnAEkvYlVdfg==",
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.5.tgz",
+ "integrity": "sha512-pGrwzZDvPwKe+7NNUqAunb6rqTfynr0VOUhCMdqbu5xlvNiszsAJygRzwvpVycdzejlbpY+SWJOn+s75Og7FEA==",
"dev": true,
"license": "MIT"
},
diff --git a/frontend/package.json b/frontend/package.json
index 3c7369167..6a6e50198 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -21,16 +21,16 @@
"gen:zod": "cd .. && go run ./tools/openapigen"
},
"dependencies": {
- "@ant-design/icons": "^6.2.5",
+ "@ant-design/icons": "^6.3.2",
"@codemirror/lang-json": "^6.0.2",
"@codemirror/theme-one-dark": "^6.1.3",
- "@tanstack/react-query": "^5.101.1",
- "@tanstack/react-query-devtools": "^5.101.1",
- "antd": "^6.4.5",
+ "@tanstack/react-query": "^5.101.2",
+ "@tanstack/react-query-devtools": "^5.101.2",
+ "antd": "^6.5.0",
"axios": "^1.18.1",
"codemirror": "^6.0.2",
"dayjs": "^1.11.21",
- "i18next": "^26.3.2",
+ "i18next": "^26.3.3",
"otpauth": "^9.5.1",
"persian-calendar-suite": "^1.5.5",
"qs": "^6.15.3",
@@ -51,7 +51,7 @@
"@types/swagger-ui-react": "^5.18.0",
"@vitejs/plugin-react": "^6.0.3",
"@vitest/coverage-v8": "^4.1.9",
- "eslint": "^10.5.0",
+ "eslint": "^10.6.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react-hooks": "^7.1.1",
"globals": "^17.7.0",
diff --git a/frontend/src/components/form/RemarkTemplateField.tsx b/frontend/src/components/form/RemarkTemplateField.tsx
index 7f4d1f5f7..1b9c3fe4c 100644
--- a/frontend/src/components/form/RemarkTemplateField.tsx
+++ b/frontend/src/components/form/RemarkTemplateField.tsx
@@ -47,7 +47,7 @@ export default function RemarkTemplateField({ value = '', onChange, maxLength, p
maxLength={maxLength}
placeholder={placeholder}
onChange={(e) => onChange?.(e.target.value)}
- addonAfter={
+ suffix={
}
trigger="click"
@@ -55,7 +55,7 @@ export default function RemarkTemplateField({ value = '', onChange, maxLength, p
title={t('pages.hosts.remarkVars.title')}
>
- } aria-label={t('pages.hosts.remarkVars.title')} style={{ margin: '0 -7px' }} />
+ } aria-label={t('pages.hosts.remarkVars.title')} style={{ marginInlineEnd: -7 }} />
}
diff --git a/frontend/src/components/ui/SettingListItem.tsx b/frontend/src/components/ui/SettingListItem.tsx
index 598fbefb1..770dfbba7 100644
--- a/frontend/src/components/ui/SettingListItem.tsx
+++ b/frontend/src/components/ui/SettingListItem.tsx
@@ -1,4 +1,4 @@
-import { cloneElement, isValidElement, useId, type ReactElement, type ReactNode } from 'react';
+import { cloneElement, Fragment, isValidElement, useId, type ReactElement, type ReactNode } from 'react';
import { Col, Row } from 'antd';
import './SettingListItem.css';
@@ -20,7 +20,7 @@ export default function SettingListItem({
const padding = paddings === 'small' ? '10px 20px' : '20px';
const titleId = useId();
const node = control ?? children;
- const labelledNode = title && isValidElement(node)
+ const labelledNode = title && isValidElement(node) && node.type !== Fragment
? cloneElement(node as ReactElement<{ 'aria-labelledby'?: string }>, { 'aria-labelledby': titleId })
: node;
return (
diff --git a/frontend/src/components/ui/notifications/NotificationCard.tsx b/frontend/src/components/ui/notifications/NotificationCard.tsx
index a92d7ee5a..94a9e5b70 100644
--- a/frontend/src/components/ui/notifications/NotificationCard.tsx
+++ b/frontend/src/components/ui/notifications/NotificationCard.tsx
@@ -12,7 +12,7 @@ export function NotificationCard({ icon, title, extra, children }: Props) {
return (
{icon} {title}}
extra={extra}
style={{ borderWidth: 1 }}
diff --git a/frontend/src/components/ui/notifications/NotificationGroup.tsx b/frontend/src/components/ui/notifications/NotificationGroup.tsx
index 3c8636b5e..a9c881bac 100644
--- a/frontend/src/components/ui/notifications/NotificationGroup.tsx
+++ b/frontend/src/components/ui/notifications/NotificationGroup.tsx
@@ -40,7 +40,7 @@ export function NotificationGroup({ config, selected, onToggle, onToggleAll, all
/>
}
>
-
+
{config.events.map((event) => (
minItems
+ suffix={fields.length > minItems
? (
updateFallback(record.rowKey, { name: e.target.value })}
@@ -105,7 +105,7 @@ export default function FallbacksCard({
updateFallback(record.rowKey, { alpn: e.target.value })}
@@ -113,7 +113,7 @@ export default function FallbacksCard({
updateFallback(record.rowKey, { path: e.target.value })}
@@ -121,7 +121,7 @@ export default function FallbacksCard({
updateFallback(record.rowKey, { dest: e.target.value })}
@@ -129,7 +129,7 @@ export default function FallbacksCard({
-
+
-
+
{!isMobile && @XrayUI}
,
setLevel0('connIdle', v as number | null)}
/>
}
@@ -356,7 +356,7 @@ export default function BasicsTab({
min={0}
style={{ width: '100%' }}
placeholder={t('pages.xray.bufferSizePlaceholder')}
- addonAfter="KB"
+ suffix="KB"
onChange={(v) => setLevel0('bufferSize', v as number | null)}
/>
}
diff --git a/go.mod b/go.mod
index d1512c813..905c26a8e 100644
--- a/go.mod
+++ b/go.mod
@@ -19,7 +19,7 @@ require (
github.com/robfig/cron/v3 v3.0.1
github.com/shirou/gopsutil/v4 v4.26.5
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
- github.com/valyala/fasthttp v1.71.0
+ github.com/valyala/fasthttp v1.72.0
github.com/xlzd/gotp v0.1.0
github.com/xtls/xray-core v1.260327.1-0.20260627131803-45cf2898ab12
go.uber.org/atomic v1.11.0
diff --git a/go.sum b/go.sum
index 70ef57d99..8a313c63a 100644
--- a/go.sum
+++ b/go.sum
@@ -204,8 +204,8 @@ github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY
github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
-github.com/valyala/fasthttp v1.71.0 h1:tepR7H+Guh9VUqxxcPggYi8R3lGUu2Rsdh+z7/FCY3k=
-github.com/valyala/fasthttp v1.71.0/go.mod h1:z1sDUvOShhXq/C9mwH/fSm1Vb71tUJwmQdgkBrBNwnA=
+github.com/valyala/fasthttp v1.72.0 h1:R7kYdoWhn1ye1fVpP+cDHDJwYm3NkwLliwgzJ/Abg7M=
+github.com/valyala/fasthttp v1.72.0/go.mod h1:zsbLTYqcpIktdQytlVBwIjY9La5d6bs990nBxWg8efk=
github.com/valyala/fastjson v1.6.10 h1:/yjJg8jaVQdYR3arGxPE2X5z89xrlhS0eGXdv+ADTh4=
github.com/valyala/fastjson v1.6.10/go.mod h1:e6FubmQouUNP73jtMLmcbxS6ydWIpOfhz34TSfO3JaE=
github.com/vishvananda/netlink v1.3.1 h1:3AEMt62VKqz90r0tmNhog0r/PpWKmrEShJU0wJW6bV0=