mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-04-18 00:11:08 +08:00
chore(deps): update npm dependencies to v9 (major) (#6819)
* fix: replace DeleteOutline with DeleteOutlined icon in BackupHistoryViewer * chore(deps): update npm dependencies to v9 * refactor: bump @mui to v9 --------- Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This commit is contained in:
parent
0dd861fa32
commit
71dc5f0bdb
@ -41,9 +41,9 @@
|
|||||||
"@emotion/styled": "^11.14.1",
|
"@emotion/styled": "^11.14.1",
|
||||||
"@juggle/resize-observer": "^3.4.0",
|
"@juggle/resize-observer": "^3.4.0",
|
||||||
"@monaco-editor/react": "^4.7.0",
|
"@monaco-editor/react": "^4.7.0",
|
||||||
"@mui/icons-material": "^7.3.9",
|
"@mui/icons-material": "^9.0.0",
|
||||||
"@mui/lab": "7.0.0-beta.17",
|
"@mui/lab": "9.0.0-beta.2",
|
||||||
"@mui/material": "^7.3.9",
|
"@mui/material": "^9.0.0",
|
||||||
"@tanstack/react-query": "^5.96.1",
|
"@tanstack/react-query": "^5.96.1",
|
||||||
"@tanstack/react-table": "^8.21.3",
|
"@tanstack/react-table": "^8.21.3",
|
||||||
"@tanstack/react-virtual": "^3.13.23",
|
"@tanstack/react-virtual": "^3.13.23",
|
||||||
@ -93,8 +93,8 @@
|
|||||||
"@types/validator": "^13.15.10",
|
"@types/validator": "^13.15.10",
|
||||||
"@vitejs/plugin-legacy": "^8.0.0",
|
"@vitejs/plugin-legacy": "^8.0.0",
|
||||||
"@vitejs/plugin-react": "^6.0.1",
|
"@vitejs/plugin-react": "^6.0.1",
|
||||||
"axios": "^1.13.6",
|
|
||||||
"adm-zip": "^0.5.16",
|
"adm-zip": "^0.5.16",
|
||||||
|
"axios": "^1.13.6",
|
||||||
"cli-color": "^2.0.4",
|
"cli-color": "^2.0.4",
|
||||||
"commander": "^14.0.3",
|
"commander": "^14.0.3",
|
||||||
"cross-env": "^10.1.0",
|
"cross-env": "^10.1.0",
|
||||||
|
|||||||
104
pnpm-lock.yaml
generated
104
pnpm-lock.yaml
generated
@ -30,14 +30,14 @@ importers:
|
|||||||
specifier: ^4.7.0
|
specifier: ^4.7.0
|
||||||
version: 4.7.0(monaco-editor@0.55.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
version: 4.7.0(monaco-editor@0.55.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
'@mui/icons-material':
|
'@mui/icons-material':
|
||||||
specifier: ^7.3.9
|
specifier: ^9.0.0
|
||||||
version: 7.3.10(@mui/material@7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
version: 9.0.0(@mui/material@9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
||||||
'@mui/lab':
|
'@mui/lab':
|
||||||
specifier: 7.0.0-beta.17
|
specifier: 9.0.0-beta.2
|
||||||
version: 7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@mui/material@7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
version: 9.0.0-beta.2(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@mui/material@9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
'@mui/material':
|
'@mui/material':
|
||||||
specifier: ^7.3.9
|
specifier: ^9.0.0
|
||||||
version: 7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
version: 9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
'@tanstack/react-query':
|
'@tanstack/react-query':
|
||||||
specifier: ^5.96.1
|
specifier: ^5.96.1
|
||||||
version: 5.99.0(react@19.2.5)
|
version: 5.99.0(react@19.2.5)
|
||||||
@ -1047,28 +1047,28 @@ packages:
|
|||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
|
|
||||||
'@mui/core-downloads-tracker@7.3.10':
|
'@mui/core-downloads-tracker@9.0.0':
|
||||||
resolution: {integrity: sha512-vrOpWRmPJSuwLo23J62wggEm/jvGdzqctej+UOCtgDUz6nZJQuj3ByPccVyaa7eQmwAzUwKN56FQPMKkqbj1GA==}
|
resolution: {integrity: sha512-uwQNGkhv0lf7ufxw6QXev77BW6pWbW+7uxYjU5+rfp4lBkFtMEgJCsarTM3Tn+i0lGx6+Ol2u88JdGXr0GDskA==}
|
||||||
|
|
||||||
'@mui/icons-material@7.3.10':
|
'@mui/icons-material@9.0.0':
|
||||||
resolution: {integrity: sha512-Au0ma4NSKGKNiimukj8UT/W1x2Qx6Qwn2RvFGykiSqVLYBNlIOPbjnIMvrwLGLu89EEpTVdu/ys/OduZR+tWqw==}
|
resolution: {integrity: sha512-oDwyvI6LgjWRC9MBcSGvLkPud9S9ELgSBQFYxa1rYcZn6Br55dn22SyvsPDMsn0G8OndFk53iMT45W5mNqrogw==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@mui/material': ^7.3.10
|
'@mui/material': ^9.0.0
|
||||||
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@mui/lab@7.0.0-beta.17':
|
'@mui/lab@9.0.0-beta.2':
|
||||||
resolution: {integrity: sha512-H8tSINm6Xgbi7o49MplAwks4tAEE6SpFNd9l7n4NURl0GSpOv0CZvgXKSJt4+6TmquDhE7pomHpHWJiVh/2aCg==}
|
resolution: {integrity: sha512-UqykXQCn7HNSExyYBvrFpaaEEmUwHbEgjFDBApEkawVPcBILyYNFhpXoqkwkafiZy+WsvcxIeRF0z4tCgisTRg==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@emotion/react': ^11.5.0
|
'@emotion/react': ^11.5.0
|
||||||
'@emotion/styled': ^11.3.0
|
'@emotion/styled': ^11.3.0
|
||||||
'@mui/material': ^7.3.2
|
'@mui/material': ^9.0.0
|
||||||
'@mui/material-pigment-css': ^7.3.2
|
'@mui/material-pigment-css': ^9.0.0
|
||||||
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
|
react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
@ -1082,13 +1082,13 @@ packages:
|
|||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@mui/material@7.3.10':
|
'@mui/material@9.0.0':
|
||||||
resolution: {integrity: sha512-cHvGOk2ZEfbQt3LnGe0ZKd/ETs9gsUpkW66DCO+GSjMZhpdKU4XsuIr7zJ/B/2XaN8ihxuzHfYAR4zPtCN4RYg==}
|
resolution: {integrity: sha512-+VP/oQCDhDR87NQQgXnNBG8dwy6GNuQLnenS1pZvkbn2dKFSxRSRMybTpH9xUxXP+316mlYDy5CSbYtusnCWtw==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@emotion/react': ^11.5.0
|
'@emotion/react': ^11.5.0
|
||||||
'@emotion/styled': ^11.3.0
|
'@emotion/styled': ^11.3.0
|
||||||
'@mui/material-pigment-css': ^7.3.10
|
'@mui/material-pigment-css': ^9.0.0
|
||||||
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
|
react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
@ -1102,8 +1102,8 @@ packages:
|
|||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@mui/private-theming@7.3.10':
|
'@mui/private-theming@9.0.0':
|
||||||
resolution: {integrity: sha512-j3EZN+zOctxUISvJSmsEPo5o2F8zse4l5vRkBY+ps6UtnL6J7o14kUaI4w7gwo73id9e3cDNMVQK/9BVaMHVBw==}
|
resolution: {integrity: sha512-JtuZoaiCqwD6vjgYu6Xp3T7DZkrxJlgtDz5yESzhI34fEX5hHMh2VJUbuL9UOg8xrfIFMrq6dcYoH/7Zi4G0RA==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
@ -1112,8 +1112,8 @@ packages:
|
|||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@mui/styled-engine@7.3.10':
|
'@mui/styled-engine@9.0.0':
|
||||||
resolution: {integrity: sha512-WxE9SiF8xskAQqGjsp0poXCkCqsoXFEsSr0HBXfApmGHR+DBnXRp+z46Vsltg4gpPM4Z96DeAQRpeAOnhNg7Ng==}
|
resolution: {integrity: sha512-9RLGdX4Jg0aQPRuvqh/OLzYSPlgd5zyEw5/1HIRfdavSiOd03WtUaGZH9/w1RoTYuRKwpgy0hpIFaMHIqPVIWg==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@emotion/react': ^11.4.1
|
'@emotion/react': ^11.4.1
|
||||||
@ -1125,8 +1125,8 @@ packages:
|
|||||||
'@emotion/styled':
|
'@emotion/styled':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@mui/system@7.3.10':
|
'@mui/system@9.0.0':
|
||||||
resolution: {integrity: sha512-/sfPpdpJaQn7BSF+avjIdHSYmxHp0UOBYNxSG9QGKfMOD6sLANCpRPCnanq1Pe0lFf0NHkO2iUk0TNzdWC1USQ==}
|
resolution: {integrity: sha512-YnC5Zg6j04IxiLc/boAKs0464jfZlLFVa7mf5E8lF0XOtZVUvG6R6gJK50lgUYdaaLdyLfxF6xR7LaPuEpeT/g==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@emotion/react': ^11.5.0
|
'@emotion/react': ^11.5.0
|
||||||
@ -1141,16 +1141,16 @@ packages:
|
|||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@mui/types@7.4.12':
|
'@mui/types@9.0.0':
|
||||||
resolution: {integrity: sha512-iKNAF2u9PzSIj40CjvKJWxFXJo122jXVdrmdh0hMYd+FR+NuJMkr/L88XwWLCRiJ5P1j+uyac25+Kp6YC4hu6w==}
|
resolution: {integrity: sha512-i1cuFCAWN44b3AJWO7mh7tuh1sqbQSeVr/94oG0TX5uXivac8XalgE4/6fQZcmGZigzbQ35IXxj/4jLpRIBYZg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@mui/utils@7.3.10':
|
'@mui/utils@9.0.0':
|
||||||
resolution: {integrity: sha512-7y2eIfy0h7JPz+Yy4pS+wgV68d46PuuxDqKBN4Q8VlPQSsCAGwroMCV6xWyc7g9dvEp8ZNFsknc59GHWO+r6Ow==}
|
resolution: {integrity: sha512-bQcqyg/gjULUqTuyUjSAFr6LQGLvtkNtDbJerAtoUn9kGZ0hg5QJiN1PLHMLbeFpe3te1831uq7GFl2ITokGdg==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
@ -4624,23 +4624,23 @@ snapshots:
|
|||||||
react: 19.2.5
|
react: 19.2.5
|
||||||
react-dom: 19.2.5(react@19.2.5)
|
react-dom: 19.2.5(react@19.2.5)
|
||||||
|
|
||||||
'@mui/core-downloads-tracker@7.3.10': {}
|
'@mui/core-downloads-tracker@9.0.0': {}
|
||||||
|
|
||||||
'@mui/icons-material@7.3.10(@mui/material@7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)':
|
'@mui/icons-material@9.0.0(@mui/material@9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.29.2
|
'@babel/runtime': 7.29.2
|
||||||
'@mui/material': 7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
'@mui/material': 9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
react: 19.2.5
|
react: 19.2.5
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 19.2.14
|
'@types/react': 19.2.14
|
||||||
|
|
||||||
'@mui/lab@7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@mui/material@7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
'@mui/lab@9.0.0-beta.2(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@mui/material@9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.29.2
|
'@babel/runtime': 7.29.2
|
||||||
'@mui/material': 7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
'@mui/material': 9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||||
'@mui/system': 7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
'@mui/system': 9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
||||||
'@mui/types': 7.4.12(@types/react@19.2.14)
|
'@mui/types': 9.0.0(@types/react@19.2.14)
|
||||||
'@mui/utils': 7.3.10(@types/react@19.2.14)(react@19.2.5)
|
'@mui/utils': 9.0.0(@types/react@19.2.14)(react@19.2.5)
|
||||||
clsx: 2.1.1
|
clsx: 2.1.1
|
||||||
prop-types: 15.8.1
|
prop-types: 15.8.1
|
||||||
react: 19.2.5
|
react: 19.2.5
|
||||||
@ -4650,13 +4650,13 @@ snapshots:
|
|||||||
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
||||||
'@types/react': 19.2.14
|
'@types/react': 19.2.14
|
||||||
|
|
||||||
'@mui/material@7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
'@mui/material@9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.29.2
|
'@babel/runtime': 7.29.2
|
||||||
'@mui/core-downloads-tracker': 7.3.10
|
'@mui/core-downloads-tracker': 9.0.0
|
||||||
'@mui/system': 7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
'@mui/system': 9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
||||||
'@mui/types': 7.4.12(@types/react@19.2.14)
|
'@mui/types': 9.0.0(@types/react@19.2.14)
|
||||||
'@mui/utils': 7.3.10(@types/react@19.2.14)(react@19.2.5)
|
'@mui/utils': 9.0.0(@types/react@19.2.14)(react@19.2.5)
|
||||||
'@popperjs/core': 2.11.8
|
'@popperjs/core': 2.11.8
|
||||||
'@types/react-transition-group': 4.4.12(@types/react@19.2.14)
|
'@types/react-transition-group': 4.4.12(@types/react@19.2.14)
|
||||||
clsx: 2.1.1
|
clsx: 2.1.1
|
||||||
@ -4671,16 +4671,16 @@ snapshots:
|
|||||||
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
||||||
'@types/react': 19.2.14
|
'@types/react': 19.2.14
|
||||||
|
|
||||||
'@mui/private-theming@7.3.10(@types/react@19.2.14)(react@19.2.5)':
|
'@mui/private-theming@9.0.0(@types/react@19.2.14)(react@19.2.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.29.2
|
'@babel/runtime': 7.29.2
|
||||||
'@mui/utils': 7.3.10(@types/react@19.2.14)(react@19.2.5)
|
'@mui/utils': 9.0.0(@types/react@19.2.14)(react@19.2.5)
|
||||||
prop-types: 15.8.1
|
prop-types: 15.8.1
|
||||||
react: 19.2.5
|
react: 19.2.5
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 19.2.14
|
'@types/react': 19.2.14
|
||||||
|
|
||||||
'@mui/styled-engine@7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)':
|
'@mui/styled-engine@9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.29.2
|
'@babel/runtime': 7.29.2
|
||||||
'@emotion/cache': 11.14.0
|
'@emotion/cache': 11.14.0
|
||||||
@ -4693,13 +4693,13 @@ snapshots:
|
|||||||
'@emotion/react': 11.14.0(@types/react@19.2.14)(react@19.2.5)
|
'@emotion/react': 11.14.0(@types/react@19.2.14)(react@19.2.5)
|
||||||
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
||||||
|
|
||||||
'@mui/system@7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)':
|
'@mui/system@9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.29.2
|
'@babel/runtime': 7.29.2
|
||||||
'@mui/private-theming': 7.3.10(@types/react@19.2.14)(react@19.2.5)
|
'@mui/private-theming': 9.0.0(@types/react@19.2.14)(react@19.2.5)
|
||||||
'@mui/styled-engine': 7.3.10(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)
|
'@mui/styled-engine': 9.0.0(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5))(react@19.2.5)
|
||||||
'@mui/types': 7.4.12(@types/react@19.2.14)
|
'@mui/types': 9.0.0(@types/react@19.2.14)
|
||||||
'@mui/utils': 7.3.10(@types/react@19.2.14)(react@19.2.5)
|
'@mui/utils': 9.0.0(@types/react@19.2.14)(react@19.2.5)
|
||||||
clsx: 2.1.1
|
clsx: 2.1.1
|
||||||
csstype: 3.2.3
|
csstype: 3.2.3
|
||||||
prop-types: 15.8.1
|
prop-types: 15.8.1
|
||||||
@ -4709,16 +4709,16 @@ snapshots:
|
|||||||
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.5))(@types/react@19.2.14)(react@19.2.5)
|
||||||
'@types/react': 19.2.14
|
'@types/react': 19.2.14
|
||||||
|
|
||||||
'@mui/types@7.4.12(@types/react@19.2.14)':
|
'@mui/types@9.0.0(@types/react@19.2.14)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.29.2
|
'@babel/runtime': 7.29.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 19.2.14
|
'@types/react': 19.2.14
|
||||||
|
|
||||||
'@mui/utils@7.3.10(@types/react@19.2.14)(react@19.2.5)':
|
'@mui/utils@9.0.0(@types/react@19.2.14)(react@19.2.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.29.2
|
'@babel/runtime': 7.29.2
|
||||||
'@mui/types': 7.4.12(@types/react@19.2.14)
|
'@mui/types': 9.0.0(@types/react@19.2.14)
|
||||||
'@types/prop-types': 15.7.15
|
'@types/prop-types': 15.7.15
|
||||||
clsx: 2.1.1
|
clsx: 2.1.1
|
||||||
prop-types: 15.8.1
|
prop-types: 15.8.1
|
||||||
|
|||||||
@ -205,7 +205,7 @@ export const BaseSearchBox = ({
|
|||||||
input: {
|
input: {
|
||||||
sx: { pr: 1 },
|
sx: { pr: 1 },
|
||||||
endAdornment: (
|
endAdornment: (
|
||||||
<Box display="flex">
|
<Box sx={{ display: 'flex' }}>
|
||||||
{!!text && (
|
{!!text && (
|
||||||
<Tooltip title={t('shared.placeholders.resetInput')}>
|
<Tooltip title={t('shared.placeholders.resetInput')}>
|
||||||
<IconButton
|
<IconButton
|
||||||
|
|||||||
@ -30,47 +30,47 @@ export const ClashInfoCard = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Stack spacing={1.5}>
|
<Stack spacing={1.5}>
|
||||||
<Stack direction="row" justifyContent="space-between">
|
<Stack direction="row" sx={{ justifyContent: 'space-between' }}>
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('home.components.clashInfo.fields.coreVersion')}
|
{t('home.components.clashInfo.fields.coreVersion')}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="body2" fontWeight="medium">
|
<Typography variant="body2" sx={{ fontWeight: 'medium' }}>
|
||||||
{clashVersion || '-'}
|
{clashVersion || '-'}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
<Divider />
|
<Divider />
|
||||||
<Stack direction="row" justifyContent="space-between">
|
<Stack direction="row" sx={{ justifyContent: 'space-between' }}>
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('home.components.clashInfo.fields.systemProxyAddress')}
|
{t('home.components.clashInfo.fields.systemProxyAddress')}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="body2" fontWeight="medium">
|
<Typography variant="body2" sx={{ fontWeight: 'medium' }}>
|
||||||
{systemProxyAddress}
|
{systemProxyAddress}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
<Divider />
|
<Divider />
|
||||||
<Stack direction="row" justifyContent="space-between">
|
<Stack direction="row" sx={{ justifyContent: 'space-between' }}>
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('home.components.clashInfo.fields.mixedPort')}
|
{t('home.components.clashInfo.fields.mixedPort')}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="body2" fontWeight="medium">
|
<Typography variant="body2" sx={{ fontWeight: 'medium' }}>
|
||||||
{clashConfig.mixedPort || '-'}
|
{clashConfig.mixedPort || '-'}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
<Divider />
|
<Divider />
|
||||||
<Stack direction="row" justifyContent="space-between">
|
<Stack direction="row" sx={{ justifyContent: 'space-between' }}>
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('home.components.clashInfo.fields.uptime')}
|
{t('home.components.clashInfo.fields.uptime')}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="body2" fontWeight="medium">
|
<Typography variant="body2" sx={{ fontWeight: 'medium' }}>
|
||||||
{formattedUptime}
|
{formattedUptime}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
<Divider />
|
<Divider />
|
||||||
<Stack direction="row" justifyContent="space-between">
|
<Stack direction="row" sx={{ justifyContent: 'space-between' }}>
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('home.components.clashInfo.fields.rulesCount')}
|
{t('home.components.clashInfo.fields.rulesCount')}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="body2" fontWeight="medium">
|
<Typography variant="body2" sx={{ fontWeight: 'medium' }}>
|
||||||
{rules.length}
|
{rules.length}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
|
|||||||
@ -930,7 +930,7 @@ export const CurrentProxyCard = () => {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Box>
|
<Box>
|
||||||
<Typography variant="body1" fontWeight="medium">
|
<Typography variant="body1" sx={{ fontWeight: 'medium' }}>
|
||||||
{currentProxy.name}
|
{currentProxy.name}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|
||||||
@ -1026,9 +1026,11 @@ export const CurrentProxyCard = () => {
|
|||||||
disabled={isDirectMode}
|
disabled={isDirectMode}
|
||||||
renderValue={renderProxyValue}
|
renderValue={renderProxyValue}
|
||||||
MenuProps={{
|
MenuProps={{
|
||||||
PaperProps: {
|
slotProps: {
|
||||||
style: {
|
paper: {
|
||||||
maxHeight: 500,
|
style: {
|
||||||
|
maxHeight: 500,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
|
|||||||
@ -1245,13 +1245,13 @@ export const EnhancedCanvasTrafficGraph = memo(
|
|||||||
whiteSpace: 'nowrap',
|
whiteSpace: 'nowrap',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Box color="text.secondary" mb={0.2}>
|
<Box sx={{ color: 'text.secondary', mb: 0.2 }}>
|
||||||
{tooltipData.timestamp}
|
{tooltipData.timestamp}
|
||||||
</Box>
|
</Box>
|
||||||
<Box color="secondary.main" fontWeight="500">
|
<Box sx={{ color: 'secondary.main', fontWeight: 500 }}>
|
||||||
↑ {tooltipData.upSpeed}
|
↑ {tooltipData.upSpeed}
|
||||||
</Box>
|
</Box>
|
||||||
<Box color="primary.main" fontWeight="500">
|
<Box sx={{ color: 'primary.main', fontWeight: 500 }}>
|
||||||
↓ {tooltipData.downSpeed}
|
↓ {tooltipData.downSpeed}
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@ -90,9 +90,11 @@ export const EnhancedCard = forwardRef<HTMLElement, EnhancedCardProps>(
|
|||||||
{typeof title === 'string' ? (
|
{typeof title === 'string' ? (
|
||||||
<Typography
|
<Typography
|
||||||
variant="h6"
|
variant="h6"
|
||||||
fontWeight="medium"
|
sx={{
|
||||||
fontSize={18}
|
...titleTruncateStyle,
|
||||||
sx={titleTruncateStyle}
|
fontWeight: 'medium',
|
||||||
|
fontSize: 18,
|
||||||
|
}}
|
||||||
title={title}
|
title={title}
|
||||||
>
|
>
|
||||||
{title}
|
{title}
|
||||||
|
|||||||
@ -120,9 +120,8 @@ const CompactStatCard = memo(
|
|||||||
>
|
>
|
||||||
<Typography
|
<Typography
|
||||||
variant="body1"
|
variant="body1"
|
||||||
fontWeight="bold"
|
|
||||||
noWrap
|
noWrap
|
||||||
sx={{ mr: 0.5 }}
|
sx={{ mr: 0.5, fontWeight: 'bold' }}
|
||||||
>
|
>
|
||||||
{value}
|
{value}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|||||||
@ -103,7 +103,7 @@ const ProfileDetails = ({
|
|||||||
<Box>
|
<Box>
|
||||||
<Stack spacing={2}>
|
<Stack spacing={2}>
|
||||||
{current.url && (
|
{current.url && (
|
||||||
<Stack direction="row" alignItems="center" spacing={1}>
|
<Stack direction="row" spacing={1} sx={{ alignItems: 'center' }}>
|
||||||
<DnsOutlined fontSize="small" color="action" />
|
<DnsOutlined fontSize="small" color="action" />
|
||||||
<Typography
|
<Typography
|
||||||
variant="body2"
|
variant="body2"
|
||||||
@ -115,7 +115,6 @@ const ProfileDetails = ({
|
|||||||
{current.home ? (
|
{current.home ? (
|
||||||
<Link
|
<Link
|
||||||
component="button"
|
component="button"
|
||||||
fontWeight="medium"
|
|
||||||
onClick={() => current.home && openWebUrl(current.home)}
|
onClick={() => current.home && openWebUrl(current.home)}
|
||||||
sx={{
|
sx={{
|
||||||
display: 'inline-flex',
|
display: 'inline-flex',
|
||||||
@ -123,6 +122,7 @@ const ProfileDetails = ({
|
|||||||
minWidth: 0,
|
minWidth: 0,
|
||||||
maxWidth: 'calc(100% - 40px)',
|
maxWidth: 'calc(100% - 40px)',
|
||||||
ml: 0.5,
|
ml: 0.5,
|
||||||
|
fontWeight: 'medium',
|
||||||
}}
|
}}
|
||||||
title={parseUrl(current.url)}
|
title={parseUrl(current.url)}
|
||||||
>
|
>
|
||||||
@ -151,7 +151,6 @@ const ProfileDetails = ({
|
|||||||
) : (
|
) : (
|
||||||
<Typography
|
<Typography
|
||||||
component="span"
|
component="span"
|
||||||
fontWeight="medium"
|
|
||||||
sx={{
|
sx={{
|
||||||
overflow: 'hidden',
|
overflow: 'hidden',
|
||||||
textOverflow: 'ellipsis',
|
textOverflow: 'ellipsis',
|
||||||
@ -159,6 +158,7 @@ const ProfileDetails = ({
|
|||||||
minWidth: 0,
|
minWidth: 0,
|
||||||
flex: 1,
|
flex: 1,
|
||||||
ml: 0.5,
|
ml: 0.5,
|
||||||
|
fontWeight: 'medium',
|
||||||
}}
|
}}
|
||||||
title={parseUrl(current.url)}
|
title={parseUrl(current.url)}
|
||||||
>
|
>
|
||||||
@ -170,7 +170,7 @@ const ProfileDetails = ({
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
{current.updated && (
|
{current.updated && (
|
||||||
<Stack direction="row" alignItems="center" spacing={1}>
|
<Stack direction="row" spacing={1} sx={{ alignItems: 'center' }}>
|
||||||
<UpdateOutlined
|
<UpdateOutlined
|
||||||
fontSize="small"
|
fontSize="small"
|
||||||
color="action"
|
color="action"
|
||||||
@ -187,7 +187,7 @@ const ProfileDetails = ({
|
|||||||
onClick={onUpdateProfile}
|
onClick={onUpdateProfile}
|
||||||
>
|
>
|
||||||
{t('shared.labels.updateTime')}:{' '}
|
{t('shared.labels.updateTime')}:{' '}
|
||||||
<Box component="span" fontWeight="medium">
|
<Box component="span" sx={{ fontWeight: 'medium' }}>
|
||||||
{dayjs(current.updated * 1000).format('YYYY-MM-DD HH:mm')}
|
{dayjs(current.updated * 1000).format('YYYY-MM-DD HH:mm')}
|
||||||
</Box>
|
</Box>
|
||||||
</Typography>
|
</Typography>
|
||||||
@ -196,11 +196,11 @@ const ProfileDetails = ({
|
|||||||
|
|
||||||
{current.extra && (
|
{current.extra && (
|
||||||
<>
|
<>
|
||||||
<Stack direction="row" alignItems="center" spacing={1}>
|
<Stack direction="row" spacing={1} sx={{ alignItems: 'center' }}>
|
||||||
<SpeedOutlined fontSize="small" color="action" />
|
<SpeedOutlined fontSize="small" color="action" />
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('shared.labels.usedTotal')}:{' '}
|
{t('shared.labels.usedTotal')}:{' '}
|
||||||
<Box component="span" fontWeight="medium">
|
<Box component="span" sx={{ fontWeight: 'medium' }}>
|
||||||
{parseTraffic(usedTraffic)} /{' '}
|
{parseTraffic(usedTraffic)} /{' '}
|
||||||
{parseTraffic(current.extra.total)}
|
{parseTraffic(current.extra.total)}
|
||||||
</Box>
|
</Box>
|
||||||
@ -208,11 +208,11 @@ const ProfileDetails = ({
|
|||||||
</Stack>
|
</Stack>
|
||||||
|
|
||||||
{current.extra.expire > 0 && (
|
{current.extra.expire > 0 && (
|
||||||
<Stack direction="row" alignItems="center" spacing={1}>
|
<Stack direction="row" spacing={1} sx={{ alignItems: 'center' }}>
|
||||||
<EventOutlined fontSize="small" color="action" />
|
<EventOutlined fontSize="small" color="action" />
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('shared.labels.expireTime')}:{' '}
|
{t('shared.labels.expireTime')}:{' '}
|
||||||
<Box component="span" fontWeight="medium">
|
<Box component="span" sx={{ fontWeight: 'medium' }}>
|
||||||
{parseExpire(current.extra.expire)}
|
{parseExpire(current.extra.expire)}
|
||||||
</Box>
|
</Box>
|
||||||
</Typography>
|
</Typography>
|
||||||
@ -318,8 +318,6 @@ export const HomeProfileCard = ({
|
|||||||
<Link
|
<Link
|
||||||
component="button"
|
component="button"
|
||||||
variant="h6"
|
variant="h6"
|
||||||
fontWeight="medium"
|
|
||||||
fontSize={18}
|
|
||||||
onClick={() => current.home && openWebUrl(current.home)}
|
onClick={() => current.home && openWebUrl(current.home)}
|
||||||
sx={{
|
sx={{
|
||||||
color: 'inherit',
|
color: 'inherit',
|
||||||
@ -328,6 +326,8 @@ export const HomeProfileCard = ({
|
|||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
minWidth: 0,
|
minWidth: 0,
|
||||||
maxWidth: '100%',
|
maxWidth: '100%',
|
||||||
|
fontWeight: 'medium',
|
||||||
|
fontSize: 18,
|
||||||
'& > span': {
|
'& > span': {
|
||||||
overflow: 'hidden',
|
overflow: 'hidden',
|
||||||
textOverflow: 'ellipsis',
|
textOverflow: 'ellipsis',
|
||||||
|
|||||||
@ -215,24 +215,23 @@ export const SystemInfoCard = () => {
|
|||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Stack spacing={1.5}>
|
<Stack spacing={1.5}>
|
||||||
<Stack direction="row" justifyContent="space-between">
|
<Stack direction="row" sx={{ justifyContent: 'space-between' }}>
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('home.components.systemInfo.fields.osInfo')}
|
{t('home.components.systemInfo.fields.osInfo')}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="body2" fontWeight="medium">
|
<Typography variant="body2" sx={{ fontWeight: 'medium' }}>
|
||||||
{osInfo}
|
{osInfo}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
<Divider />
|
<Divider />
|
||||||
<Stack
|
<Stack
|
||||||
direction="row"
|
direction="row"
|
||||||
justifyContent="space-between"
|
sx={{ justifyContent: 'space-between', alignItems: 'center' }}
|
||||||
alignItems="center"
|
|
||||||
>
|
>
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('home.components.systemInfo.fields.autoLaunch')}
|
{t('home.components.systemInfo.fields.autoLaunch')}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Stack direction="row" spacing={1} alignItems="center">
|
<Stack direction="row" spacing={1} sx={{ alignItems: 'center' }}>
|
||||||
<Chip
|
<Chip
|
||||||
size="small"
|
size="small"
|
||||||
label={
|
label={
|
||||||
@ -250,34 +249,32 @@ export const SystemInfoCard = () => {
|
|||||||
<Divider />
|
<Divider />
|
||||||
<Stack
|
<Stack
|
||||||
direction="row"
|
direction="row"
|
||||||
justifyContent="space-between"
|
sx={{ justifyContent: 'space-between', alignItems: 'center' }}
|
||||||
alignItems="center"
|
|
||||||
>
|
>
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('home.components.systemInfo.fields.runningMode')}
|
{t('home.components.systemInfo.fields.runningMode')}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography
|
<Typography
|
||||||
variant="body2"
|
variant="body2"
|
||||||
fontWeight="medium"
|
|
||||||
onClick={handleRunningModeClick}
|
onClick={handleRunningModeClick}
|
||||||
sx={runningModeStyle}
|
sx={{ ...runningModeStyle, fontWeight: 'medium' }}
|
||||||
>
|
>
|
||||||
{getModeIcon()}
|
{getModeIcon()}
|
||||||
{getModeText()}
|
{getModeText()}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
<Divider />
|
<Divider />
|
||||||
<Stack direction="row" justifyContent="space-between">
|
<Stack direction="row" sx={{ justifyContent: 'space-between' }}>
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('home.components.systemInfo.fields.lastCheckUpdate')}
|
{t('home.components.systemInfo.fields.lastCheckUpdate')}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography
|
<Typography
|
||||||
variant="body2"
|
variant="body2"
|
||||||
fontWeight="medium"
|
|
||||||
onClick={onCheckUpdate}
|
onClick={onCheckUpdate}
|
||||||
sx={{
|
sx={{
|
||||||
cursor: 'pointer',
|
cursor: 'pointer',
|
||||||
textDecoration: 'underline',
|
textDecoration: 'underline',
|
||||||
|
fontWeight: 'medium',
|
||||||
'&:hover': { opacity: 0.7 },
|
'&:hover': { opacity: 0.7 },
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@ -285,11 +282,11 @@ export const SystemInfoCard = () => {
|
|||||||
</Typography>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
<Divider />
|
<Divider />
|
||||||
<Stack direction="row" justifyContent="space-between">
|
<Stack direction="row" sx={{ justifyContent: 'space-between' }}>
|
||||||
<Typography variant="body2" color="text.secondary">
|
<Typography variant="body2" color="text.secondary">
|
||||||
{t('home.components.systemInfo.fields.vergeVersion')}
|
{t('home.components.systemInfo.fields.vergeVersion')}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="body2" fontWeight="medium">
|
<Typography variant="body2" sx={{ fontWeight: 'medium' }}>
|
||||||
v{appVersion}
|
v{appVersion}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
|
|||||||
@ -53,29 +53,33 @@ export const LayoutTraffic = () => {
|
|||||||
const [inuse, inuseUnit] = parseTraffic(memory?.inuse || 0)
|
const [inuse, inuseUnit] = parseTraffic(memory?.inuse || 0)
|
||||||
|
|
||||||
const boxStyle: any = {
|
const boxStyle: any = {
|
||||||
display: 'flex',
|
sx: {
|
||||||
alignItems: 'center',
|
display: 'flex',
|
||||||
whiteSpace: 'nowrap',
|
alignItems: 'center',
|
||||||
|
whiteSpace: 'nowrap',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
const iconStyle: any = {
|
const iconStyle: any = {
|
||||||
sx: { mr: '8px', fontSize: 16 },
|
sx: { mr: '8px', fontSize: 16 },
|
||||||
}
|
}
|
||||||
const valStyle: any = {
|
const valStyle: any = {
|
||||||
component: 'span',
|
component: 'span',
|
||||||
textAlign: 'center',
|
sx: { flex: '1 1 56px', userSelect: 'none', textAlign: 'center' },
|
||||||
sx: { flex: '1 1 56px', userSelect: 'none' },
|
|
||||||
}
|
}
|
||||||
const unitStyle: any = {
|
const unitStyle: any = {
|
||||||
component: 'span',
|
component: 'span',
|
||||||
color: 'grey.500',
|
color: 'grey.500',
|
||||||
fontSize: '12px',
|
sx: {
|
||||||
textAlign: 'right',
|
flex: '0 1 27px',
|
||||||
sx: { flex: '0 1 27px', userSelect: 'none' },
|
userSelect: 'none',
|
||||||
|
fontSize: '12px',
|
||||||
|
textAlign: 'right',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<LightweightTrafficErrorBoundary>
|
<LightweightTrafficErrorBoundary>
|
||||||
<Box position="relative">
|
<Box sx={{ position: 'relative' }}>
|
||||||
{trafficGraph && pageVisible && (
|
{trafficGraph && pageVisible && (
|
||||||
<div
|
<div
|
||||||
style={{ width: '100%', height: 60, marginBottom: 6 }}
|
style={{ width: '100%', height: 60, marginBottom: 6 }}
|
||||||
@ -85,7 +89,7 @@ export const LayoutTraffic = () => {
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<Box display="flex" flexDirection="column" gap={0.75}>
|
<Box sx={{ display: 'flex', flexDirection: 'column', gap: 0.75 }}>
|
||||||
<Box
|
<Box
|
||||||
title={`${t('home.components.traffic.metrics.uploadSpeed')}`}
|
title={`${t('home.components.traffic.metrics.uploadSpeed')}`}
|
||||||
{...boxStyle}
|
{...boxStyle}
|
||||||
|
|||||||
@ -528,7 +528,7 @@ export const GroupsEditorViewer = (props: Props) => {
|
|||||||
>
|
>
|
||||||
<DialogTitle>
|
<DialogTitle>
|
||||||
{
|
{
|
||||||
<Box display="flex" justifyContent="space-between">
|
<Box sx={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
{t('profiles.modals.groupsEditor.title')}
|
{t('profiles.modals.groupsEditor.title')}
|
||||||
<Box>
|
<Box>
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@ -690,7 +690,7 @@ export const ProfileItem = (props: Props) => {
|
|||||||
/>
|
/>
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
<Box position="relative">
|
<Box sx={{ position: 'relative' }}>
|
||||||
<Box sx={{ display: 'flex', justifyContent: 'start' }}>
|
<Box sx={{ display: 'flex', justifyContent: 'start' }}>
|
||||||
{batchMode && (
|
{batchMode && (
|
||||||
<IconButton
|
<IconButton
|
||||||
@ -731,8 +731,12 @@ export const ProfileItem = (props: Props) => {
|
|||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Typography
|
<Typography
|
||||||
width={batchMode ? 'calc(100% - 56px)' : 'calc(100% - 36px)'}
|
sx={{
|
||||||
sx={{ fontSize: '18px', fontWeight: '600', lineHeight: '26px' }}
|
width: batchMode ? 'calc(100% - 56px)' : 'calc(100% - 36px)',
|
||||||
|
fontSize: '18px',
|
||||||
|
fontWeight: '600',
|
||||||
|
lineHeight: '26px',
|
||||||
|
}}
|
||||||
variant="h6"
|
variant="h6"
|
||||||
component="h2"
|
component="h2"
|
||||||
noWrap
|
noWrap
|
||||||
@ -802,14 +806,14 @@ export const ProfileItem = (props: Props) => {
|
|||||||
<Typography
|
<Typography
|
||||||
noWrap
|
noWrap
|
||||||
component="span"
|
component="span"
|
||||||
fontSize={14}
|
|
||||||
textAlign="right"
|
|
||||||
title={
|
title={
|
||||||
showNextUpdate
|
showNextUpdate
|
||||||
? t('profiles.components.profileItem.tooltips.showLast')
|
? t('profiles.components.profileItem.tooltips.showLast')
|
||||||
: `${t('shared.labels.updateTime')}: ${parseExpire(updated)}\n${t('profiles.components.profileItem.tooltips.showNext')}`
|
: `${t('shared.labels.updateTime')}: ${parseExpire(updated)}\n${t('profiles.components.profileItem.tooltips.showNext')}`
|
||||||
}
|
}
|
||||||
sx={{
|
sx={{
|
||||||
|
fontSize: 14,
|
||||||
|
textAlign: 'right',
|
||||||
cursor: 'pointer',
|
cursor: 'pointer',
|
||||||
display: 'inline-block',
|
display: 'inline-block',
|
||||||
borderBottom: '1px dashed transparent',
|
borderBottom: '1px dashed transparent',
|
||||||
@ -861,7 +865,7 @@ export const ProfileItem = (props: Props) => {
|
|||||||
anchorPosition={position}
|
anchorPosition={position}
|
||||||
anchorReference="anchorPosition"
|
anchorReference="anchorPosition"
|
||||||
transitionDuration={225}
|
transitionDuration={225}
|
||||||
MenuListProps={{ sx: { py: 0.5 } }}
|
slotProps={{ list: { sx: { py: 0.5 } } }}
|
||||||
onContextMenu={(e) => {
|
onContextMenu={(e) => {
|
||||||
setAnchorEl(null)
|
setAnchorEl(null)
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
|||||||
@ -103,17 +103,19 @@ export const ProfileMore = (props: Props) => {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Box
|
<Box
|
||||||
display="flex"
|
sx={{
|
||||||
justifyContent="space-between"
|
display: 'flex',
|
||||||
alignItems="center"
|
justifyContent: 'space-between',
|
||||||
mb={0.5}
|
alignItems: 'center',
|
||||||
|
mb: 0.5,
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Typography
|
<Typography
|
||||||
width="calc(100% - 52px)"
|
|
||||||
variant="h6"
|
variant="h6"
|
||||||
component="h2"
|
component="h2"
|
||||||
noWrap
|
noWrap
|
||||||
title={t(globalTitles[id])}
|
title={t(globalTitles[id])}
|
||||||
|
sx={{ width: 'calc(100% - 52px)' }}
|
||||||
>
|
>
|
||||||
{t(globalTitles[id])}
|
{t(globalTitles[id])}
|
||||||
</Typography>
|
</Typography>
|
||||||
@ -162,7 +164,7 @@ export const ProfileMore = (props: Props) => {
|
|||||||
anchorPosition={position}
|
anchorPosition={position}
|
||||||
anchorReference="anchorPosition"
|
anchorReference="anchorPosition"
|
||||||
transitionDuration={225}
|
transitionDuration={225}
|
||||||
MenuListProps={{ sx: { py: 0.5 } }}
|
slotProps={{ list: { sx: { py: 0.5 } } }}
|
||||||
onContextMenu={(e) => {
|
onContextMenu={(e) => {
|
||||||
setAnchorEl(null)
|
setAnchorEl(null)
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
|||||||
@ -374,7 +374,7 @@ export const ProxiesEditorViewer = (props: Props) => {
|
|||||||
>
|
>
|
||||||
<DialogTitle>
|
<DialogTitle>
|
||||||
{
|
{
|
||||||
<Box display="flex" justifyContent="space-between">
|
<Box sx={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
{t('profiles.modals.proxiesEditor.title')}
|
{t('profiles.modals.proxiesEditor.title')}
|
||||||
<Box>
|
<Box>
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@ -584,7 +584,7 @@ export const RulesEditorViewer = (props: Props) => {
|
|||||||
>
|
>
|
||||||
<DialogTitle>
|
<DialogTitle>
|
||||||
{
|
{
|
||||||
<Box display="flex" justifyContent="space-between">
|
<Box sx={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
{t('rules.modals.editor.title')}
|
{t('rules.modals.editor.title')}
|
||||||
<Box>
|
<Box>
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@ -151,9 +151,11 @@ export const ProviderButton = () => {
|
|||||||
<Dialog open={open} onClose={handleClose} maxWidth="sm" fullWidth>
|
<Dialog open={open} onClose={handleClose} maxWidth="sm" fullWidth>
|
||||||
<DialogTitle>
|
<DialogTitle>
|
||||||
<Box
|
<Box
|
||||||
display="flex"
|
sx={{
|
||||||
justifyContent="space-between"
|
display: 'flex',
|
||||||
alignItems="center"
|
justifyContent: 'space-between',
|
||||||
|
alignItems: 'center',
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Typography variant="h6">
|
<Typography variant="h6">
|
||||||
{t('proxies.page.provider.title')}
|
{t('proxies.page.provider.title')}
|
||||||
|
|||||||
@ -142,9 +142,11 @@ export const ProviderButton = () => {
|
|||||||
<Dialog open={open} onClose={handleClose} maxWidth="sm" fullWidth>
|
<Dialog open={open} onClose={handleClose} maxWidth="sm" fullWidth>
|
||||||
<DialogTitle>
|
<DialogTitle>
|
||||||
<Box
|
<Box
|
||||||
display="flex"
|
sx={{
|
||||||
justifyContent="space-between"
|
display: 'flex',
|
||||||
alignItems="center"
|
justifyContent: 'space-between',
|
||||||
|
alignItems: 'center',
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Typography variant="h6">
|
<Typography variant="h6">
|
||||||
{t('rules.page.provider.dialogTitle')}
|
{t('rules.page.provider.dialogTitle')}
|
||||||
|
|||||||
@ -134,7 +134,11 @@ export function AutoBackupSettings() {
|
|||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<ListItem divider disableGutters>
|
<ListItem divider disableGutters>
|
||||||
<Stack direction="row" alignItems="center" spacing={1} width="100%">
|
<Stack
|
||||||
|
direction="row"
|
||||||
|
spacing={1}
|
||||||
|
sx={{ alignItems: 'center', width: '100%' }}
|
||||||
|
>
|
||||||
<ListItemText
|
<ListItemText
|
||||||
primary={t('settings.modals.backup.auto.scheduleLabel')}
|
primary={t('settings.modals.backup.auto.scheduleLabel')}
|
||||||
secondary={t('settings.modals.backup.auto.scheduleHelper')}
|
secondary={t('settings.modals.backup.auto.scheduleHelper')}
|
||||||
@ -149,7 +153,11 @@ export function AutoBackupSettings() {
|
|||||||
</ListItem>
|
</ListItem>
|
||||||
|
|
||||||
<ListItem divider disableGutters>
|
<ListItem divider disableGutters>
|
||||||
<Stack direction="row" alignItems="center" spacing={2} width="100%">
|
<Stack
|
||||||
|
direction="row"
|
||||||
|
spacing={2}
|
||||||
|
sx={{ alignItems: 'center', width: '100%' }}
|
||||||
|
>
|
||||||
<ListItemText
|
<ListItemText
|
||||||
primary={t('settings.modals.backup.auto.intervalLabel')}
|
primary={t('settings.modals.backup.auto.intervalLabel')}
|
||||||
/>
|
/>
|
||||||
@ -187,7 +195,11 @@ export function AutoBackupSettings() {
|
|||||||
</ListItem>
|
</ListItem>
|
||||||
|
|
||||||
<ListItem divider disableGutters>
|
<ListItem divider disableGutters>
|
||||||
<Stack direction="row" alignItems="center" spacing={1} width="100%">
|
<Stack
|
||||||
|
direction="row"
|
||||||
|
spacing={1}
|
||||||
|
sx={{ alignItems: 'center', width: '100%' }}
|
||||||
|
>
|
||||||
<ListItemText
|
<ListItemText
|
||||||
primary={t('settings.modals.backup.auto.changeLabel')}
|
primary={t('settings.modals.backup.auto.changeLabel')}
|
||||||
secondary={t('settings.modals.backup.auto.changeHelper')}
|
secondary={t('settings.modals.backup.auto.changeHelper')}
|
||||||
|
|||||||
@ -234,9 +234,11 @@ export const BackupConfigViewer = memo(
|
|||||||
<Grid size={{ xs: 12, sm: 3 }}>
|
<Grid size={{ xs: 12, sm: 3 }}>
|
||||||
<Stack
|
<Stack
|
||||||
direction="column"
|
direction="column"
|
||||||
justifyContent="space-between"
|
sx={{
|
||||||
alignItems="stretch"
|
justifyContent: 'space-between',
|
||||||
sx={{ height: '100%' }}
|
alignItems: 'stretch',
|
||||||
|
height: '100%',
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
{webdavChanged ||
|
{webdavChanged ||
|
||||||
webdav_url === undefined ||
|
webdav_url === undefined ||
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import DeleteOutline from '@mui/icons-material/DeleteOutline'
|
import DeleteOutlined from '@mui/icons-material/DeleteOutlined'
|
||||||
import DownloadRounded from '@mui/icons-material/DownloadRounded'
|
import DownloadRounded from '@mui/icons-material/DownloadRounded'
|
||||||
import RefreshRounded from '@mui/icons-material/RefreshRounded'
|
import RefreshRounded from '@mui/icons-material/RefreshRounded'
|
||||||
import RestoreRounded from '@mui/icons-material/RestoreRounded'
|
import RestoreRounded from '@mui/icons-material/RestoreRounded'
|
||||||
@ -282,8 +282,7 @@ export const BackupHistoryViewer = ({
|
|||||||
<Stack spacing={2}>
|
<Stack spacing={2}>
|
||||||
<Stack
|
<Stack
|
||||||
direction="row"
|
direction="row"
|
||||||
alignItems="center"
|
sx={{ alignItems: 'center', justifyContent: 'space-between' }}
|
||||||
justifyContent="space-between"
|
|
||||||
>
|
>
|
||||||
<Tabs
|
<Tabs
|
||||||
value={source}
|
value={source}
|
||||||
@ -345,9 +344,11 @@ export const BackupHistoryViewer = ({
|
|||||||
secondary={
|
secondary={
|
||||||
<Stack
|
<Stack
|
||||||
direction="row"
|
direction="row"
|
||||||
alignItems="center"
|
|
||||||
justifyContent="space-between"
|
|
||||||
spacing={1.5}
|
spacing={1.5}
|
||||||
|
sx={{
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Typography variant="caption" color="text.secondary">
|
<Typography variant="caption" color="text.secondary">
|
||||||
{`${row.platform} · ${row.display_time}`}
|
{`${row.platform} · ${row.display_time}`}
|
||||||
@ -355,7 +356,7 @@ export const BackupHistoryViewer = ({
|
|||||||
<Stack
|
<Stack
|
||||||
direction="row"
|
direction="row"
|
||||||
spacing={0.5}
|
spacing={0.5}
|
||||||
alignItems="center"
|
sx={{ alignItems: 'center' }}
|
||||||
>
|
>
|
||||||
{isLocal && (
|
{isLocal && (
|
||||||
<IconButton
|
<IconButton
|
||||||
@ -371,7 +372,7 @@ export const BackupHistoryViewer = ({
|
|||||||
disabled={isBusy}
|
disabled={isBusy}
|
||||||
onClick={() => handleDelete(row.filename)}
|
onClick={() => handleDelete(row.filename)}
|
||||||
>
|
>
|
||||||
<DeleteOutline fontSize="small" />
|
<DeleteOutlined fontSize="small" />
|
||||||
</IconButton>
|
</IconButton>
|
||||||
<IconButton
|
<IconButton
|
||||||
size="small"
|
size="small"
|
||||||
@ -393,8 +394,7 @@ export const BackupHistoryViewer = ({
|
|||||||
<Stack
|
<Stack
|
||||||
direction="row"
|
direction="row"
|
||||||
spacing={1}
|
spacing={1}
|
||||||
justifyContent="flex-end"
|
sx={{ justifyContent: 'flex-end', alignItems: 'center' }}
|
||||||
alignItems="center"
|
|
||||||
>
|
>
|
||||||
<Typography variant="caption">
|
<Typography variant="caption">
|
||||||
{currentPage + 1} / {pageCount}
|
{currentPage + 1} / {pageCount}
|
||||||
|
|||||||
@ -237,8 +237,7 @@ export function BackupViewer({ ref }: { ref?: Ref<DialogRef> }) {
|
|||||||
direction="row"
|
direction="row"
|
||||||
spacing={1}
|
spacing={1}
|
||||||
useFlexGap
|
useFlexGap
|
||||||
flexWrap="wrap"
|
sx={{ flexWrap: 'wrap', alignItems: 'center' }}
|
||||||
alignItems="center"
|
|
||||||
>
|
>
|
||||||
{item.actions}
|
{item.actions}
|
||||||
</Stack>
|
</Stack>
|
||||||
|
|||||||
@ -117,7 +117,7 @@ export function ClashCoreViewer({ ref }: { ref?: Ref<DialogRef> }) {
|
|||||||
<BaseDialog
|
<BaseDialog
|
||||||
open={open}
|
open={open}
|
||||||
title={
|
title={
|
||||||
<Box display="flex" justifyContent="space-between">
|
<Box sx={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
{t('settings.sections.clash.form.fields.clashCore')}
|
{t('settings.sections.clash.form.fields.clashCore')}
|
||||||
<Box>
|
<Box>
|
||||||
<LoadingButton
|
<LoadingButton
|
||||||
|
|||||||
@ -221,7 +221,7 @@ export const ClashPortViewer = forwardRef<ClashPortViewerRef>((_, ref) => {
|
|||||||
}}
|
}}
|
||||||
okBtn={
|
okBtn={
|
||||||
loading ? (
|
loading ? (
|
||||||
<Stack direction="row" alignItems="center" spacing={1}>
|
<Stack direction="row" spacing={1} sx={{ alignItems: 'center' }}>
|
||||||
<CircularProgress size={20} />
|
<CircularProgress size={20} />
|
||||||
{t('shared.statuses.saving')}
|
{t('shared.statuses.saving')}
|
||||||
</Stack>
|
</Stack>
|
||||||
|
|||||||
@ -36,7 +36,7 @@ export const ConfigViewer = forwardRef<DialogRef>((_, ref) => {
|
|||||||
<EditorViewer
|
<EditorViewer
|
||||||
open={true}
|
open={true}
|
||||||
title={
|
title={
|
||||||
<Box display="flex" alignItems="center" gap={2}>
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
|
||||||
{t('settings.components.verge.advanced.fields.runtimeConfig')}
|
{t('settings.components.verge.advanced.fields.runtimeConfig')}
|
||||||
<Chip label={t('shared.labels.readOnly')} size="small" />
|
<Chip label={t('shared.labels.readOnly')} size="small" />
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@ -111,7 +111,7 @@ export function ControllerViewer({ ref }: { ref?: Ref<DialogRef> }) {
|
|||||||
contentSx={{ width: 400 }}
|
contentSx={{ width: 400 }}
|
||||||
okBtn={
|
okBtn={
|
||||||
isSaving ? (
|
isSaving ? (
|
||||||
<Box display="flex" alignItems="center" gap={1}>
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
|
||||||
<CircularProgress size={16} color="inherit" />
|
<CircularProgress size={16} color="inherit" />
|
||||||
{t('shared.statuses.saving')}
|
{t('shared.statuses.saving')}
|
||||||
</Box>
|
</Box>
|
||||||
@ -153,7 +153,7 @@ export function ControllerViewer({ ref }: { ref?: Ref<DialogRef> }) {
|
|||||||
<ListItemText
|
<ListItemText
|
||||||
primary={t('settings.sections.externalController.fields.address')}
|
primary={t('settings.sections.externalController.fields.address')}
|
||||||
/>
|
/>
|
||||||
<Box display="flex" alignItems="center" gap={1}>
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
|
||||||
<TextField
|
<TextField
|
||||||
size="small"
|
size="small"
|
||||||
sx={{
|
sx={{
|
||||||
@ -193,7 +193,7 @@ export function ControllerViewer({ ref }: { ref?: Ref<DialogRef> }) {
|
|||||||
<ListItemText
|
<ListItemText
|
||||||
primary={t('settings.sections.externalController.fields.secret')}
|
primary={t('settings.sections.externalController.fields.secret')}
|
||||||
/>
|
/>
|
||||||
<Box display="flex" alignItems="center" gap={1}>
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
|
||||||
<TextField
|
<TextField
|
||||||
size="small"
|
size="small"
|
||||||
sx={{
|
sx={{
|
||||||
|
|||||||
@ -623,9 +623,15 @@ export function DnsViewer({ ref }: { ref?: Ref<DialogRef> }) {
|
|||||||
open={open}
|
open={open}
|
||||||
disableEnforceFocus={!visualization}
|
disableEnforceFocus={!visualization}
|
||||||
title={
|
title={
|
||||||
<Box display="flex" justifyContent="space-between" alignItems="center">
|
<Box
|
||||||
|
sx={{
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
alignItems: 'center',
|
||||||
|
}}
|
||||||
|
>
|
||||||
{t('settings.modals.dns.dialog.title')}
|
{t('settings.modals.dns.dialog.title')}
|
||||||
<Box display="flex" alignItems="center" gap={1}>
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
|
||||||
<Button
|
<Button
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
size="small"
|
size="small"
|
||||||
|
|||||||
@ -194,10 +194,12 @@ export const HeaderConfiguration = forwardRef<ClashHeaderConfigingRef>(
|
|||||||
<List sx={{ width: '90%', padding: 2 }}>
|
<List sx={{ width: '90%', padding: 2 }}>
|
||||||
<ListItem sx={{ padding: '8px 0' }}>
|
<ListItem sx={{ padding: '8px 0' }}>
|
||||||
<Box
|
<Box
|
||||||
display="flex"
|
sx={{
|
||||||
justifyContent="space-between"
|
display: 'flex',
|
||||||
alignItems="center"
|
justifyContent: 'space-between',
|
||||||
width="100%"
|
alignItems: 'center',
|
||||||
|
width: '100%',
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<span style={{ fontWeight: 'normal' }}>
|
<span style={{ fontWeight: 'normal' }}>
|
||||||
{t('settings.sections.externalCors.fields.allowPrivateNetwork')}
|
{t('settings.sections.externalCors.fields.allowPrivateNetwork')}
|
||||||
@ -240,7 +242,7 @@ export const HeaderConfiguration = forwardRef<ClashHeaderConfigingRef>(
|
|||||||
placeholder={t(
|
placeholder={t(
|
||||||
'settings.sections.externalCors.placeholders.origin',
|
'settings.sections.externalCors.placeholders.origin',
|
||||||
)}
|
)}
|
||||||
inputProps={{ style: { fontSize: 14 } }}
|
slotProps={{ htmlInput: { style: { fontSize: 14 } } }}
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
|
|||||||
@ -90,7 +90,7 @@ export const HotkeyInput = (props: Props) => {
|
|||||||
|
|
||||||
<div className="list">
|
<div className="list">
|
||||||
{keys.map((key, index) => (
|
{keys.map((key, index) => (
|
||||||
<Box display="flex" key={key}>
|
<Box sx={{ display: 'flex' }} key={key}>
|
||||||
<span className="delimiter" hidden={index === 0}>
|
<span className="delimiter" hidden={index === 0}>
|
||||||
+
|
+
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@ -27,7 +27,7 @@ export function NetworkInterfaceViewer({ ref }: { ref?: Ref<DialogRef> }) {
|
|||||||
<BaseDialog
|
<BaseDialog
|
||||||
open={open}
|
open={open}
|
||||||
title={
|
title={
|
||||||
<Box display="flex" justifyContent="space-between">
|
<Box sx={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
{t('settings.modals.networkInterface.title')}
|
{t('settings.modals.networkInterface.title')}
|
||||||
<Box>
|
<Box>
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@ -141,7 +141,7 @@ export function TunViewer({ ref }: { ref?: Ref<DialogRef> }) {
|
|||||||
<BaseDialog
|
<BaseDialog
|
||||||
open={open}
|
open={open}
|
||||||
title={
|
title={
|
||||||
<Box display="flex" justifyContent="space-between" gap={1}>
|
<Box sx={{ display: 'flex', justifyContent: 'space-between', gap: 1 }}>
|
||||||
<Typography variant="h6">{t('settings.modals.tun.title')}</Typography>
|
<Typography variant="h6">{t('settings.modals.tun.title')}</Typography>
|
||||||
<Button
|
<Button
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
|
|||||||
@ -112,7 +112,7 @@ export function UpdateViewer({ ref }: { ref?: Ref<DialogRef> }) {
|
|||||||
<BaseDialog
|
<BaseDialog
|
||||||
open={open}
|
open={open}
|
||||||
title={
|
title={
|
||||||
<Box display="flex" justifyContent="space-between">
|
<Box sx={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
{t('settings.modals.update.title', {
|
{t('settings.modals.update.title', {
|
||||||
version: updateInfo?.version ?? '',
|
version: updateInfo?.version ?? '',
|
||||||
})}
|
})}
|
||||||
|
|||||||
@ -49,7 +49,11 @@ export const WebUIItem = (props: Props) => {
|
|||||||
if (editing || onlyEdit) {
|
if (editing || onlyEdit) {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Stack spacing={0.75} direction="row" mt={1} mb={1} alignItems="center">
|
<Stack
|
||||||
|
spacing={0.75}
|
||||||
|
direction="row"
|
||||||
|
sx={{ mt: 1, mb: 1, alignItems: 'center' }}
|
||||||
|
>
|
||||||
<TextField
|
<TextField
|
||||||
autoComplete="new-password"
|
autoComplete="new-password"
|
||||||
fullWidth
|
fullWidth
|
||||||
@ -105,13 +109,17 @@ export const WebUIItem = (props: Props) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Stack spacing={0.75} direction="row" alignItems="center" mt={1} mb={1}>
|
<Stack
|
||||||
|
spacing={0.75}
|
||||||
|
direction="row"
|
||||||
|
sx={{ alignItems: 'center', mt: 1, mb: 1 }}
|
||||||
|
>
|
||||||
<Typography
|
<Typography
|
||||||
component="div"
|
component="div"
|
||||||
width="100%"
|
|
||||||
title={value}
|
title={value}
|
||||||
color={value ? 'text.primary' : 'text.secondary'}
|
color={value ? 'text.primary' : 'text.secondary'}
|
||||||
sx={({ palette }) => ({
|
sx={({ palette }) => ({
|
||||||
|
width: '100%',
|
||||||
overflow: 'hidden',
|
overflow: 'hidden',
|
||||||
textOverflow: 'ellipsis',
|
textOverflow: 'ellipsis',
|
||||||
'> .placeholder': {
|
'> .placeholder': {
|
||||||
|
|||||||
@ -100,7 +100,7 @@ export function WebUIViewer({ ref }: { ref?: Ref<DialogRef> }) {
|
|||||||
<BaseDialog
|
<BaseDialog
|
||||||
open={open}
|
open={open}
|
||||||
title={
|
title={
|
||||||
<Box display="flex" justifyContent="space-between">
|
<Box sx={{ display: 'flex', justifyContent: 'space-between' }}>
|
||||||
{t('settings.modals.webUI.title')}
|
{t('settings.modals.webUI.title')}
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
@ -127,7 +127,7 @@ export function WebUIViewer({ ref }: { ref?: Ref<DialogRef> }) {
|
|||||||
{!editing && webUIList.length === 0 && (
|
{!editing && webUIList.length === 0 && (
|
||||||
<BaseEmpty
|
<BaseEmpty
|
||||||
extra={
|
extra={
|
||||||
<Typography mt={2} sx={{ fontSize: '12px' }}>
|
<Typography sx={{ mt: 2, fontSize: '12px' }}>
|
||||||
{t('settings.modals.webUI.messages.placeholderInstruction')}
|
{t('settings.modals.webUI.messages.placeholderInstruction')}
|
||||||
</Typography>
|
</Typography>
|
||||||
}
|
}
|
||||||
|
|||||||
@ -182,8 +182,7 @@ const TrafficErrorFallback: React.FC<TrafficErrorFallbackProps> = ({
|
|||||||
<Typography
|
<Typography
|
||||||
variant="body2"
|
variant="body2"
|
||||||
color="text.secondary"
|
color="text.secondary"
|
||||||
textAlign="center"
|
sx={{ mb: 2, textAlign: 'center' }}
|
||||||
sx={{ mb: 2 }}
|
|
||||||
>
|
>
|
||||||
{t('shared.feedback.errors.trafficStatsDescription')}
|
{t('shared.feedback.errors.trafficStatsDescription')}
|
||||||
</Typography>
|
</Typography>
|
||||||
@ -194,7 +193,7 @@ const TrafficErrorFallback: React.FC<TrafficErrorFallbackProps> = ({
|
|||||||
{error instanceof Error ? error.message : 'Unknown error'}
|
{error instanceof Error ? error.message : 'Unknown error'}
|
||||||
</Typography>
|
</Typography>
|
||||||
{retryCount > 0 && (
|
{retryCount > 0 && (
|
||||||
<Typography variant="caption" display="block" sx={{ mt: 1 }}>
|
<Typography variant="caption" sx={{ mt: 1, display: 'block' }}>
|
||||||
{t('shared.labels.retryAttempts')}: {retryCount}/{maxRetries}
|
{t('shared.labels.retryAttempts')}: {retryCount}/{maxRetries}
|
||||||
</Typography>
|
</Typography>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -116,8 +116,7 @@ export const TestItem = ({
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Box
|
<Box
|
||||||
position="relative"
|
sx={{ position: 'relative', cursor: 'move' }}
|
||||||
sx={{ cursor: 'move' }}
|
|
||||||
ref={setNodeRef}
|
ref={setNodeRef}
|
||||||
{...attributes}
|
{...attributes}
|
||||||
{...listeners}
|
{...listeners}
|
||||||
@ -208,7 +207,7 @@ export const TestItem = ({
|
|||||||
anchorPosition={position}
|
anchorPosition={position}
|
||||||
anchorReference="anchorPosition"
|
anchorReference="anchorPosition"
|
||||||
transitionDuration={225}
|
transitionDuration={225}
|
||||||
MenuListProps={{ sx: { py: 0.5 } }}
|
slotProps={{ list: { sx: { py: 0.5 } } }}
|
||||||
onContextMenu={(e) => {
|
onContextMenu={(e) => {
|
||||||
setAnchorEl(null)
|
setAnchorEl(null)
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
|||||||
@ -137,7 +137,7 @@ const ProxyPage = () => {
|
|||||||
: t('proxies.page.title.default')
|
: t('proxies.page.title.default')
|
||||||
}
|
}
|
||||||
header={
|
header={
|
||||||
<Box display="flex" alignItems="center" gap={1}>
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
|
||||||
<ProviderButton />
|
<ProviderButton />
|
||||||
|
|
||||||
<ButtonGroup size="small">
|
<ButtonGroup size="small">
|
||||||
|
|||||||
@ -63,7 +63,7 @@ const RulesPage = () => {
|
|||||||
overflow: 'auto',
|
overflow: 'auto',
|
||||||
}}
|
}}
|
||||||
header={
|
header={
|
||||||
<Box display="flex" alignItems="center" gap={1}>
|
<Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>
|
||||||
<ProviderButton />
|
<ProviderButton />
|
||||||
</Box>
|
</Box>
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import {
|
|||||||
AccessTimeOutlined,
|
AccessTimeOutlined,
|
||||||
CancelOutlined,
|
CancelOutlined,
|
||||||
CheckCircleOutlined,
|
CheckCircleOutlined,
|
||||||
HelpOutline,
|
HelpOutlined,
|
||||||
PendingOutlined,
|
PendingOutlined,
|
||||||
RefreshRounded,
|
RefreshRounded,
|
||||||
} from '@mui/icons-material'
|
} from '@mui/icons-material'
|
||||||
@ -315,8 +315,8 @@ const UnlockPage = () => {
|
|||||||
if (status === 'Yes') return <CheckCircleOutlined />
|
if (status === 'Yes') return <CheckCircleOutlined />
|
||||||
if (status === 'No') return <CancelOutlined />
|
if (status === 'No') return <CancelOutlined />
|
||||||
if (status === 'Soon') return <AccessTimeOutlined />
|
if (status === 'Soon') return <AccessTimeOutlined />
|
||||||
if (status.includes('Failed')) return <HelpOutline />
|
if (status.includes('Failed')) return <HelpOutlined />
|
||||||
return <HelpOutline />
|
return <HelpOutlined />
|
||||||
}
|
}
|
||||||
|
|
||||||
// 边框色
|
// 边框色
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user