chore: update locale

pull/48/MERGE
vben 2024-06-29 15:41:10 +08:00
parent 36a4fcfad2
commit c58aa26dbf
35 changed files with 531 additions and 523 deletions

View File

@ -2,20 +2,20 @@ import type { UserInfo } from '@vben/types';
import type { UserApiType } from '../types';
import { request } from '#/forward';
import { get, post } from '#/forward';
/**
*
*/
async function userLogin(data: UserApiType.LoginParams) {
return request<UserApiType.LoginResult>('/login', { data, method: 'post' });
return post<UserApiType.LoginResult>('/login', data);
}
/**
*
*/
async function getUserInfo() {
return request<UserInfo>('/getUserInfo', { method: 'get' });
return get<UserInfo>('/getUserInfo');
}
export { getUserInfo, userLogin };

View File

@ -81,9 +81,9 @@ function setupRequestInterceptors(client: RequestClient) {
);
}
const { request } = createRequestClient();
const { get, post, request } = createRequestClient();
// 其他配置的请求方法
// const { request: xxxRequest } = createRequest();
export { request };
export { get, post, request };

View File

@ -0,0 +1,235 @@
import type { RouteRecordRaw } from 'vue-router';
import { $t } from '@vben/locales/helper';
import { BasicLayout, IFrameView } from '#/layouts';
const routes: RouteRecordRaw[] = [
{
component: BasicLayout,
meta: {
icon: 'ic:baseline-view-in-ar',
keepAlive: true,
order: 1000,
title: $t('page.demos.title'),
},
name: 'Demos',
path: '/demos',
redirect: '/demos/fallback/403',
children: [
{
meta: {
icon: 'mdi:lightbulb-error-outline',
title: $t('page.demos.fallback.title'),
},
name: 'FallbackLayout',
path: '/fallback',
redirect: '/fallback/403',
children: [
{
name: 'Fallback403',
path: '403',
component: () =>
import('#/views/_essential/fallback/forbidden.vue'),
meta: {
icon: 'mdi:do-not-disturb-alt',
title: '403',
},
},
{
name: 'Fallback404',
path: '404',
component: () =>
import('#/views/_essential/fallback/not-found.vue'),
meta: {
icon: 'mdi:table-off',
title: '404',
},
},
{
name: 'Fallback500',
path: '500',
component: () =>
import('#/views/_essential/fallback/internal-error.vue'),
meta: {
icon: 'mdi:server-network-off',
title: '500',
},
},
{
name: 'FallbackOffline',
path: 'offline',
component: () => import('#/views/_essential/fallback/offline.vue'),
meta: {
icon: 'mdi:offline',
title: $t('fallback.offline'),
},
},
],
},
{
meta: {
icon: 'ic:round-settings-input-composite',
title: $t('page.demos.outside.title'),
},
name: 'Outside',
path: '/outside',
redirect: '/outside/iframe',
children: [
{
name: 'iframe',
path: 'iframe',
meta: {
icon: 'mdi:newspaper-variant-outline',
title: $t('page.demos.outside.embedded'),
},
redirect: '/outside/iframe/vue-document',
children: [
{
name: 'VueDocument',
path: 'vue-document',
component: IFrameView,
meta: {
icon: 'logos:vue',
iframeSrc: 'https://cn.vuejs.org/',
keepAlive: true,
title: 'Vue',
},
},
{
name: 'Tailwindcss',
path: 'tailwindcss',
component: IFrameView,
meta: {
icon: 'devicon:tailwindcss',
iframeSrc: 'https://tailwindcss.com/',
// keepAlive: true,
title: 'Tailwindcss',
},
},
],
},
{
name: 'ExternalLink',
path: 'external-link',
meta: {
icon: 'mdi:newspaper-variant-multiple-outline',
title: $t('page.demos.outside.external-link'),
},
redirect: '/outside/external-link/vite',
children: [
{
name: 'Vite',
path: 'vite',
component: IFrameView,
meta: {
icon: 'logos:vitejs',
link: 'https://vitejs.dev/',
title: 'Vite',
},
},
{
name: 'VueUse',
path: 'vue-use',
component: IFrameView,
meta: {
icon: 'logos:vueuse',
link: 'https://vueuse.org',
title: 'VueUse',
},
},
],
},
],
},
{
meta: {
icon: 'ic:round-menu',
title: $t('page.demos.nested.title'),
},
name: 'Nested',
path: 'nested',
redirect: '/demos/nested/menu1',
children: [
{
name: 'Menu1',
path: 'menu1',
component: () => import('#/views/demos/nested/menu-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,
title: $t('page.demos.nested.menu1'),
},
},
{
name: 'Menu2',
path: 'menu2',
meta: {
icon: 'ic:round-menu',
keepAlive: true,
title: $t('page.demos.nested.menu2'),
},
redirect: '/nested/menu2/menu2-1',
children: [
{
name: 'Menu21',
path: 'menu2-1',
component: () => import('#/views/demos/nested/menu-2-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,
title: $t('page.demos.nested.menu21'),
},
},
],
},
{
name: 'Menu3',
path: 'menu3',
meta: {
icon: 'ic:round-menu',
title: $t('page.demos.nested.menu3'),
},
redirect: '/nested/menu3/menu3-1',
children: [
{
name: 'Menu31',
path: 'menu3-1',
component: () => import('#/views/demos/nested/menu-3-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,
title: $t('page.demos.nested.menu31'),
},
},
{
name: 'Menu32',
path: 'menu3-2',
meta: {
icon: 'ic:round-menu',
title: $t('page.demos.nested.menu32'),
},
redirect: '/nested/menu3/menu3-2/menu3-2-1',
children: [
{
name: 'Menu321',
path: 'menu3-2-1',
component: () =>
import('#/views/demos/nested/menu-3-2-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,
title: $t('page.demos.nested.menu321'),
},
},
],
},
],
},
],
},
],
},
];
export default routes;

View File

