diff --git a/next-ui/env.d.ts b/next-ui/env.d.ts
index e790465c0..c86cadb2e 100644
--- a/next-ui/env.d.ts
+++ b/next-ui/env.d.ts
@@ -1,3 +1,4 @@
///
///
///
+///
diff --git a/next-ui/package-lock.json b/next-ui/package-lock.json
index d2c06fd09..fe9aa0165 100644
--- a/next-ui/package-lock.json
+++ b/next-ui/package-lock.json
@@ -23,7 +23,7 @@
"devDependencies": {
"@eslint/js": "^9.28.0",
"@formatjs/cli": "^6.7.1",
- "@mdi/font": "7.4.47",
+ "@iconify-json/mdi": "^1.2.3",
"@tsconfig/node22": "^22.0.2",
"@types/node": "^22.15.29",
"@vitejs/plugin-vue": "^5.1.4",
@@ -42,6 +42,7 @@
"typescript": "^5.8.3",
"unplugin-auto-import": "^19.3.0",
"unplugin-fonts": "^1.1.1",
+ "unplugin-icons": "^22.1.0",
"unplugin-vue-components": "^28.7.0",
"unplugin-vue-router": "^0.12.0",
"vite": "^6.3.5",
@@ -52,6 +53,37 @@
"vue-tsc": "^2.1.10"
}
},
+ "node_modules/@antfu/install-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz",
+ "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "package-manager-detector": "^1.3.0",
+ "tinyexec": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@antfu/install-pkg/node_modules/tinyexec": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz",
+ "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@antfu/utils": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz",
+ "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
"node_modules/@babel/code-frame": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
@@ -907,19 +939,59 @@
"url": "https://github.com/sponsors/nzakas"
}
},
+ "node_modules/@iconify-json/mdi": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@iconify-json/mdi/-/mdi-1.2.3.tgz",
+ "integrity": "sha512-O3cLwbDOK7NNDf2ihaQOH5F9JglnulNDFV7WprU2dSoZu3h3cWH//h74uQAB87brHmvFVxIOkuBX2sZSzYhScg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@iconify/types": "*"
+ }
+ },
+ "node_modules/@iconify/types": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
+ "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@iconify/utils": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz",
+ "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@antfu/install-pkg": "^1.0.0",
+ "@antfu/utils": "^8.1.0",
+ "@iconify/types": "^2.0.0",
+ "debug": "^4.4.0",
+ "globals": "^15.14.0",
+ "kolorist": "^1.8.0",
+ "local-pkg": "^1.0.0",
+ "mlly": "^1.7.4"
+ }
+ },
+ "node_modules/@iconify/utils/node_modules/globals": {
+ "version": "15.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+ "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"license": "MIT"
},
- "node_modules/@mdi/font": {
- "version": "7.4.47",
- "resolved": "https://registry.npmjs.org/@mdi/font/-/font-7.4.47.tgz",
- "integrity": "sha512-43MtGpd585SNzHZPcYowu/84Vz2a2g31TvPMTm9uTiCSWzaheQySUcSyUH/46fPnuPQWof2yd0pGBtzee/IQWw==",
- "dev": true,
- "license": "Apache-2.0"
- },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -3960,6 +4032,13 @@
"integrity": "sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==",
"license": "MIT"
},
+ "node_modules/kolorist": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
+ "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@@ -4450,6 +4529,13 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/package-manager-detector": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz",
+ "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -5727,6 +5813,51 @@
"node": ">=18.12.0"
}
},
+ "node_modules/unplugin-icons": {
+ "version": "22.1.0",
+ "resolved": "https://registry.npmjs.org/unplugin-icons/-/unplugin-icons-22.1.0.tgz",
+ "integrity": "sha512-ect2ZNtk1Zgwb0NVHd0C1IDW/MV+Jk/xaq4t8o6rYdVS3+L660ZdD5kTSQZvsgdwCvquRw+/wYn75hsweRjoIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@antfu/install-pkg": "^1.0.0",
+ "@iconify/utils": "^2.3.0",
+ "debug": "^4.4.0",
+ "local-pkg": "^1.0.0",
+ "unplugin": "^2.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@svgr/core": ">=7.0.0",
+ "@svgx/core": "^1.0.1",
+ "@vue/compiler-sfc": "^3.0.2 || ^2.7.0",
+ "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0",
+ "vue-template-compiler": "^2.6.12",
+ "vue-template-es2015-compiler": "^1.9.0"
+ },
+ "peerDependenciesMeta": {
+ "@svgr/core": {
+ "optional": true
+ },
+ "@svgx/core": {
+ "optional": true
+ },
+ "@vue/compiler-sfc": {
+ "optional": true
+ },
+ "svelte": {
+ "optional": true
+ },
+ "vue-template-compiler": {
+ "optional": true
+ },
+ "vue-template-es2015-compiler": {
+ "optional": true
+ }
+ }
+ },
"node_modules/unplugin-utils": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.2.4.tgz",
@@ -6176,9 +6307,9 @@
}
},
"node_modules/vuetify": {
- "version": "3.8.8",
- "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.8.8.tgz",
- "integrity": "sha512-EPFynvxh72PBgUVZnGpfYfGluz8dz/tXM1OzjszFOK7ywqS+bAm8K9jJq0MIlAG8HKE7gBFQwCJGkzIyuUDipA==",
+ "version": "3.8.5",
+ "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.8.5.tgz",
+ "integrity": "sha512-W/mTaNDyO6NRqAQmnkMUn9TYvRb//BPF/vk7h3+2xNJOyI9ev90JmYjrihOtb+6QDrB79wVUH0Y+0OjYK73GsA==",
"license": "MIT",
"engines": {
"node": "^12.20 || >=14.13"
diff --git a/next-ui/package.json b/next-ui/package.json
index 030681557..28a6511a4 100644
--- a/next-ui/package.json
+++ b/next-ui/package.json
@@ -34,7 +34,7 @@
"devDependencies": {
"@eslint/js": "^9.28.0",
"@formatjs/cli": "^6.7.1",
- "@mdi/font": "7.4.47",
+ "@iconify-json/mdi": "^1.2.3",
"@tsconfig/node22": "^22.0.2",
"@types/node": "^22.15.29",
"@vitejs/plugin-vue": "^5.1.4",
@@ -53,6 +53,7 @@
"typescript": "^5.8.3",
"unplugin-auto-import": "^19.3.0",
"unplugin-fonts": "^1.1.1",
+ "unplugin-icons": "^22.1.0",
"unplugin-vue-components": "^28.7.0",
"unplugin-vue-router": "^0.12.0",
"vite": "^6.3.5",
diff --git a/next-ui/src/components/BuildCommit.vue b/next-ui/src/components/BuildCommit.vue
index 004aad7b5..e81178cd7 100644
--- a/next-ui/src/components/BuildCommit.vue
+++ b/next-ui/src/components/BuildCommit.vue
@@ -1,7 +1,7 @@
+
diff --git a/next-ui/src/components/app/drawer/menu/History.vue b/next-ui/src/components/app/drawer/menu/History.vue
index 4cd9354f6..6fac4b881 100644
--- a/next-ui/src/components/app/drawer/menu/History.vue
+++ b/next-ui/src/components/app/drawer/menu/History.vue
@@ -8,6 +8,10 @@
id: 'l/To3S',
})
"
- prepend-icon="mdi-clock-time-four-outline"
+ :prepend-icon="mdiClockTimeFourOutline"
/>
+
+
diff --git a/next-ui/src/components/app/drawer/menu/Import.vue b/next-ui/src/components/app/drawer/menu/Import.vue
index 620790150..9fe731b9d 100644
--- a/next-ui/src/components/app/drawer/menu/Import.vue
+++ b/next-ui/src/components/app/drawer/menu/Import.vue
@@ -10,7 +10,7 @@
id: 'N7+QXi',
})
"
- prepend-icon="mdi-import"
+ :prepend-icon="mdiImport"
/>
@@ -37,3 +37,7 @@
/>
+
+
diff --git a/next-ui/src/components/app/drawer/menu/Logout.vue b/next-ui/src/components/app/drawer/menu/Logout.vue
index 87d3aa160..ee18792c9 100644
--- a/next-ui/src/components/app/drawer/menu/Logout.vue
+++ b/next-ui/src/components/app/drawer/menu/Logout.vue
@@ -7,12 +7,13 @@
id: 'ti4Pzo',
})
"
- prepend-icon="mdi-power"
+ :prepend-icon="mdiPower"
@click="performLogout"
/>
+
diff --git a/next-ui/src/components/app/drawer/menu/Server.vue b/next-ui/src/components/app/drawer/menu/Server.vue
index 725362286..af3a502e9 100644
--- a/next-ui/src/components/app/drawer/menu/Server.vue
+++ b/next-ui/src/components/app/drawer/menu/Server.vue
@@ -13,7 +13,6 @@
id: 'IpvWiZ',
})
"
- prepend-icon="mdi-cog"
>
- mdi-cog
+
@@ -103,6 +102,7 @@