1
0
Эх сурвалжийг харах

fix: 修复tabs已知问题

vben 10 сар өмнө
parent
commit
352119cc3a

+ 1 - 1
apps/antd-view/src/router/routes/modules/vben.ts

@@ -10,7 +10,7 @@ export const vbenRoutes: RouteRecordRaw[] = [
     component: BasicLayout,
     meta: {
       icon: preference.logo,
-      title: 'Vben Admin',
+      title: 'Vben',
     },
     name: 'AboutLayout',
     path: '/vben-admin',

+ 1 - 1
internal/tsconfig/package.json

@@ -20,6 +20,6 @@
   ],
   "dependencies": {
     "@vben/types": "workspace:*",
-    "vite": "^6.0.0-alpha.17"
+    "vite": "5.2.11"
   }
 }

+ 1 - 1
internal/vite-config/package.json

@@ -48,7 +48,7 @@
     "rollup-plugin-visualizer": "^5.12.0",
     "sass": "^1.77.2",
     "unplugin-turbo-console": "^1.8.6",
-    "vite": "^6.0.0-alpha.17",
+    "vite": "5.2.11",
     "vite-plugin-compression": "^0.5.1",
     "vite-plugin-dts": "^3.9.1",
     "vite-plugin-html": "^3.2.2",

+ 1 - 1
package.json

@@ -67,7 +67,7 @@
     "turbo": "^1.13.3",
     "typescript": "^5.4.5",
     "unbuild": "^2.0.0",
-    "vite": "^6.0.0-alpha.17",
+    "vite": "5.2.11",
     "vitest": "^2.0.0-beta.3",
     "vue-tsc": "^2.0.19"
   },

+ 1 - 1
packages/@vben-core/uikit/layout-ui/src/vben-layout.vue

@@ -48,7 +48,7 @@ const props = withDefaults(defineProps<Props>(), {
   sideTheme: 'dark',
   sideWidth: 180,
   // tabsBackgroundColor: 'hsl(var(--color-background))',
-  tabsHeight: 38,
+  tabsHeight: 36,
   tabsVisible: true,
   zIndex: 200,
 });

+ 1 - 1
packages/@vben-core/uikit/menu-ui/src/menu.vue

