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 type { UserApiType } from '../types';
import { request } from '#/forward'; import { get, post } from '#/forward';
/** /**
* *
*/ */
async function userLogin(data: UserApiType.LoginParams) { async function userLogin(data: UserApiType.LoginParams) {
return request<UserApiType.LoginResult>('/login', { data, method: 'post' }); return post<UserApiType.LoginResult>('/login', data);
} }
/** /**
* *
*/ */
async function getUserInfo() { async function getUserInfo() {
return request<UserInfo>('/getUserInfo', { method: 'get' }); return get<UserInfo>('/getUserInfo');
} }
export { getUserInfo, userLogin }; 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(); // 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, component: BasicLayout,
meta: { meta: {
badgeType: 'dot',
icon: VBEN_LOGO, icon: VBEN_LOGO,
order: 9999, order: 9999,
title: 'Vben', title: 'Vben Admin',
}, },
name: 'AboutLayout', name: 'AboutLayout',
path: '/vben-admin', path: '/vben-admin',
@ -23,6 +24,7 @@ const routes: RouteRecordRaw[] = [
path: 'about', path: 'about',
component: () => import('#/views/_essential/vben/about/index.vue'), component: () => import('#/views/_essential/vben/about/index.vue'),
meta: { meta: {
badgeType: 'dot',
icon: 'mdi:creative-commons', icon: 'mdi:creative-commons',
title: $t('page.vben.about'), title: $t('page.vben.about'),
}, },

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -48,7 +48,7 @@
}, },
"devDependencies": { "devDependencies": {
"@changesets/changelog-github": "^0.5.0", "@changesets/changelog-github": "^0.5.0",
"@changesets/cli": "^2.27.6", "@changesets/cli": "^2.27.7",
"@ls-lint/ls-lint": "^2.2.3", "@ls-lint/ls-lint": "^2.2.3",
"@types/jsdom": "^21.1.7", "@types/jsdom": "^21.1.7",
"@types/node": "^20.14.9", "@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"> <div class="flex-col-center -enter-x mr-20 h-full">
<SloganIcon :alt="appName" class="animate-float h-64 w-2/5" /> <SloganIcon :alt="appName" class="animate-float h-64 w-2/5" />
<div class="text-1xl mt-6 font-sans text-white lg:text-2xl"> <div class="text-1xl mt-6 font-sans text-white lg:text-2xl">
{{ $t('authentication.layout-title') }} {{ $t('authentication.page-title') }}
</div> </div>
<div class="dark:text-muted-foreground mt-2 text-white/60"> <div class="dark:text-muted-foreground mt-2 text-white/60">
{{ $t('authentication.layout-desc') }} {{ $t('authentication.page-desc') }}
</div> </div>
</div> </div>
</div> </div>

View File

@ -21,17 +21,17 @@ const menus = computed((): VbenDropdownMenuItem[] => [
{ {
icon: MdiDockLeft, icon: MdiDockLeft,
key: 'panel-left', key: 'panel-left',
text: $t('layout.align-left'), text: $t('authentication.layout.align-left'),
}, },
{ {
icon: MdiDockBottom, icon: MdiDockBottom,
key: 'panel-center', key: 'panel-center',
text: $t('layout.center'), text: $t('authentication.layout.center'),
}, },
{ {
icon: MdiDockRight, icon: MdiDockRight,
key: 'panel-right', 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) => { router.beforeEach((to) => {
if (to.meta.loaded || !enableLoading.value) { if (to.meta.loaded || !enableLoading.value || to.meta.iframeSrc) {
return true; return true;
} }
startTime.value = performance.now(); startTime.value = performance.now();
@ -34,7 +34,7 @@ function useContentSpinner() {
}); });
router.afterEach((to) => { router.afterEach((to) => {
if (to.meta.loaded || !enableLoading.value) { if (to.meta.loaded || !enableLoading.value || to.meta.iframeSrc) {
return true; return true;
} }

View File

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

View File

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

View File

@ -71,7 +71,7 @@ if (props.enableShortcutKey) {
<span <span
class="text-muted-foreground group-hover:text-foreground hidden text-sm duration-300 md:block" class="text-muted-foreground group-hover:text-foreground hidden text-sm duration-300 md:block"
> >
{{ $t('search.search') }} {{ $t('widgets.search.title') }}
</span> </span>
<span <span
v-if="enableShortcutKey" v-if="enableShortcutKey"
@ -94,7 +94,7 @@ if (props.enableShortcutKey) {
<IcRoundSearch class="mt-1 size-4" /> <IcRoundSearch class="mt-1 size-4" />
<input <input
v-model="keyword" 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" 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> </DialogTitle>
@ -106,16 +106,16 @@ if (props.enableShortcutKey) {
> >
<div class="flex items-center"> <div class="flex items-center">
<IcRoundSubdirectoryArrowLeft class="mr-1" /> <IcRoundSubdirectoryArrowLeft class="mr-1" />
{{ $t('search.select') }} {{ $t('widgets.search.select') }}
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<IcRoundArrowUpward class="mr-2" /> <IcRoundArrowUpward class="mr-2" />
<IcRoundArrowDownward class="mr-2" /> <IcRoundArrowDownward class="mr-2" />
{{ $t('search.navigate') }} {{ $t('widgets.search.navigate') }}
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<MdiKeyboardEsc class="mr-1" /> <MdiKeyboardEsc class="mr-1" />
{{ $t('search.close') }} {{ $t('widgets.search.close') }}
</div> </div>
</DialogFooter> </DialogFooter>
</DialogContent> </DialogContent>

View File

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

View File

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

View File

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

View File

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

View File

@ -28,50 +28,50 @@ const inputValue = computed(() => {
function typeView(name: BuiltinThemeType) { function typeView(name: BuiltinThemeType) {
switch (name) { switch (name) {
case 'default': { case 'default': {
return $t('preferences.theme.default'); return $t('preferences.theme.builtin.default');
} }
case 'violet': { case 'violet': {
return $t('preferences.theme.violet'); return $t('preferences.theme.builtin.violet');
} }
case 'pink': { case 'pink': {
return $t('preferences.theme.pink'); return $t('preferences.theme.builtin.pink');
} }
case 'rose': { case 'rose': {
return $t('preferences.theme.rose'); return $t('preferences.theme.builtin.rose');
} }
case 'sky-blue': { case 'sky-blue': {
return $t('preferences.theme.sky-blue'); return $t('preferences.theme.builtin.sky-blue');
} }
case 'deep-blue': { case 'deep-blue': {
return $t('preferences.theme.deep-blue'); return $t('preferences.theme.builtin.deep-blue');
} }
case 'green': { case 'green': {
return $t('preferences.theme.green'); return $t('preferences.theme.builtin.green');
} }
case 'deep-green': { case 'deep-green': {
return $t('preferences.theme.deep-green'); return $t('preferences.theme.builtin.deep-green');
} }
case 'orange': { case 'orange': {
return $t('preferences.theme.orange'); return $t('preferences.theme.builtin.orange');
} }
case 'yellow': { case 'yellow': {
return $t('preferences.theme.yellow'); return $t('preferences.theme.builtin.yellow');
} }
case 'zinc': { case 'zinc': {
return $t('preferences.theme.zinc'); return $t('preferences.theme.builtin.zinc');
} }
case 'neutral': { case 'neutral': {
return $t('preferences.theme.neutral'); return $t('preferences.theme.builtin.neutral');
} }
case 'slate': { case 'slate': {
return $t('preferences.theme.slate'); return $t('preferences.theme.builtin.slate');
} }
case 'gray': { case 'gray': {
return $t('preferences.theme.gray'); return $t('preferences.theme.builtin.gray');
} }
case 'custom': { 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> <template>
<SwitchItem v-model="appColorWeakMode"> <SwitchItem v-model="appColorWeakMode">
{{ $t('preferences.weak-mode') }} {{ $t('preferences.theme.weak-mode') }}
</SwitchItem> </SwitchItem>
<SwitchItem v-model="appColorGrayMode"> <SwitchItem v-model="appColorGrayMode">
{{ $t('preferences.gray-mode') }} {{ $t('preferences.theme.gray-mode') }}
</SwitchItem> </SwitchItem>
</template> </template>

View File

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

View File

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

View File

@ -39,12 +39,12 @@ const PRESETS = [
{ {
icon: IcRoundWbSunny, icon: IcRoundWbSunny,
name: 'light', name: 'light',
title: $t('preferences.light'), title: $t('preferences.theme.light'),
}, },
{ {
icon: MdiMoonAndStars, icon: MdiMoonAndStars,
name: 'dark', name: 'dark',
title: $t('preferences.dark'), title: $t('preferences.theme.dark'),
}, },
{ {
icon: IcRoundMotionPhotosAuto, 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: common:
back: Back back: Back
back-to-home: Back To Home back-to-home: Back To Home
@ -6,15 +38,9 @@ common:
prompt: Prompt prompt: Prompt
cancel: Cancel cancel: Cancel
confirm: Comfirm confirm: Comfirm
search: Search
not-data: No data not-data: No data
refresh: Refresh refresh: Refresh
layout:
center: Align Center
align-left: Align Left
align-right: Align Right
fallback: fallback:
page-not-found: Oops! Page Not Found page-not-found: Oops! Page Not Found
page-not-found-desc: Sorry, we couldn't find the page you were looking for. page-not-found-desc: Sorry, we couldn't find the page you were looking for.
@ -36,33 +62,32 @@ widgets:
notifications: Notifications notifications: Notifications
make-all-as-read: Make all as read make-all-as-read: Make all as read
clear-notifications: Clear clear-notifications: Clear
search:
search: title: Search
search: Search search-navigate: Search Navigate
search-navigate: Search Navigate select: To select
select: To select navigate: To navigate
navigate: To navigate close: To close
close: To close no-results: No results for
no-results: No results for no-recent: No recent searches
no-recent: No recent searches recent: Recent
recent: Recent
authentication: authentication:
layout-title: Plug-and-play backend system welcome-back: Welcome Back
layout-desc: Efficient, versatile frontend template page-title: Plug-and-play backend system
page-desc: Efficient, versatile frontend template
login-success: Login successful login-success: Login successful
login-success-desc: Welcome back login-success-desc: Welcome back
welcome-back: Welcome Back
login-subtitle: Enter your account details to manage your projects login-subtitle: Enter your account details to manage your projects
username: Username username: Username
password: Password password: Password
username-tip: Username is required username-tip: Username is required
password-tip: Password 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-an-account: Create an account
create-account: Create account create-account: Create account
already-account: Already have an 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: Sign Up
sign-up-subtitle: Make managing your applications simple and fun sign-up-subtitle: Make managing your applications simple and fun
comfirm-password: Comfirm Password comfirm-password: Comfirm Password
@ -90,51 +115,21 @@ authentication:
send-code: Get Security code send-code: Get Security code
send-text: "Reacquire in {0}s" send-text: "Reacquire in {0}s"
third-party-login: Or continue with third-party-login: Or continue with
layout:
page: center: Align Center
essentials: align-left: Align Left
login: Login align-right: Align Right
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
preferences: preferences:
title: Preferences title: Preferences
subtitle: Customize Preferences & Preview in Real Time subtitle: Customize Preferences & Preview in Real Time
reset-tip: The data has changed, click to reset reset-tip: The data has changed, click to reset
ai-assistant: Ai Assistant # appearance
appearance: Appearance appearance: Appearance
theme-color: Theme Color # layout
layout: Layout layout: Layout
general: General
content: Content content: Content
other: Other other: Other
light: Light
dark: Dark
dark-menu: Semi Dark Menu
wide: Fluid wide: Fluid
compact: Fixed Width compact: Fixed Width
follow-system: Follow System follow-system: Follow System
@ -151,29 +146,34 @@ preferences:
full-content-tip: Display only the main content, no menus full-content-tip: Display only the main content, no menus
weak-mode: Color Weak Mode weak-mode: Color Weak Mode
gray-mode: Gray Mode gray-mode: Gray Mode
language: Language
dynamic-title: Dynamic Title
normal: Normal normal: Normal
plain: Plain plain: Plain
rounded: Rounded rounded: Rounded
collapse: Collpase Menu collapse: Collpase Menu
collapse-show-title: Display menu name 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 interface-control: Interface Layout Control
copy: Copy Preferences copy: Copy Preferences
copy-success: Copy successful. Please replace in `src/preferences.ts` of the app copy-success: Copy successful. Please replace in `src/preferences.ts` of the app
reset-success: Preferences reset successfully reset-success: Preferences reset successfully
sidebar: Sidebar sidebar: Sidebar
side-visible: Display Sidebar side-visible: Display Sidebar
tabs-visible: Display Tab Bar
tabs: Tabs
tabs-icon: Display Tabbar Icon
mode: Mode mode: Mode
logo-visible: Display Logo 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: breadcrumb:
title: Breadcrumb title: Breadcrumb
home: Display the home button home: Display the home button
@ -189,23 +189,29 @@ preferences:
progress: Page transition progress progress: Page transition progress
theme: theme:
title: Theme title: Theme
builtin: Built-in
radius: Radius radius: Radius
default: Default light: Light
violet: Violet dark: Dark
pink: Pink dark-menu: Semi Dark Menu
rose: Rose weak-mode: Color Weak Mode
sky-blue: Sky Blue gray-mode: Gray Mode
deep-blue: Deep Blue builtin:
green: Green title: Built-in
deep-green: Deep Green default: Default
orange: Orange violet: Violet
yellow: Yellow pink: Pink
zinc: Zinc rose: Rose
neutral: Neutral sky-blue: Sky Blue
slate: Slate deep-blue: Deep Blue
gray: Gray green: Green
custom: Custom deep-green: Deep Green
orange: Orange
yellow: Yellow
zinc: Zinc
neutral: Neutral
slate: Slate
gray: Gray
custom: Custom
header: header:
title: Header title: Header
visible: Display 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: common:
back: 返回 back: 返回
back-to-home: 返回首页 back-to-home: 返回首页
@ -9,11 +41,6 @@ common:
not-data: 暂无数据 not-data: 暂无数据
refresh: 刷新 refresh: 刷新
layout:
center: 居中
align-left: 居左
align-right: 居右
fallback: fallback:
page-not-found: 哎呀!未找到页面 page-not-found: 哎呀!未找到页面
page-not-found-desc: 抱歉,我们无法找到您要找的页面。 page-not-found-desc: 抱歉,我们无法找到您要找的页面。
@ -35,23 +62,22 @@ widgets:
notifications: 通知 notifications: 通知
make-all-as-read: 全部标记为已读 make-all-as-read: 全部标记为已读
clear-notifications: 清空 clear-notifications: 清空
search:
search: title: 搜索
search: 搜索 search-navigate: 搜索导航菜单
search-navigate: 搜索导航菜单 select: 选择
select: 选择 navigate: 导航
navigate: 导航 close: 关闭
close: 关闭 no-results: 未找到搜索结果
no-results: 未找到搜索结果 no-recent: 没有搜索历史
no-recent: 没有搜索历史 recent: 搜索历史
recent: 搜索历史
authentication: authentication:
layout-title: 开箱即用的大型中后台管理系统 welcome-back: 欢迎回来
layout-desc: 工程化、高性能、跨组件库的前端模版 page-title: 开箱即用的大型中后台管理系统
page-desc: 工程化、高性能、跨组件库的前端模版
login-success: 登录成功 login-success: 登录成功
login-success-desc: 欢迎回来 login-success-desc: 欢迎回来
welcome-back: 欢迎回来
login-subtitle: 请输入您的帐户信息以开始管理您的项目 login-subtitle: 请输入您的帐户信息以开始管理您的项目
username: 账号 username: 账号
password: 密码 password: 密码
@ -89,57 +115,26 @@ authentication:
send-code: 获取验证码 send-code: 获取验证码
send-text: "{0}秒后重新获取" send-text: "{0}秒后重新获取"
third-party-login: 其他登录方式 third-party-login: 其他登录方式
layout:
page: center: 居中
essentials: align-left: 居左
login: 登陆 align-right: 居右
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: 异常页面
preferences: preferences:
title: 偏好设置 title: 偏好设置
subtitle: 自定义偏好设置 & 实时预览 subtitle: 自定义偏好设置 & 实时预览
reset-tip: 数据有变化,点击可进行重置 reset-tip: 数据有变化,点击可进行重置
# appearance
appearance: 外观 appearance: 外观
theme-color: 主题色 # layout
layout: 布局 layout: 布局
general: 通用
content: 内容 content: 内容
other: 其它 other: 其它
light: 浅色
dark: 深色
dark-menu: 深色菜单
language: 语言
dynamic-title: 动态标题
ai-assistant: Ai 助手
collapse: 折叠菜单
collapse-show-title: 显示菜单名
wide: 流式 wide: 流式
compact: 定宽 compact: 定宽
follow-system: 跟随系统
collapse: 折叠菜单
collapse-show-title: 显示菜单名
vertical: 垂直 vertical: 垂直
vertical-tip: 侧边垂直菜单模式 vertical-tip: 侧边垂直菜单模式
horizontal: 水平 horizontal: 水平
@ -151,14 +146,6 @@ preferences:
split-menu: 切割菜单 split-menu: 切割菜单
full-content: 内容全屏 full-content: 内容全屏
full-content-tip: 不显示任何菜单,只显示内容主体 full-content-tip: 不显示任何菜单,只显示内容主体
follow-system: 跟随系统
weak-mode: 色弱模式
gray-mode: 灰色模式
navigation-menu: 导航菜单
navigation-style: 导航菜单风格
navigation-accordion: 侧边导航菜单手风琴模式
navigation-split: 导航菜单分离
navigation-split-tip: 开启时,侧边栏显示顶栏对应菜单的子菜单
interface-control: 界面布局控制 interface-control: 界面布局控制
normal: 默认 normal: 默认
plain: 朴素 plain: 朴素
@ -168,11 +155,24 @@ preferences:
reset-success: 重置偏好设置成功 reset-success: 重置偏好设置成功
sidebar: 侧边栏 sidebar: 侧边栏
side-visible: 显示侧边栏 side-visible: 显示侧边栏
tabs-visible: 显示标签栏
tabs: 标签栏
tabs-icon: 显示标签栏图标
mode: 模式 mode: 模式
logo-visible: 显示 Logo logo-visible: 显示 Logo
# general
general: 通用
language: 语言
dynamic-title: 动态标题
ai-assistant: Ai 助手
tabbar:
title: 标签栏
enable: 启用标签栏
icon: 显示标签栏图标
navigation-menu:
title: 导航菜单
style: 导航菜单风格
accordion: 侧边导航菜单手风琴模式
split: 导航菜单分离
split-tip: 开启时,侧边栏显示顶栏对应菜单的子菜单
breadcrumb: breadcrumb:
title: 面包屑导航 title: 面包屑导航
enable: 开启面包屑导航 enable: 开启面包屑导航
@ -188,23 +188,29 @@ preferences:
progress: 页面切换进度条 progress: 页面切换进度条
theme: theme:
title: 主题 title: 主题
builtin: 内置主题
radius: 圆角 radius: 圆角
default: 默认 light: 浅色
violet: 紫罗兰 dark: 深色
pink: 樱花粉 dark-menu: 深色菜单
rose: 玫瑰红 weak-mode: 色弱模式
sky-blue: 天蓝色 gray-mode: 灰色模式
deep-blue: 深蓝色 builtin:
green: 浅绿色 title: 内置主题
deep-green: 深绿色 default: 默认
orange: 橙黄色 violet: 紫罗兰
yellow: 柠檬黄 pink: 樱花粉
zinc: 锌色灰 rose: 玫瑰红
neutral: 中性色 sky-blue: 天蓝色
slate: 石板灰 deep-blue: 深蓝色
gray: 中灰色 green: 浅绿色
custom: 自定义 deep-green: 深绿色
orange: 橙黄色
yellow: 柠檬黄
zinc: 锌色灰
neutral: 中性色
slate: 石板灰
gray: 中灰色
custom: 自定义
header: header:
title: 顶栏 title: 顶栏
mode-static: 静止 mode-static: 静止

View File

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