@ -1,59 +0,0 @@
import type { RouteRecordRaw } from 'vue-router';
import { $t } from '@vben/locales/helper';
import { BasicLayout } from '#/layouts';
const routes: RouteRecordRaw[] = [
{
component: BasicLayout,
meta: {
icon: 'mdi:lightbulb-error-outline',
title: $t('page.fallback.title'),
},
name: 'FallbackLayout',
path: '/fallback',
redirect: '/fallback/403',
children: [
{
name: 'Fallback403',
path: '403',
component: () => import('#/views/_essential/fallback/forbidden.vue'),
meta: {
icon: 'mdi:do-not-disturb-alt',
title: '403',
},
},
{
name: 'Fallback404',
path: '404',
component: () => import('#/views/_essential/fallback/not-found.vue'),
meta: {
icon: 'mdi:table-off',
title: '404',
},
},
{
name: 'Fallback500',
path: '500',
component: () =>
import('#/views/_essential/fallback/internal-error.vue'),
meta: {
icon: 'mdi:server-network-off',
title: '500',
},
},
{
name: 'FallbackOffline',
path: 'offline',
component: () => import('#/views/_essential/fallback/offline.vue'),
meta: {
icon: 'mdi:offline',
title: $t('fallback.offline'),
},
},
],
},
];
export default routes;

View File

@ -1,98 +0,0 @@
import type { RouteRecordRaw } from 'vue-router';
import { $t } from '@vben/locales/helper';
import { BasicLayout } from '#/layouts';
const routes: RouteRecordRaw[] = [
{
component: BasicLayout,
meta: {
icon: 'ic:round-menu',
keepAlive: true,
order: 1000,
title: $t('page.nested.title'),
},
name: 'Nested',
path: '/nested',
redirect: '/nested/menu1',
children: [
{
name: 'Menu1',
path: 'menu1',
component: () => import('#/views/nested/menu-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,
title: $t('page.nested.menu1'),
},
},
{
name: 'Menu2',
path: 'menu2',
meta: {
icon: 'ic:round-menu',
keepAlive: true,
title: $t('page.nested.menu2'),
},
redirect: '/nested/menu2/menu2-1',
children: [
{
name: 'Menu21',
path: 'menu2-1',
component: () => import('#/views/nested/menu-2-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,
title: $t('page.nested.menu21'),
},
},
],
},
{
name: 'Menu3',
path: 'menu3',
meta: {
icon: 'ic:round-menu',
title: $t('page.nested.menu3'),
},
redirect: '/nested/menu3/menu3-1',
children: [
{
name: 'Menu31',
path: 'menu3-1',
component: () => import('#/views/nested/menu-3-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,
title: $t('page.nested.menu31'),
},
},
{
name: 'Menu32',
path: 'menu3-2',
meta: {
icon: 'ic:round-menu',
title: $t('page.nested.menu32'),
},
redirect: '/nested/menu3/menu3-2/menu3-2-1',
children: [
{
name: 'Menu321',
path: 'menu3-2-1',
component: () => import('#/views/nested/menu-3-2-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,
title: $t('page.nested.menu321'),
},
},
],
},
],
},
],
},
];
export default routes;

View File

@ -1,86 +0,0 @@
import type { RouteRecordRaw } from 'vue-router';
import { $t } from '@vben/locales/helper';
import { BasicLayout, IFrameView } from '#/layouts';
const routes: RouteRecordRaw[] = [
{
component: BasicLayout,
meta: {
icon: 'ic:round-settings-input-composite',
title: $t('page.outside.title'),
},
name: 'Outside',
path: '/outside',
redirect: '/outside/iframe',
children: [
{
name: 'iframe',
path: 'iframe',
meta: {
icon: 'mdi:newspaper-variant-outline',
title: $t('page.outside.embedded'),
},
redirect: '/outside/iframe/vue-document',
children: [
{
name: 'VueDocument',
path: 'vue-document',
component: IFrameView,
meta: {
icon: 'logos:vue',
iframeSrc: 'https://cn.vuejs.org/',
keepAlive: true,
title: 'Vue',
},
},
{
name: 'Tailwindcss',
path: 'tailwindcss',
component: IFrameView,
meta: {
icon: 'devicon:tailwindcss',
iframeSrc: 'https://tailwindcss.com/',
// keepAlive: true,
title: 'Tailwindcss',
},
},
],
},
{
name: 'ExternalLink',
path: 'external-link',
meta: {
icon: 'mdi:newspaper-variant-multiple-outline',
title: $t('page.outside.external-link'),
},
redirect: '/outside/external-link/vite',
children: [
{
name: 'Vite',
path: 'vite',
component: IFrameView,
meta: {
icon: 'logos:vitejs',
link: 'https://vitejs.dev/',
title: 'Vite',
},
},
{
name: 'VueUse',
path: 'vue-use',
component: IFrameView,
meta: {
icon: 'logos:vueuse',
link: 'https://vueuse.org',
title: 'VueUse',
},
},
],
},
],
},
];
export default routes;

View File

