diff --git a/package.json b/package.json
index c326dac8..ad977415 100644
--- a/package.json
+++ b/package.json
@@ -54,7 +54,7 @@
     "tailwindcss": "^3.4.17",
     "typescript": "^5.7.3",
     "unplugin-auto-import": "^0.18.6",
-    "unplugin-vue-components": "^0.27.5",
+    "unplugin-vue-components": "^0.28.0",
     "unplugin-vue-markdown": "^0.26.3",
     "vite": "^5.4.11",
     "vite-plugin-pages": "^0.32.4",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 471877c2..974fec1a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -136,8 +136,8 @@ importers:
         specifier: ^0.18.6
         version: 0.18.6(@vueuse/core@10.11.1(vue@3.5.13(typescript@5.7.3)))(rollup@2.79.2)
       unplugin-vue-components:
-        specifier: ^0.27.5
-        version: 0.27.5(@babel/parser@7.26.5)(rollup@2.79.2)(vue@3.5.13(typescript@5.7.3))
+        specifier: ^0.28.0
+        version: 0.28.0(@babel/parser@7.26.5)(rollup@2.79.2)(vue@3.5.13(typescript@5.7.3))
       unplugin-vue-markdown:
         specifier: ^0.26.3
         version: 0.26.3(rollup@2.79.2)(vite@5.4.11(@types/node@20.17.14)(terser@5.37.0))
@@ -3519,8 +3519,8 @@ packages:
       '@vueuse/core':
         optional: true
 
-  unplugin-vue-components@0.27.5:
-    resolution: {integrity: sha512-m9j4goBeNwXyNN8oZHHxvIIYiG8FQ9UfmKWeNllpDvhU7btKNNELGPt+o3mckQKuPwrE7e0PvCsx+IWuDSD9Vg==}
+  unplugin-vue-components@0.28.0:
+    resolution: {integrity: sha512-jiTGtJ3JsRFBjgvyilfrX7yUoGKScFgbdNw+6p6kEXU+Spf/rhxzgvdfuMcvhCcLmflB/dY3pGQshYBVGOUx7Q==}
     engines: {node: '>=14'}
     peerDependencies:
       '@babel/parser': ^7.15.8
@@ -3541,6 +3541,10 @@ packages:
     resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==}
     engines: {node: '>=14.0.0'}
 
+  unplugin@2.1.2:
+    resolution: {integrity: sha512-Q3LU0e4zxKfRko1wMV2HmP8lB9KWislY7hxXpxd+lGx0PRInE4vhMBVEZwpdVYHvtqzhSrzuIfErsob6bQfCzw==}
+    engines: {node: '>=18.12.0'}
+
   upath@1.2.0:
     resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==}
     engines: {node: '>=4'}
@@ -7546,7 +7550,7 @@ snapshots:
     transitivePeerDependencies:
       - rollup
 
-  unplugin-vue-components@0.27.5(@babel/parser@7.26.5)(rollup@2.79.2)(vue@3.5.13(typescript@5.7.3)):
+  unplugin-vue-components@0.28.0(@babel/parser@7.26.5)(rollup@2.79.2)(vue@3.5.13(typescript@5.7.3)):
     dependencies:
       '@antfu/utils': 0.7.10
       '@rollup/pluginutils': 5.1.4(rollup@2.79.2)
@@ -7557,7 +7561,7 @@ snapshots:
       magic-string: 0.30.17
       minimatch: 9.0.5
       mlly: 1.7.4
-      unplugin: 1.16.1
+      unplugin: 2.1.2
       vue: 3.5.13(typescript@5.7.3)
     optionalDependencies:
       '@babel/parser': 7.26.5
@@ -7583,6 +7587,11 @@ snapshots:
       acorn: 8.14.0
       webpack-virtual-modules: 0.6.2
 
+  unplugin@2.1.2:
+    dependencies:
+      acorn: 8.14.0
+      webpack-virtual-modules: 0.6.2
+
   upath@1.2.0: {}
 
   update-browserslist-db@1.1.2(browserslist@4.24.4):