@@ -12,7 +12,7 @@ interface Props extends MenuProps {
 }
 
 defineOptions({
-  name: 'MenuUi',
+  name: 'MenuView',
 });
 
 const props = withDefaults(defineProps<Props>(), {

+ 68 - 64
packages/@vben-core/uikit/tabs-ui/src/styles/tabs.scss → packages/@vben-core/uikit/tabs-ui/src/components/chrome-tabs/chrome-tabs.scss

@@ -1,29 +1,28 @@
 @import '@vben-core/design/global';
 
-@include b('tabs-ui') {
+@include b('chrome-tabs') {
   --tabs-background: hsl(var(--color-background));
-  --tabs-gap: 10px;
+  --tabs-gap: 7px;
   --tabs-divider: hsl(var(--color-border));
   --tabs-hover: hsl(var(--color-heavy));
-  --tabs-active-background: hsl(var(--color-primary) / 15%);
-  --tabs-active: hsl(var(--color-primary));
+  --tabs-active-background: hsl(var(--color-primary) / 100%);
+  --tabs-active: hsl(var(--color-primary-foreground));
 
   position: relative;
   width: 100%;
   height: 100%;
-  padding-top: 2px;
+  padding-top: 4px;
   background-color: var(--tabs-background);
 
   @include e('content') {
     position: relative;
-    height: 100%;
+    height: 32px;
     overflow: hidden;
   }
 }
 
-@include b('tab') {
+@include b('chrome-tab') {
   position: absolute;
-  box-sizing: border-box;
   display: flex;
   align-items: center;
   height: 100%;
@@ -32,24 +31,24 @@
   user-select: none;
 
   @include is('active') {
-    z-index: 1;
+    z-index: 2;
     color: var(--tabs-active);
 
-    .#{$namespace}-tab__extra:not(.is-pin) {
+    .#{$namespace}-chrome-tab__extra:not(.is-pin) {
       background-color: var(--tabs-active-background);
       opacity: 1;
     }
 
-    .#{$namespace}-tab-background__divider {
+    .#{$namespace}-chrome-tab-background__divider {
       display: none;
     }
 
-    .#{$namespace}-tab-background__content {
+    .#{$namespace}-chrome-tab-background__content {
       background-color: var(--tabs-active-background);
     }
 
-    .#{$namespace}-tab-background__before,
-    .#{$namespace}-tab-background__after {
+    .#{$namespace}-chrome-tab-background__before,
+    .#{$namespace}-chrome-tab-background__after {
       fill: var(--tabs-active-background);
     }
   }
@@ -58,8 +57,7 @@
     position: absolute;
     right: 0;
     left: 0;
-    z-index: 1;
-    box-sizing: border-box;
+    // z-index: 1;
     display: flex;
     align-items: center;
     height: 100%;
@@ -73,19 +71,18 @@
   @include e('extra') {
     position: absolute;
     top: 50%;
-    right: calc(var(--tabs-gap) * 1.5);
+    right: calc(var(--tabs-gap) * 2);
     z-index: 1;
     width: 14px;
     height: 14px;
     border-radius: 50%;
     opacity: 0;
-
-    // transition: all 0.15s ease;
+    transition: 0.15s;
     transform: translateY(-50%);
 
-    &:hover {
-      // background-color: hsl(var(--color-accent));
-    }
+    // &:hover {
+    //   background-color: hsl(var(--color-accent));
+    // }
   }
 
   @include e('extra-icon') {
@@ -116,14 +113,26 @@
 
   @include e('label') {
     position: relative;
-    box-sizing: border-box;
     flex: 1;
-    margin-right: px;
+    margin-right: 8px;
     margin-left: 5%;
     overflow: hidden;
     font-size: 14px;
-    text-align: center;
     white-space: nowrap;
+    mask-image: linear-gradient(
+      90deg,
+      #000 0%,
+      #000 calc(100% - 20px),
+      transparent
+    );
+
+    // &.no-close {
+    //   margin-right: 0;
+    // }
+
+    // &.no-icon {
+    //   margin-left: 0;
+    // }
   }
 
   @include is('hidden-icon') {
@@ -131,51 +140,44 @@
   }
 
   &:hover {
-    .#{$namespace}-tab__extra.is-pin {
+    .#{$namespace}-chrome-tab__extra.is-pin {
       opacity: 1;
     }
   }
 
   &:not(.is-active):hover {
-    z-index: 10;
+    z-index: 1;
 
-    .#{$namespace}-tab__extra {
+    .#{$namespace}-chrome-tab__extra {
       opacity: 1;
     }
 
-    .#{$namespace}-tab-background__divider {
+    .#{$namespace}-chrome-tab-background__divider {
       display: none;
     }
 
-    .#{$namespace}-tab-background__content {
+    .#{$namespace}-chrome-tab-background__content {
       background-color: var(--tabs-hover);
     }
 
-    .#{$namespace}-tab-background__before,
-    .#{$namespace}-tab-background__after {
+    .#{$namespace}-chrome-tab-background__before,
+    .#{$namespace}-chrome-tab-background__after {
       fill: var(--tabs-hover);
     }
   }
 
-  &:last-of-type {
-    .#{$namespace}-tab-background__divider::after {
-      display: none;
-    }
-  }
-
   &:first-of-type {
-    .#{$namespace}-tab-background__divider::before {
+    .#{$namespace}-chrome-tab-background__divider::before {
       display: none;
     }
   }
 }
 