@ -10,9 +10,10 @@ const routes: RouteRecordRaw[] = [
{
component: BasicLayout,
meta: {
badgeType: 'dot',
icon: VBEN_LOGO,
order: 9999,
title: 'Vben',
title: 'Vben Admin',
},
name: 'AboutLayout',
path: '/vben-admin',
@ -23,6 +24,7 @@ const routes: RouteRecordRaw[] = [
path: 'about',
component: () => import('#/views/_essential/vben/about/index.vue'),
meta: {
badgeType: 'dot',
icon: 'mdi:creative-commons',
title: $t('page.vben.about'),
},

View File

@ -3,5 +3,5 @@ import { Fallback } from '@vben/universal-ui';
</script>
<template>
<Fallback status="hello" />
<Fallback status="comming-soon" />
</template>

View File

@ -5,5 +5,5 @@ defineOptions({ name: 'Menu1' });
</script>
<template>
<Fallback status="hello" />
<Fallback status="comming-soon" />
</template>

View File

@ -5,5 +5,5 @@ defineOptions({ name: 'Menu21' });
</script>
<template>
<Fallback status="hello" />
<Fallback status="comming-soon" />
</template>

View File

@ -5,5 +5,5 @@ defineOptions({ name: 'Menu31' });
</script>
<template>
<Fallback status="hello" />
<Fallback status="comming-soon" />
</template>

View File

@ -5,5 +5,5 @@ defineOptions({ name: 'Menu321' });
</script>
<template>
<Fallback status="hello" />
<Fallback status="comming-soon" />
</template>

View File

@ -3,8 +3,8 @@ import { defineConfig } from '@vben/vite-config';
export default defineConfig({
application: ({ mode }) => {
return {
compress: true,
compressTypes: ['brotli', 'gzip'],
compress: false,
compressTypes: ['brotli', 'gzip'] as const,
importmap: false,
importmapOptions: {
// 通过 Importmap CDN 方式引入,

View File

@ -34,7 +34,7 @@
"dayjs": "^1.11.11",
"find-up": "^7.0.0",
"nanoid": "^5.0.7",
"pkg-types": "^1.1.1",
"pkg-types": "^1.1.2",
"prettier": "^3.3.2",
"rimraf": "^5.0.7",
"zx": "^7.2.3"

View File

@ -45,7 +45,7 @@
"tailwindcss": "^3.4.3"
},
"dependencies": {
"@iconify/json": "^2.2.223",
"@iconify/json": "^2.2.224",
"@iconify/tailwind": "^1.1.1",
"@tailwindcss/forms": "^0.5.7",
"@tailwindcss/nesting": "0.0.0-insiders.565cd3e",

View File

@ -48,7 +48,7 @@
},
"devDependencies": {
"@changesets/changelog-github": "^0.5.0",
"@changesets/cli": "^2.27.6",
"@changesets/cli": "^2.27.7",
"@ls-lint/ls-lint": "^2.2.3",
"@types/jsdom": "^21.1.7",
"@types/node": "^20.14.9",

View File

@ -49,10 +49,10 @@ const appName = computed(() => preferences.app.name);
<div class="flex-col-center -enter-x mr-20 h-full">
<SloganIcon :alt="appName" class="animate-float h-64 w-2/5" />
<div class="text-1xl mt-6 font-sans text-white lg:text-2xl">
{{ $t('authentication.layout-title') }}
{{ $t('authentication.page-title') }}
</div>
<div class="dark:text-muted-foreground mt-2 text-white/60">
{{ $t('authentication.layout-desc') }}
{{ $t('authentication.page-desc') }}
</div>
</div>
</div>

View File

@ -21,17 +21,17 @@ const menus = computed((): VbenDropdownMenuItem[] => [
{
icon: MdiDockLeft,
key: 'panel-left',
text: $t('layout.align-left'),
text: $t('authentication.layout.align-left'),
},
{
icon: MdiDockBottom,
key: 'panel-center',
text: $t('layout.center'),
text: $t('authentication.layout.center'),
},
{
icon: MdiDockRight,
key: 'panel-right',
text: $t('layout.align-right'),
text: $t('authentication.layout.align-right'),
},
]);

View File

@ -25,7 +25,7 @@ function useContentSpinner() {
};
router.beforeEach((to) => {
if (to.meta.loaded || !enableLoading.value) {
if (to.meta.loaded || !enableLoading.value || to.meta.iframeSrc) {
return true;
}
startTime.value = performance.now();
@ -34,7 +34,7 @@ function useContentSpinner() {
});
router.afterEach((to) => {
if (to.meta.loaded || !enableLoading.value) {
if (to.meta.loaded || !enableLoading.value || to.meta.iframeSrc) {
return true;
}

View File

@ -16,7 +16,7 @@ interface FallbackProps {
/**
* @zh_CN
*/
status?: '403' | '404' | '500' | 'hello' | 'offline';
status?: '403' | '404' | '500' | 'comming-soon' | 'offline';
/**
* @zh_CN
*/

View File

@ -19,14 +19,16 @@ const props = withDefaults(defineProps<Props>(), {
homePath: '/',
image: '',
showBack: true,
status: 'hello',
status: 'comming-soon',
title: '',
});
const Icon403 = defineAsyncComponent(() => import('./icons/icon-403.vue'));
const Icon404 = defineAsyncComponent(() => import('./icons/icon-404.vue'));
const Icon500 = defineAsyncComponent(() => import('./icons/icon-500.vue'));
const IconHello = defineAsyncComponent(() => import('./icons/icon-hello.vue'));
const IconHello = defineAsyncComponent(
() => import('./icons/icon-comming-soon.vue'),
);
const IconOffline = defineAsyncComponent(
() => import('./icons/icon-offline.vue'),
);
@ -49,7 +51,7 @@ const titleText = computed(() => {
case 'offline': {
return $t('fallback.offline-error');
}
case 'hello': {
case 'comming-soon': {
return $t('fallback.coming-soon');
}
default: {
@ -95,7 +97,7 @@ const fallbackIcon = computed(() => {
case 'offline': {
return IconOffline;
}
case 'hello': {
case 'comming-soon': {
return IconHello;
}
default: {

View File

@ -71,7 +71,7 @@ if (props.enableShortcutKey) {
<span
class="text-muted-foreground group-hover:text-foreground hidden text-sm duration-300 md:block"
>
{{ $t('search.search') }}
{{ $t('widgets.search.title') }}
</span>
<span
v-if="enableShortcutKey"
@ -94,7 +94,7 @@ if (props.enableShortcutKey) {
<IcRoundSearch class="mt-1 size-4" />
<input
v-model="keyword"
:placeholder="$t('search.search-navigate')"
:placeholder="$t('widgets.search.search-navigate')"
class="ring-none placeholder:text-muted-foreground w-[80%] rounded-md border border-none bg-transparent p-2 text-sm outline-none ring-0 ring-offset-transparent focus-visible:ring-transparent"
/>
</DialogTitle>
@ -106,16 +106,16 @@ if (props.enableShortcutKey) {
>
<div class="flex items-center">
<IcRoundSubdirectoryArrowLeft class="mr-1" />
{{ $t('search.select') }}
{{ $t('widgets.search.select') }}
</div>
<div class="flex items-center">
<IcRoundArrowUpward class="mr-2" />
<IcRoundArrowDownward class="mr-2" />
{{ $t('search.navigate') }}
{{ $t('widgets.search.navigate') }}
</div>
<div class="flex items-center">
<MdiKeyboardEsc class="mr-1" />
{{ $t('search.close') }}
{{ $t('widgets.search.close') }}
</div>
</DialogFooter>
</DialogContent>

View File

@ -223,7 +223,7 @@ onMounted(() => {
>
<IcRoundSearchOff class="size-12" />
<p class="my-10 text-xs">
{{ $t('search.no-results') }}
{{ $t('widgets.search.no-results') }}
<span class="text-foreground text-sm font-medium">
"{{ keyword }}"
</span>
@ -235,7 +235,7 @@ onMounted(() => {
class="text-muted-foreground text-center"
>
<p class="my-10 text-xs">
{{ $t('search.no-recent') }}
{{ $t('widgets.search.no-recent') }}
</p>
</div>
@ -244,7 +244,7 @@ onMounted(() => {
v-if="searchHistory.length > 0 && !keyword"
class="text-muted-foreground mb-2 text-xs"
>
{{ $t('search.recent') }}
{{ $t('widgets.search.recent') }}
</li>
<li
v-for="(item, index) in uniqueByField(searchResults, 'path')"

View File

@ -13,7 +13,7 @@ const logoVisible = defineModel<boolean>('logoVisible');
<template>
<SwitchItem v-model="tabsVisible">
{{ $t('preferences.tabs-visible') }}
{{ $t('preferences.tabbar.enable') }}
</SwitchItem>
<SwitchItem v-model="logoVisible">
{{ $t('preferences.logo-visible') }}

View File

@ -28,18 +28,18 @@ const stylesItems: SelectListItem[] = [
:disabled="disabled"
:items="stylesItems"
>
{{ $t('preferences.navigation-style') }}
{{ $t('preferences.navigation-menu.style') }}
</ToggleItem>
<SwitchItem
v-model="navigationSplit"
:disabled="disabledNavigationSplit || disabled"
>
{{ $t('preferences.navigation-split') }}
{{ $t('preferences.navigation-menu.split') }}
<template #tip>
{{ $t('preferences.navigation-split-tip') }}
{{ $t('preferences.navigation-menu.split-tip') }}
</template>
</SwitchItem>
<SwitchItem v-model="navigationAccordion" :disabled="disabled">
{{ $t('preferences.navigation-accordion') }}
{{ $t('preferences.navigation-menu.accordion') }}
</SwitchItem>
</template>

View File

@ -15,10 +15,10 @@ const tabbarShowIcon = defineModel<boolean>('tabbarShowIcon');
<template>
<SwitchItem v-model="tabbarEnable" :disabled="disabled">
{{ $t('preferences.tabs-visible') }}
{{ $t('preferences.tabbar.enable') }}
</SwitchItem>
<SwitchItem v-model="tabbarShowIcon" :disabled="!tabbarEnable">
{{ $t('preferences.tabs-icon') }}
{{ $t('preferences.tabbar.icon') }}
</SwitchItem>
<!-- <SwitchItem v-model="sideCollapseShowTitle" :disabled="!tabsVisible">
{{ $t('preferences.collapse-show-title') }}

View File

@ -28,50 +28,50 @@ const inputValue = computed(() => {
function typeView(name: BuiltinThemeType) {
switch (name) {
case 'default': {
return $t('preferences.theme.default');
return $t('preferences.theme.builtin.default');
}
case 'violet': {
return $t('preferences.theme.violet');
return $t('preferences.theme.builtin.violet');
}
case 'pink': {
return $t('preferences.theme.pink');
return $t('preferences.theme.builtin.pink');
}
case 'rose': {
return $t('preferences.theme.rose');
return $t('preferences.theme.builtin.rose');
}
case 'sky-blue': {
return $t('preferences.theme.sky-blue');
return $t('preferences.theme.builtin.sky-blue');
}
case 'deep-blue': {
return $t('preferences.theme.deep-blue');
return $t('preferences.theme.builtin.deep-blue');
}
case 'green': {
return $t('preferences.theme.green');
return $t('preferences.theme.builtin.green');
}
case 'deep-green': {
return $t('preferences.theme.deep-green');
return $t('preferences.theme.builtin.deep-green');
}
case 'orange': {
return $t('preferences.theme.orange');
return $t('preferences.theme.builtin.orange');
}
case 'yellow': {
return $t('preferences.theme.yellow');
return $t('preferences.theme.builtin.yellow');
}
case 'zinc': {
return $t('preferences.theme.zinc');
return $t('preferences.theme.builtin.zinc');
}
case 'neutral': {
return $t('preferences.theme.neutral');
return $t('preferences.theme.builtin.neutral');
}
case 'slate': {
return $t('preferences.theme.slate');
return $t('preferences.theme.builtin.slate');
}
case 'gray': {
return $t('preferences.theme.gray');
return $t('preferences.theme.builtin.gray');
}
case 'custom': {
return $t('preferences.theme.custom');
return $t('preferences.theme.builtin.custom');
}
}
}

View File

@ -18,9 +18,9 @@ const appColorGrayMode = defineModel<boolean>('appColorGrayMode', {
<template>
<SwitchItem v-model="appColorWeakMode">
{{ $t('preferences.weak-mode') }}
{{ $t('preferences.theme.weak-mode') }}
</SwitchItem>
<SwitchItem v-model="appColorGrayMode">
{{ $t('preferences.gray-mode') }}
{{ $t('preferences.theme.gray-mode') }}
</SwitchItem>
</template>

View File

@ -43,10 +43,10 @@ function activeClass(theme: string): string[] {
function nameView(name: string) {
switch (name) {
case 'light': {
return $t('preferences.light');
return $t('preferences.theme.light');
}
case 'dark': {
return $t('preferences.dark');
return $t('preferences.theme.dark');
}
case 'auto': {
return $t('preferences.follow-system');
@ -79,7 +79,7 @@ function nameView(name: string) {
:disabled="modelValue !== 'light'"
class="mt-6"
>
{{ $t('preferences.dark-menu') }}
{{ $t('preferences.theme.dark-menu') }}
</SwitchItem>
</div>
</template>

View File

@ -233,7 +233,7 @@ async function handleReset() {
:color-primary-presets="colorPrimaryPresets"
/>
</Block> -->
<Block :title="$t('preferences.theme.builtin')">
<Block :title="$t('preferences.theme.builtin.title')">
<BuiltinTheme
v-model="themeBuiltinType"
v-model:theme-color-primary="themeColorPrimary"
@ -275,7 +275,7 @@ async function handleReset() {
/>
</Block>
<Block :title="$t('preferences.navigation-menu')">
<Block :title="$t('preferences.navigation-menu.title')">
<Navigation
v-model:navigation-accordion="navigationAccordion"
v-model:navigation-split="navigationSplit"
@ -298,7 +298,7 @@ async function handleReset() {
/>
</Block>
<Block :title="$t('preferences.tabs')">
<Block :title="$t('preferences.tabbar.title')">
<Tabbar
v-model:tabbar-enable="tabbarEnable"
v-model:tabbar-show-icon="tabbarShowIcon"

View File

@ -39,12 +39,12 @@ const PRESETS = [
{
icon: IcRoundWbSunny,
name: 'light',
title: $t('preferences.light'),
title: $t('preferences.theme.light'),
},
{
icon: MdiMoonAndStars,
name: 'dark',
title: $t('preferences.dark'),
title: $t('preferences.theme.dark'),
},
{
icon: IcRoundMotionPhotosAuto,

View File

@ -1,3 +1,35 @@
page:
demos:
title: Demos
nested:
title: Nested Menu
menu1: Menu 1
menu2: Menu 2
menu21: Menu 2-1
menu3: Menu 3
menu31: Menu 3-1
menu32: Menu 3-2
menu321: Menu 3-2-1
outside:
title: External Page
embedded: embedded Page
external-link: External Link
fallback:
title: Exception Page
essentials:
login: Login
register: Register
code-login: Code Login
qrcode-login: Qrcode Login
forget-password: Forget Password
dashboard:
title: Dashboard
analytics: Analytics
workspace: Workspace
vben:
about: About
document: Document
common:
back: Back
back-to-home: Back To Home
@ -6,15 +38,9 @@ common:
prompt: Prompt
cancel: Cancel
confirm: Comfirm
search: Search
not-data: No data
refresh: Refresh
layout:
center: Align Center
align-left: Align Left
align-right: Align Right
fallback:
page-not-found: Oops! Page Not Found
page-not-found-desc: Sorry, we couldn't find the page you were looking for.
@ -36,33 +62,32 @@ widgets:
notifications: Notifications
make-all-as-read: Make all as read
clear-notifications: Clear
search:
search: Search
search-navigate: Search Navigate
select: To select
navigate: To navigate
close: To close
no-results: No results for
no-recent: No recent searches
recent: Recent
search:
title: Search
search-navigate: Search Navigate
select: To select
navigate: To navigate
close: To close
no-results: No results for
no-recent: No recent searches
recent: Recent
authentication:
layout-title: Plug-and-play backend system
layout-desc: Efficient, versatile frontend template
welcome-back: Welcome Back
page-title: Plug-and-play backend system
page-desc: Efficient, versatile frontend template
login-success: Login successful
login-success-desc: Welcome back
welcome-back: Welcome Back
login-subtitle: Enter your account details to manage your projects
username: Username
password: Password
username-tip: Username is required
password-tip: Password is required
account-tip: Don't have an account yet?
remember-me: Remember Me
create-an-account: Create an account
create-account: Create account
already-account: Already have an account?
remember-me: Remember Me
account-tip: Don't have an account yet?
sign-up: Sign Up
sign-up-subtitle: Make managing your applications simple and fun
comfirm-password: Comfirm Password
@ -90,51 +115,21 @@ authentication:
send-code: Get Security code
send-text: "Reacquire in {0}s"
third-party-login: Or continue with
page:
essentials:
login: Login
register: Register
code-login: Code Login
qrcode-login: Qrcode Login
forget-password: Forget Password
dashboard:
title: Dashboard
analytics: Analytics
workspace: Workspace
vben:
about: About
document: Document
outside:
title: External Page
embedded: embedded Page
external-link: External Link
nested:
title: Nested Menu
menu1: Menu 1
menu2: Menu 2
menu21: Menu 2-1
menu3: Menu 3
menu31: Menu 3-1
menu32: Menu 3-2
menu321: Menu 3-2-1
fallback:
title: Exception Page
layout:
center: Align Center
align-left: Align Left
align-right: Align Right
preferences:
title: Preferences
subtitle: Customize Preferences & Preview in Real Time
reset-tip: The data has changed, click to reset
ai-assistant: Ai Assistant
# appearance
appearance: Appearance
theme-color: Theme Color
# layout
layout: Layout
general: General
content: Content
other: Other
light: Light
dark: Dark
dark-menu: Semi Dark Menu
wide: Fluid
compact: Fixed Width
follow-system: Follow System
@ -151,29 +146,34 @@ preferences:
full-content-tip: Display only the main content, no menus
weak-mode: Color Weak Mode
gray-mode: Gray Mode
language: Language
dynamic-title: Dynamic Title
normal: Normal
plain: Plain
rounded: Rounded
collapse: Collpase Menu
collapse-show-title: Display menu name
navigation-menu: Navigation Menu
navigation-style: Navigation menu style
navigation-split: Navigation Menu Separation
navigation-accordion: Sidebar Navigation Menu Accordion mode
navigation-split-tip: When enabled, the sidebar shows the top bar's submenu
interface-control: Interface Layout Control
copy: Copy Preferences
copy-success: Copy successful. Please replace in `src/preferences.ts` of the app
reset-success: Preferences reset successfully
sidebar: Sidebar
side-visible: Display Sidebar
tabs-visible: Display Tab Bar
tabs: Tabs
tabs-icon: Display Tabbar Icon
mode: Mode
logo-visible: Display Logo
# general
general: General
language: Language
dynamic-title: Dynamic Title
ai-assistant: Ai Assistant
tabbar:
title: Tabbar
enable: Enable Tab Bar
icon: Display Tabbar Icon
navigation-menu:
title: Navigation Menu
style: Navigation menu style
split: Navigation Menu Separation
accordion: Sidebar Navigation Menu Accordion mode
split-tip: When enabled, the sidebar shows the top bar's submenu
breadcrumb:
title: Breadcrumb
home: Display the home button
@ -189,23 +189,29 @@ preferences:
progress: Page transition progress
theme:
title: Theme
builtin: Built-in
radius: Radius
default: Default
violet: Violet
pink: Pink
rose: Rose
sky-blue: Sky Blue
deep-blue: Deep Blue
green: Green
deep-green: Deep Green
orange: Orange
yellow: Yellow
zinc: Zinc
neutral: Neutral
slate: Slate
gray: Gray
custom: Custom
light: Light
dark: Dark
dark-menu: Semi Dark Menu
weak-mode: Color Weak Mode
gray-mode: Gray Mode
builtin:
title: Built-in
default: Default
violet: Violet
pink: Pink
rose: Rose
sky-blue: Sky Blue
deep-blue: Deep Blue
green: Green
deep-green: Deep Green
orange: Orange
yellow: Yellow
zinc: Zinc
neutral: Neutral
slate: Slate
gray: Gray
custom: Custom
header:
title: Header
visible: Display Header

View File

@ -1,3 +1,35 @@
page:
demos:
title: 演示
nested:
title: 嵌套菜单
menu1: 菜单 1
menu2: 菜单 2
menu21: 菜单 2-1
menu3: 菜单 3
menu31: 菜单 3-1
menu32: 菜单 3-2
menu321: 菜单 3-2-1
outside:
title: 外部页面
embedded: 内嵌
external-link: 外链
fallback:
title: 异常页面
essentials:
login: 登陆
register: 注册
code-login: 验证码登陆
qrcode-login: 二维码登陆
forget-password: 忘记密码
dashboard:
title: 概览
analytics: 分析页
workspace: 工作台
vben:
about: 关于
document: 文档
common:
back: 返回
back-to-home: 返回首页
@ -9,11 +41,6 @@ common:
not-data: 暂无数据
refresh: 刷新
layout:
center: 居中
align-left: 居左
align-right: 居右
fallback:
page-not-found: 哎呀!未找到页面
page-not-found-desc: 抱歉,我们无法找到您要找的页面。
@ -35,23 +62,22 @@ widgets:
notifications: 通知
make-all-as-read: 全部标记为已读
clear-notifications: 清空
search:
search: 搜索
search-navigate: 搜索导航菜单
select: 选择
navigate: 导航
close: 关闭
no-results: 未找到搜索结果
no-recent: 没有搜索历史
recent: 搜索历史
search:
title: 搜索
search-navigate: 搜索导航菜单
select: 选择
navigate: 导航
close: 关闭
no-results: 未找到搜索结果
no-recent: 没有搜索历史
recent: 搜索历史
authentication:
layout-title: 开箱即用的大型中后台管理系统
layout-desc: 工程化、高性能、跨组件库的前端模版
welcome-back: 欢迎回来
page-title: 开箱即用的大型中后台管理系统
page-desc: 工程化、高性能、跨组件库的前端模版
login-success: 登录成功
login-success-desc: 欢迎回来
welcome-back: 欢迎回来
login-subtitle: 请输入您的帐户信息以开始管理您的项目
username: 账号
password: 密码
@ -89,57 +115,26 @@ authentication:
send-code: 获取验证码
send-text: "{0}秒后重新获取"
third-party-login: 其他登录方式
page:
essentials:
login: 登陆
register: 注册
code-login: 验证码登陆
qrcode-login: 二维码登陆
forget-password: 忘记密码
dashboard:
title: 概览
analytics: 分析页
workspace: 工作台
vben:
about: 关于
document: 文档
outside:
title: 外部页面
embedded: 内嵌
external-link: 外链
nested:
title: 嵌套菜单
menu1: 菜单 1
menu2: 菜单 2
menu21: 菜单 2-1
menu3: 菜单 3
menu31: 菜单 3-1
menu32: 菜单 3-2
menu321: 菜单 3-2-1
fallback:
title: 异常页面
layout:
center: 居中
align-left: 居左
align-right: 居右
preferences:
title: 偏好设置
subtitle: 自定义偏好设置 & 实时预览
reset-tip: 数据有变化,点击可进行重置
# appearance
appearance: 外观
theme-color: 主题色
# layout
layout: 布局
general: 通用
content: 内容
other: 其它
light: 浅色
dark: 深色
dark-menu: 深色菜单
language: 语言
dynamic-title: 动态标题
ai-assistant: Ai 助手
collapse: 折叠菜单
collapse-show-title: 显示菜单名
wide: 流式
compact: 定宽
follow-system: 跟随系统
collapse: 折叠菜单
collapse-show-title: 显示菜单名
vertical: 垂直
vertical-tip: 侧边垂直菜单模式
horizontal: 水平
@ -151,14 +146,6 @@ preferences:
split-menu: 切割菜单
full-content: 内容全屏
full-content-tip: 不显示任何菜单,只显示内容主体
follow-system: 跟随系统
weak-mode: 色弱模式
gray-mode: 灰色模式
navigation-menu: 导航菜单
navigation-style: 导航菜单风格
navigation-accordion: 侧边导航菜单手风琴模式
navigation-split: 导航菜单分离
navigation-split-tip: 开启时,侧边栏显示顶栏对应菜单的子菜单
interface-control: 界面布局控制
normal: 默认
plain: 朴素
@ -168,11 +155,24 @@ preferences:
reset-success: 重置偏好设置成功
sidebar: 侧边栏
side-visible: 显示侧边栏
tabs-visible: 显示标签栏
tabs: 标签栏
tabs-icon: 显示标签栏图标
mode: 模式
logo-visible: 显示 Logo
# general
general: 通用
language: 语言
dynamic-title: 动态标题
ai-assistant: Ai 助手
tabbar:
title: 标签栏
enable: 启用标签栏
icon: 显示标签栏图标
navigation-menu:
title: 导航菜单
style: 导航菜单风格
accordion: 侧边导航菜单手风琴模式
split: 导航菜单分离
split-tip: 开启时,侧边栏显示顶栏对应菜单的子菜单
breadcrumb:
title: 面包屑导航
enable: 开启面包屑导航
@ -188,23 +188,29 @@ preferences:
progress: 页面切换进度条
theme:
title: 主题
builtin: 内置主题
radius: 圆角
default: 默认
violet: 紫罗兰
pink: 樱花粉
rose: 玫瑰红
sky-blue: 天蓝色
deep-blue: 深蓝色
green: 浅绿色
deep-green: 深绿色
orange: 橙黄色
yellow: 柠檬黄
zinc: 锌色灰
neutral: 中性色
slate: 石板灰
gray: 中灰色
custom: 自定义
light: 浅色
dark: 深色
dark-menu: 深色菜单
weak-mode: 色弱模式
gray-mode: 灰色模式
builtin:
title: 内置主题
default: 默认
violet: 紫罗兰
pink: 樱花粉
rose: 玫瑰红
sky-blue: 天蓝色
deep-blue: 深蓝色
green: 浅绿色
deep-green: 深绿色
orange: 橙黄色
yellow: 柠檬黄
zinc: 锌色灰
neutral: 中性色
slate: 石板灰
gray: 中灰色
custom: 自定义
header:
title: 顶栏
mode-static: 静止

View File

@ -18,8 +18,8 @@ importers:
specifier: ^0.5.0
version: 0.5.0(encoding@0.1.13)
'@changesets/cli':
specifier: ^2.27.6
version: 2.27.6
specifier: ^2.27.7
version: 2.27.7
'@ls-lint/ls-lint':
specifier: ^2.2.3
version: 2.2.3
@ -342,8 +342,8 @@ importers:
specifier: ^5.0.7
version: 5.0.7
pkg-types:
specifier: ^1.1.1
version: 1.1.1
specifier: ^1.1.2
version: 1.1.2
prettier:
specifier: ^3.3.2
version: 3.3.2
@ -357,8 +357,8 @@ importers:
internal/tailwind-config:
dependencies:
'@iconify/json':
specifier: ^2.2.223
version: 2.2.223
specifier: ^2.2.224
version: 2.2.224
'@iconify/tailwind':
specifier: ^1.1.1
version: 1.1.1
@ -1775,11 +1775,11 @@ packages:
resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==}
engines: {node: '>=6.9.0'}
'@changesets/apply-release-plan@7.0.3':
resolution: {integrity: sha512-klL6LCdmfbEe9oyfLxnidIf/stFXmrbFO/3gT5LU5pcyoZytzJe4gWpTBx3BPmyNPl16dZ1xrkcW7b98e3tYkA==}
'@changesets/apply-release-plan@7.0.4':
resolution: {integrity: sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==}
'@changesets/assemble-release-plan@6.0.2':
resolution: {integrity: sha512-n9/Tdq+ze+iUtjmq0mZO3pEhJTKkku9hUxtUadW30jlN7kONqJG3O6ALeXrmc6gsi/nvoCuKjqEJ68Hk8RbMTQ==}
'@changesets/assemble-release-plan@6.0.3':
resolution: {integrity: sha512-bLNh9/Lgl1VwkjWZTq8JmRqH+hj7/Yzfz0jsQ/zJJ+FTmVqmqPj3szeKOri8O/hEM8JmHW019vh2gTO9iq5Cuw==}
'@changesets/changelog-git@0.2.0':
resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==}
@ -1787,24 +1787,24 @@ packages:
'@changesets/changelog-github@0.5.0':
resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==}
'@changesets/cli@2.27.6':
resolution: {integrity: sha512-PB7KS5JkCQ4WSXlnfThn8CXAHVwYxFdZvYTimhi12fls/tzj9iimUhKsYwkrKSbw1AiVlGCZtihj5Wkt6siIjA==}
'@changesets/cli@2.27.7':
resolution: {integrity: sha512-6lr8JltiiXPIjDeYg4iM2MeePP6VN/JkmqBsVA5XRiy01hGS3y629LtSDvKcycj/w/5Eur1rEwby/MjcYS+e2A==}
hasBin: true
'@changesets/config@3.0.1':
resolution: {integrity: sha512-nCr8pOemUjvGJ8aUu8TYVjqnUL+++bFOQHBVmtNbLvKzIDkN/uiP/Z4RKmr7NNaiujIURHySDEGFPftR4GbTUA==}
'@changesets/config@3.0.2':
resolution: {integrity: sha512-cdEhS4t8woKCX2M8AotcV2BOWnBp09sqICxKapgLHf9m5KdENpWjyrFNMjkLqGJtUys9U+w93OxWT0czorVDfw==}
'@changesets/errors@0.2.0':
resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==}
'@changesets/get-dependents-graph@2.1.0':
resolution: {integrity: sha512-QOt6pQq9RVXKGHPVvyKimJDYJumx7p4DO5MO9AhRJYgAPgv0emhNqAqqysSVKHBm4sxKlGN4S1zXOIb5yCFuhQ==}
'@changesets/get-dependents-graph@2.1.1':
resolution: {integrity: sha512-LRFjjvigBSzfnPU2n/AhFsuWR5DK++1x47aq6qZ8dzYsPtS/I5mNhIGAS68IAxh1xjO9BTtz55FwefhANZ+FCA==}
'@changesets/get-github-info@0.6.0':
resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==}
'@changesets/get-release-plan@4.0.2':
resolution: {integrity: sha512-rOalz7nMuMV2vyeP7KBeAhqEB7FM2GFPO5RQSoOoUKKH9L6wW3QyPA2K+/rG9kBrWl2HckPVES73/AuwPvbH3w==}
'@changesets/get-release-plan@4.0.3':
resolution: {integrity: sha512-6PLgvOIwTSdJPTtpdcr3sLtGatT+Jr22+cQwEBJBy6wP0rjB4yJ9lv583J9fVpn1bfQlBkDa8JxbS2g/n9lIyA==}
'@changesets/get-version-range-type@0.4.0':
resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==}
@ -2863,8 +2863,8 @@ packages:
resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
deprecated: Use @eslint/object-schema instead
'@iconify/json@2.2.223':
resolution: {integrity: sha512-SKQnMyKVehUEYrKDEu/MIochMNFLAdNNGQOez0l6OEyVD6IDyM1vc8vGQFFFXcjHHadaRemxBScWqlimPuYyGA==}
'@iconify/json@2.2.224':
resolution: {integrity: sha512-VK7nFjtxUeyp+K311SbbeU8cxlZifiUWh0yYaXks4Sj0DTzubKTDMzRCuTcO/QdEQ/0qwDE8m2nn5+wQjS66gQ==}
'@iconify/tailwind@1.1.1':
resolution: {integrity: sha512-4mmA//qjZigv7D4KlqcVSYTqfRIJzyts2/lSCAJfCL0rVMIE76+ifJnaE5jxCo1+nYGBF8FsFo0qFOs+sX4EnA==}
@ -6726,8 +6726,8 @@ packages:
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines: {node: '>=8'}
pkg-types@1.1.1:
resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==}
pkg-types@1.1.2:
resolution: {integrity: sha512-VEGf1he2DR5yowYRl0XJhWJq5ktm9gYIsH+y8sNJpHlxch7JPDaufgrsl4vYjd9hMUY8QVjoNncKbow9I7exyA==}
please-upgrade-node@3.2.0:
resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==}
@ -9913,10 +9913,10 @@ snapshots:
'@babel/helper-validator-identifier': 7.24.7
to-fast-properties: 2.0.0
'@changesets/apply-release-plan@7.0.3':
'@changesets/apply-release-plan@7.0.4':
dependencies:
'@babel/runtime': 7.24.7
'@changesets/config': 3.0.1
'@changesets/config': 3.0.2
'@changesets/get-version-range-type': 0.4.0
'@changesets/git': 3.0.0
'@changesets/should-skip-package': 0.1.0
@ -9930,11 +9930,11 @@ snapshots:
resolve-from: 5.0.0
semver: 7.6.2
'@changesets/assemble-release-plan@6.0.2':
'@changesets/assemble-release-plan@6.0.3':
dependencies:
'@babel/runtime': 7.24.7
'@changesets/errors': 0.2.0
'@changesets/get-dependents-graph': 2.1.0
'@changesets/get-dependents-graph': 2.1.1
'@changesets/should-skip-package': 0.1.0
'@changesets/types': 6.0.0
'@manypkg/get-packages': 1.1.3
@ -9952,16 +9952,16 @@ snapshots:
transitivePeerDependencies:
- encoding
'@changesets/cli@2.27.6':
'@changesets/cli@2.27.7':
dependencies:
'@babel/runtime': 7.24.7
'@changesets/apply-release-plan': 7.0.3
'@changesets/assemble-release-plan': 6.0.2
'@changesets/apply-release-plan': 7.0.4
'@changesets/assemble-release-plan': 6.0.3
'@changesets/changelog-git': 0.2.0
'@changesets/config': 3.0.1
'@changesets/config': 3.0.2
'@changesets/errors': 0.2.0
'@changesets/get-dependents-graph': 2.1.0
'@changesets/get-release-plan': 4.0.2
'@changesets/get-dependents-graph': 2.1.1
'@changesets/get-release-plan': 4.0.3
'@changesets/git': 3.0.0
'@changesets/logger': 0.1.0
'@changesets/pre': 2.0.0
@ -9987,10 +9987,10 @@ snapshots:
spawndamnit: 2.0.0
term-size: 2.2.1
'@changesets/config@3.0.1':
'@changesets/config@3.0.2':
dependencies:
'@changesets/errors': 0.2.0
'@changesets/get-dependents-graph': 2.1.0
'@changesets/get-dependents-graph': 2.1.1
'@changesets/logger': 0.1.0
'@changesets/types': 6.0.0
'@manypkg/get-packages': 1.1.3
@ -10001,7 +10001,7 @@ snapshots:
dependencies:
extendable-error: 0.1.7
'@changesets/get-dependents-graph@2.1.0':
'@changesets/get-dependents-graph@2.1.1':
dependencies:
'@changesets/types': 6.0.0
'@manypkg/get-packages': 1.1.3
@ -10016,11 +10016,11 @@ snapshots:
transitivePeerDependencies:
- encoding
'@changesets/get-release-plan@4.0.2':
'@changesets/get-release-plan@4.0.3':
dependencies:
'@babel/runtime': 7.24.7
'@changesets/assemble-release-plan': 6.0.2
'@changesets/config': 3.0.1
'@changesets/assemble-release-plan': 6.0.3
'@changesets/config': 3.0.2
'@changesets/pre': 2.0.0
'@changesets/read': 0.6.0
'@changesets/types': 6.0.0
@ -10947,7 +10947,7 @@ snapshots:
'@humanwhocodes/object-schema@2.0.3': {}
'@iconify/json@2.2.223':
'@iconify/json@2.2.224':
dependencies:
'@iconify/types': 2.0.0
pathe: 1.1.2
@ -14338,7 +14338,7 @@ snapshots:
esbuild: 0.20.2
jiti: 1.21.6
pathe: 1.1.2
pkg-types: 1.1.1
pkg-types: 1.1.2
tsx: 4.16.0
transitivePeerDependencies:
- supports-color
@ -14973,7 +14973,7 @@ snapshots:
mlly: 1.7.1
mri: 1.2.0
pathe: 1.1.2
pkg-types: 1.1.1
pkg-types: 1.1.2
postcss: 8.4.39
postcss-nested: 6.0.1(postcss@8.4.39)
semver: 7.6.2
@ -14986,7 +14986,7 @@ snapshots:
dependencies:
acorn: 8.12.0
pathe: 1.1.2
pkg-types: 1.1.1
pkg-types: 1.1.2
ufo: 1.5.3
mockjs@1.1.0:
@ -15330,7 +15330,7 @@ snapshots:
dependencies:
find-up: 4.1.0
pkg-types@1.1.1:
pkg-types@1.1.2:
dependencies:
confbox: 0.1.7
mlly: 1.7.1
@ -16922,7 +16922,7 @@ snapshots:
mkdist: 1.5.1(sass@1.77.6)(typescript@5.5.2)(vue-tsc@2.0.24(typescript@5.5.2))
mlly: 1.7.1
pathe: 1.1.2
pkg-types: 1.1.1
pkg-types: 1.1.2
pretty-bytes: 6.1.1
rollup: 3.29.4
rollup-plugin-dts: 6.1.1(rollup@3.29.4)(typescript@5.5.2)