-@include b('tab-background') {
+@include b('chrome-tab-background') {
   position: absolute;
-  box-sizing: border-box;
   width: 100%;
   height: 100%;
-  padding: 0 calc(var(--tabs-gap) - 1px);
+  padding: 0 calc(var(--tabs-gap) + 0px);
 
   @include e('divider') {
     position: absolute;
@@ -184,45 +186,47 @@
     height: 100%;
     margin: 0 7px;
 
-    // &::before {
-    //   position: absolute;
-    //   top: 20%;
-    //   right: 100%;
-    //   width: 1px;
-    //   height: 60%;
-    //   content: '';
-    //   background-color: var(--tabs-divider);
-    // }
+    &::before {
+      position: absolute;
+      top: 20%;
+      right: 100%;
+      width: 1px;
+      height: 60%;
+      content: '';
+      background-color: var(--tabs-divider);
+    }
 
-    // &::after {
-    //   position: absolute;
-    //   top: 20%;
-    //   left: calc(100% - 1px);
-    //   width: 1px;
-    //   height: 60%;
-    //   content: '';
-    //   background-color: var(--tabs-divider);
-    // }
+    &::after {
+      position: absolute;
+      top: 20%;
+      left: calc(100% - 1px);
+      width: 1px;
+      height: 60%;
+      content: '';
+      background-color: var(--tabs-divider);
+    }
   }
 
   @include e('content') {
     height: 100%;
-    border-top-left-radius: 8px;
-    border-top-right-radius: 8px;
+    border-top-left-radius: 5px;
+    border-top-right-radius: 5px;
     transition: background 0.15s ease;
   }
 
   @include e('before') {
     position: absolute;
     bottom: -1px;
-    left: -1px;
+    left: -3px;
     fill: transparent;
+    transition: 0.15s;
   }
 
   @include e('after') {
     position: absolute;
-    right: -1px;
+    right: -3px;
     bottom: -1px;
     fill: transparent;
+    transition: 0.15s;
   }
 }

+ 2 - 2
packages/@vben-core/uikit/tabs-ui/src/components/tab-background.vue → packages/@vben-core/uikit/tabs-ui/src/components/chrome-tabs/tab-background.vue

@@ -2,10 +2,10 @@
 import { useNamespace } from '@vben-core/toolkit';
 
 defineOptions({
-  name: 'TabBackground',
+  name: 'ChromeTabBackground',
 });
 
-const { b, e } = useNamespace('tab-background');
+const { b, e } = useNamespace('chrome-tab-background');
 </script>
 
 <template>

+ 2 - 2
packages/@vben-core/uikit/tabs-ui/src/components/tab.vue → packages/@vben-core/uikit/tabs-ui/src/components/chrome-tabs/tab.vue

@@ -19,7 +19,7 @@ interface Props {
 }
 
 defineOptions({
-  name: 'Tab',
+  name: 'ChromeTab',
 });
 
 withDefaults(defineProps<Props>(), {
@@ -27,7 +27,7 @@ withDefaults(defineProps<Props>(), {
 });
 const emit = defineEmits<{ close: []; unPushPin: [] }>();
 
-const { b, e, is } = useNamespace('tab');
+const { b, e, is } = useNamespace('chrome-tab');
 
 function handleClose() {
   emit('close');

+ 8 - 13
packages/@vben-core/uikit/tabs-ui/src/components/tabs.vue → packages/@vben-core/uikit/tabs-ui/src/components/chrome-tabs/tabs.vue

@@ -1,23 +1,18 @@
 <script setup lang="ts">
-import type { IContextMenuItem } from '@vben-core/shadcn-ui';
+import type { TabItem } from '@vben-core/typings';
 
 import { useNamespace } from '@vben-core/toolkit';
-import { TabItem } from '@vben-core/typings';
 
 import { computed, nextTick, onMounted, ref, watch } from 'vue';
 
 import Tab from './tab.vue';
 
-interface Props {
-  maxWidth?: number;
-  menus?: (data: any) => IContextMenuItem[];
-  minWidth?: number;
-  showIcon?: boolean;
-  tabs?: TabItem[];
-}
+import type { TabsProps } from '../../interface';
+
+interface Props extends TabsProps {}
 
 defineOptions({
-  name: 'Tabs',
+  name: 'ChromeTabs',
 });
 
 const props = withDefaults(defineProps<Props>(), {
@@ -29,10 +24,10 @@ const props = withDefaults(defineProps<Props>(), {
 
 const emit = defineEmits<{ close: [string]; unPushPin: [TabItem] }>();
 
-const gap = 6;
+const gap = 7;
 
 const active = defineModel<string>('active');
-const { b, e, is } = useNamespace('tabs-ui');
+const { b, e, is } = useNamespace('chrome-tabs');
 
 const contentRef = ref();
 const tabWidth = ref<number>(0);
@@ -115,5 +110,5 @@ function handleUnPushPin(tab: TabItem) {
   </div>
 </template>
 <style lang="scss">
-@import '../styles/tabs.scss';
+@import './chrome-tabs.scss';
 </style>

+ 1 - 1
packages/@vben-core/uikit/tabs-ui/src/components/index.ts

@@ -1,3 +1,3 @@
-export { default as Tabs } from './tabs.vue';
+export { default as ChromeTabs } from './chrome-tabs/tabs.vue';
 export { default as TabsMore } from './tabs-more.vue';
 export { default as TabsScreen } from './tabs-screen.vue';

+ 5 - 0
packages/@vben-core/uikit/tabs-ui/src/components/tabs/index.vue

@@ -0,0 +1,5 @@
+<script lang="ts" setup></script>
+
+<template>
+  <div></div>
+</template>

+ 2 - 1
packages/@vben-core/uikit/tabs-ui/src/index.ts

@@ -1,2 +1,3 @@
-export { Tabs as TabsView, TabsMore, TabsScreen } from './components';
+export { TabsMore, TabsScreen } from './components';
+export { default as TabsView } from './tabs-view.vue';
 export type { IContextMenuItem } from '@vben-core/shadcn-ui';

+ 12 - 0
packages/@vben-core/uikit/tabs-ui/src/interface.ts

@@ -0,0 +1,12 @@
+import type { IContextMenuItem } from '@vben-core/shadcn-ui';
+import type { TabItem } from '@vben-core/typings';
+
+interface TabsProps {
+  maxWidth?: number;
+  menus?: (data: any) => IContextMenuItem[];
+  minWidth?: number;
+  showIcon?: boolean;
+  tabs?: TabItem[];
+}
+
+export type { TabsProps };

+ 24 - 0
packages/@vben-core/uikit/tabs-ui/src/tabs-view.vue

@@ -0,0 +1,24 @@
+<script setup lang="ts">
+import type { TabItem } from '@vben-core/typings';
+
+import { useForwardPropsEmits } from '@vben-core/shadcn-ui';
+
+import { ChromeTabs } from './components';
+import { TabsProps } from './interface';
+
+interface Props extends TabsProps {}
+
+defineOptions({
+  name: 'TabsView',
+});
+
+const props = withDefaults(defineProps<Props>(), {});
+
+const emit = defineEmits<{ close: [string]; unPushPin: [TabItem] }>();
+
+const forward = useForwardPropsEmits(props, emit);
+</script>
+
+<template>
+  <ChromeTabs v-bind="forward" />
+</template>

+ 58 - 50
pnpm-lock.yaml

@@ -83,8 +83,8 @@ importers:
         specifier: ^2.0.0
         version: 2.0.0(sass@1.77.2)(typescript@5.4.5)(vue-tsc@2.0.19(typescript@5.4.5))
       vite:
-        specifier: ^6.0.0-alpha.17
-        version: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+        specifier: 5.2.11
+        version: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
       vitest:
         specifier: ^2.0.0-beta.3
         version: 2.0.0-beta.3(@types/node@20.12.12)(jsdom@24.0.0)(sass@1.77.2)(terser@5.31.0)
@@ -372,8 +372,8 @@ importers:
         specifier: workspace:*
         version: link:../../packages/types
       vite:
-        specifier: ^6.0.0-alpha.17
-        version: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+        specifier: 5.2.11
+        version: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
 
   internal/vite-config:
     dependencies:
@@ -394,10 +394,10 @@ importers:
         version: 2.0.2
       vite-plugin-lib-inject-css:
         specifier: ^2.1.1
-        version: 2.1.1(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
+        version: 2.1.1(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
       vite-plugin-vue-devtools:
         specifier: ^7.2.1
-        version: 7.2.1(rollup@4.18.0)(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
+        version: 7.2.1(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
     devDependencies:
       '@types/html-minifier-terser':
         specifier: ^7.0.2
@@ -407,10 +407,10 @@ importers:
         version: link:../node-utils
       '@vitejs/plugin-vue':
         specifier: ^5.0.4
-        version: 5.0.4(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
+        version: 5.0.4(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
       '@vitejs/plugin-vue-jsx':
         specifier: ^3.1.0
-        version: 3.1.0(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
+        version: 3.1.0(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
       dayjs:
         specifier: ^1.11.11
         version: 1.11.11
@@ -425,22 +425,22 @@ importers:
         version: 1.77.2
       unplugin-turbo-console:
         specifier: ^1.8.6
-        version: 1.8.6(esbuild@0.20.2)(rollup@4.18.0)(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
+        version: 1.8.6(esbuild@0.20.2)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
       vite:
-        specifier: ^6.0.0-alpha.17
-        version: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+        specifier: 5.2.11
+        version: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
       vite-plugin-compression:
         specifier: ^0.5.1
-        version: 0.5.1(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
+        version: 0.5.1(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
       vite-plugin-dts:
         specifier: ^3.9.1
-        version: 3.9.1(@types/node@20.12.12)(rollup@4.18.0)(typescript@5.4.5)(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
+        version: 3.9.1(@types/node@20.12.12)(rollup@4.18.0)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
       vite-plugin-html:
         specifier: ^3.2.2
-        version: 3.2.2(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
+        version: 3.2.2(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
       vite-plugin-mock:
         specifier: ^3.0.2
-        version: 3.0.2(esbuild@0.20.2)(mockjs@1.1.0)(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
+        version: 3.0.2(esbuild@0.20.2)(mockjs@1.1.0)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
 
   packages/@vben-core/shared/design:
     dependencies:
@@ -609,9 +609,6 @@ importers:
       '@vben-core/toolkit':
         specifier: workspace:*
         version: link:../../@vben-core/shared/toolkit
-      '@vben/constants':
-        specifier: workspace:*
-        version: link:../../constants
       '@vben/locales':
         specifier: workspace:*
         version: link:../../locales
@@ -684,11 +681,7 @@ importers:
         specifier: workspace:*
         version: link:../../@vben-core/shared/typings
 
-  packages/constants:
-    dependencies:
-      '@vben-core/toolkit':
-        specifier: workspace:*
-        version: link:../@vben-core/shared/toolkit
+  packages/constants: {}
 
   packages/hooks:
     dependencies:
@@ -8933,19 +8926,19 @@ snapshots:
 
   '@ungap/structured-clone@1.2.0': {}
 
-  '@vitejs/plugin-vue-jsx@3.1.0(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))':
+  '@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))':
     dependencies:
       '@babel/core': 7.24.6
       '@babel/plugin-transform-typescript': 7.24.6(@babel/core@7.24.6)
       '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.6)
-      vite: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
       vue: 3.4.27(typescript@5.4.5)
     transitivePeerDependencies:
       - supports-color
 
-  '@vitejs/plugin-vue@5.0.4(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))':
+  '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))':
     dependencies:
-      vite: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
       vue: 3.4.27(typescript@5.4.5)
 
   '@vitest/expect@1.6.0':
@@ -9098,14 +9091,14 @@ snapshots:
 
   '@vue/devtools-api@6.6.1': {}
 
-  '@vue/devtools-core@7.2.1(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))':
+  '@vue/devtools-core@7.2.1(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))':
     dependencies:
       '@vue/devtools-kit': 7.2.1(vue@3.4.27(typescript@5.4.5))
       '@vue/devtools-shared': 7.2.1
       mitt: 3.0.1
       nanoid: 3.3.7
       pathe: 1.1.2
-      vite-hot-client: 0.2.3(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
+      vite-hot-client: 0.2.3(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
     transitivePeerDependencies:
       - vite
       - vue
@@ -13721,7 +13714,7 @@ snapshots:
 
   unpipe@1.0.0: {}
 
-  unplugin-turbo-console@1.8.6(esbuild@0.20.2)(rollup@4.18.0)(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)):
+  unplugin-turbo-console@1.8.6(esbuild@0.20.2)(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)):
     dependencies:
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
       ast-kit: 0.12.1
@@ -13734,7 +13727,7 @@ snapshots:
     optionalDependencies:
       esbuild: 0.20.2
       rollup: 4.18.0
-      vite: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
       vue: 3.4.27(typescript@5.4.5)
     transitivePeerDependencies:
       - uWebSockets.js
@@ -13799,9 +13792,9 @@ snapshots:
 
   validator@13.12.0: {}
 
-  vite-hot-client@0.2.3(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
+  vite-hot-client@0.2.3(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
     dependencies:
-      vite: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
 
   vite-node@1.6.0(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0):
     dependencies:
@@ -13838,16 +13831,16 @@ snapshots:
       - supports-color
       - terser
 
-  vite-plugin-compression@0.5.1(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
+  vite-plugin-compression@0.5.1(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
     dependencies:
       chalk: 4.1.2
       debug: 4.3.4
       fs-extra: 10.1.0
-      vite: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
     transitivePeerDependencies:
       - supports-color
 
-  vite-plugin-dts@3.9.1(@types/node@20.12.12)(rollup@4.18.0)(typescript@5.4.5)(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
+  vite-plugin-dts@3.9.1(@types/node@20.12.12)(rollup@4.18.0)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
     dependencies:
       '@microsoft/api-extractor': 7.43.0(@types/node@20.12.12)
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -13858,13 +13851,13 @@ snapshots:
       typescript: 5.4.5
       vue-tsc: 1.8.27(typescript@5.4.5)
     optionalDependencies:
-      vite: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
     transitivePeerDependencies:
       - '@types/node'
       - rollup
       - supports-color
 
-  vite-plugin-html@3.2.2(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
+  vite-plugin-html@3.2.2(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
     dependencies:
       '@rollup/pluginutils': 4.2.1
       colorette: 2.0.20
@@ -13878,9 +13871,9 @@ snapshots:
       html-minifier-terser: 6.1.0
       node-html-parser: 5.4.2
       pathe: 0.2.0
-      vite: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
 
-  vite-plugin-inspect@0.8.4(rollup@4.18.0)(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
+  vite-plugin-inspect@0.8.4(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
     dependencies:
       '@antfu/utils': 0.7.8
       '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -13891,17 +13884,32 @@ snapshots:
       perfect-debounce: 1.0.0
       picocolors: 1.0.1
       sirv: 2.0.4
-      vite: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
     transitivePeerDependencies:
       - rollup
       - supports-color
 
-  vite-plugin-lib-inject-css@2.1.1(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
+  vite-plugin-lib-inject-css@2.1.1(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
     dependencies:
       '@ast-grep/napi': 0.22.3
       magic-string: 0.30.10
       picocolors: 1.0.1
-      vite: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+
+  vite-plugin-mock@3.0.2(esbuild@0.20.2)(mockjs@1.1.0)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
+    dependencies:
+      bundle-require: 4.1.0(esbuild@0.20.2)
+      chokidar: 3.6.0
+      connect: 3.7.0
+      debug: 4.3.4
+      esbuild: 0.20.2
+      fast-glob: 3.3.2
+      mockjs: 1.1.0
+      path-to-regexp: 6.2.2
+      picocolors: 1.0.1
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+    transitivePeerDependencies:
+      - supports-color
 
   vite-plugin-mock@3.0.2(esbuild@0.20.2)(mockjs@1.1.0)(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
     dependencies:
@@ -13918,23 +13926,23 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  vite-plugin-vue-devtools@7.2.1(rollup@4.18.0)(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)):
+  vite-plugin-vue-devtools@7.2.1(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)):
     dependencies:
-      '@vue/devtools-core': 7.2.1(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
+      '@vue/devtools-core': 7.2.1(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))
       '@vue/devtools-kit': 7.2.1(vue@3.4.27(typescript@5.4.5))
       '@vue/devtools-shared': 7.2.1
       execa: 8.0.1
       sirv: 2.0.4
-      vite: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
-      vite-plugin-inspect: 0.8.4(rollup@4.18.0)(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
-      vite-plugin-vue-inspector: 5.1.2(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+      vite-plugin-inspect: 0.8.4(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
+      vite-plugin-vue-inspector: 5.1.2(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0))
     transitivePeerDependencies:
       - '@nuxt/kit'
       - rollup
       - supports-color
       - vue
 
-  vite-plugin-vue-inspector@5.1.2(vite@6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
+  vite-plugin-vue-inspector@5.1.2(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)):
     dependencies:
       '@babel/core': 7.24.6
       '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.6)
@@ -13945,7 +13953,7 @@ snapshots:
       '@vue/compiler-dom': 3.4.27
       kolorist: 1.8.0
       magic-string: 0.30.10
-      vite: 6.0.0-alpha.17(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
+      vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2)(terser@5.31.0)
     transitivePeerDependencies:
       - supports-color