chore: update dependency version for improved stability and compatibility (#6023)

* chore: update dependency version for improved stability and compatibility

* fix: optimize clearPoints function in useCaptchaPoints hook to improve performance

* fix: make several props optional in various components for better flexibility
pull/84/head
Vben 2025-04-27 22:06:49 +08:00 committed by GitHub
parent dd2b1ed580
commit 76de450c71
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
29 changed files with 1988 additions and 2360 deletions

View File

@ -10,7 +10,15 @@ export async function vue(): Promise<Linter.Config[]> {
interopDefault(import('@typescript-eslint/parser')),
] as const);
const flatEssential = pluginVue.configs?.['flat/essential'] || [];
const flatStronglyRecommended =
pluginVue.configs?.['flat/strongly-recommended'] || [];
const flatRecommended = pluginVue.configs?.['flat/recommended'] || [];
return [
...flatEssential,
...flatStronglyRecommended,
...flatRecommended,
{
files: ['**/*.vue'],
languageOptions: {
@ -43,12 +51,9 @@ export async function vue(): Promise<Linter.Config[]> {
plugins: {
vue: pluginVue,
},
processor: pluginVue.processors['.vue'],
processor: pluginVue.processors?.['.vue'],
rules: {
...pluginVue.configs.base.rules,
...pluginVue.configs['vue3-essential'].rules,
...pluginVue.configs['vue3-strongly-recommended'].rules,
...pluginVue.configs['vue3-recommended'].rules,
...pluginVue.configs?.base?.rules,
'vue/attribute-hyphenation': [
'error',
@ -131,7 +136,6 @@ export async function vue(): Promise<Linter.Config[]> {
'vue/require-default-prop': 'error',
'vue/require-explicit-emits': 'error',
'vue/require-prop-types': 'off',
'vue/script-setup-uses-vars': 'error',
'vue/singleline-html-element-content-newline': 'off',
'vue/space-infix-ops': 'error',
'vue/space-unary-ops': ['error', { nonwords: false, words: true }],

View File

@ -43,6 +43,7 @@ export default {
'stylelint-scss',
],
rules: {
'at-rule-no-deprecated': null,
'at-rule-no-unknown': [
true,
{

View File

@ -110,7 +110,7 @@
"@ast-grep/napi": "catalog:",
"@ctrl/tinycolor": "catalog:",
"clsx": "catalog:",
"esbuild": "0.24.0",
"esbuild": "0.25.3",
"pinia": "catalog:",
"vue": "catalog:"
},

View File

@ -1,3 +1,4 @@
// eslint-disable-next-line vue/prefer-import-from-vue
import { isFunction, isObject, isString } from '@vue/shared';
/**

View File

@ -374,10 +374,10 @@ $namespace: vben;
var(--menu-item-margin-x);
font-size: var(--menu-font-size);
color: var(--menu-item-color);
text-decoration: none;
white-space: nowrap;
list-style: none;
text-decoration: none;
cursor: pointer;
list-style: none;
background: var(--menu-item-background-color);
border: none;
border-radius: var(--menu-item-radius);
@ -701,8 +701,8 @@ $namespace: vben;
width: var(--menu-item-icon-size);
height: var(--menu-item-icon-size);
margin-right: 8px;
text-align: center;
vertical-align: middle;
text-align: center;
}
}

View File

@ -10,7 +10,7 @@ import { VbenIcon } from '@vben-core/shadcn-ui';
import { useMenuContext } from '../hooks';
interface Props extends MenuItemProps {
isMenuMore: boolean;
isMenuMore?: boolean;
isTopLevelMenuSubmenu: boolean;
level?: number;
}

View File

@ -10,7 +10,7 @@ import TabsIndicator from './tabs-indicator.vue';
interface Props {
defaultValue?: string;
tabs: SegmentedItem[];
tabs?: SegmentedItem[];
}
const props = withDefaults(defineProps<Props>(), {

View File

@ -9,7 +9,7 @@ export function useCaptchaPoints() {
}
function clearPoints() {
points.splice(0, points.length);
points.splice(0);
}
return {
addPoint,

View File

@ -14,8 +14,8 @@
padding: 0 4px 2px;
font-size: 0.9em;
line-height: 0.9;
color: hsl(var(--secondary-foreground));
vertical-align: 2px;
color: hsl(var(--secondary-foreground));
cursor: pointer;
user-select: none;
background-color: hsl(var(--secondary));
@ -65,7 +65,7 @@
&.jv-string {
color: hsl(var(--primary));
word-break: break-word;
overflow-wrap: break-word;
white-space: normal;
}
}

View File

@ -1072,8 +1072,8 @@ watch(
box-sizing: border-box;
width: 100%;
height: 100%;
content: '';
outline: 1px dashed #d6d6d6;
content: '';
}
.resize-stick {

View File

@ -17,7 +17,7 @@ import Title from './auth-title.vue';
import ThirdPartyLogin from './third-party-login.vue';
interface Props extends AuthenticationProps {
formSchema: VbenFormSchema[];
formSchema?: VbenFormSchema[];
}
defineOptions({

View File

@ -14,7 +14,7 @@ import { VbenButton } from '@vben-core/shadcn-ui';
import Title from './auth-title.vue';
interface Props {
formSchema: VbenFormSchema[];
formSchema?: VbenFormSchema[];
/**
* @zh_CN 是否处于加载处理状态
*/

View File

@ -6,7 +6,7 @@ import { computed } from 'vue';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@vben-core/shadcn-ui';
interface Props {
tabs: TabOption[];
tabs?: TabOption[];
}
defineOptions({

View File

@ -12,7 +12,7 @@ import {
} from '@vben-core/shadcn-ui';
interface Props {
items: AnalysisOverviewItem[];
items?: AnalysisOverviewItem[];
}
defineOptions({

View File

@ -10,7 +10,7 @@ import {
} from '@vben-core/shadcn-ui';
interface Props {
items: WorkbenchProjectItem[];
items?: WorkbenchProjectItem[];
title: string;
}

View File

@ -10,7 +10,7 @@ import {
} from '@vben-core/shadcn-ui';
interface Props {
items: WorkbenchQuickNavItem[];
items?: WorkbenchQuickNavItem[];
title: string;
}

View File

@ -10,7 +10,7 @@ import {
} from '@vben-core/shadcn-ui';
interface Props {
items: WorkbenchTodoItem[];
items?: WorkbenchTodoItem[];
title: string;
}

View File

@ -10,7 +10,7 @@ import {
} from '@vben-core/shadcn-ui';
interface Props {
items: WorkbenchTrendItem[];
items?: WorkbenchTrendItem[];
title: string;
}

View File

@ -1,8 +1,8 @@
<script lang="ts" setup>
interface Props {
companyName: string;
companyName?: string;
companySiteLink?: string;
date: string;
date?: string;
icp?: string;
icpLink?: string;
}

View File

@ -11,7 +11,7 @@ import { useNavigation } from './use-navigation';
interface Props extends MenuProps {
collapse?: boolean;
menus: MenuRecordRaw[];
menus?: MenuRecordRaw[];
}
withDefaults(defineProps<Props>(), {

View File

@ -6,7 +6,7 @@ import type { MenuProps } from '@vben-core/menu-ui';
import { Menu } from '@vben-core/menu-ui';
interface Props extends MenuProps {
menus: MenuRecordRaw[];
menus?: MenuRecordRaw[];
}
const props = withDefaults(defineProps<Props>(), {

View File

@ -24,7 +24,7 @@ defineOptions({
});
const props = withDefaults(
defineProps<{ enableShortcutKey?: boolean; menus: MenuRecordRaw[] }>(),
defineProps<{ enableShortcutKey?: boolean; menus?: MenuRecordRaw[] }>(),
{
enableShortcutKey: true,
menus: () => [],

View File

@ -18,7 +18,7 @@ defineOptions({
});
const props = withDefaults(
defineProps<{ keyword: string; menus: MenuRecordRaw[] }>(),
defineProps<{ keyword?: string; menus?: MenuRecordRaw[] }>(),
{
keyword: '',
menus: () => [],

View File

@ -14,7 +14,7 @@ defineOptions({
withDefaults(
defineProps<{
disabled?: boolean;
items: SelectOption[];
items?: SelectOption[];
multiple?: boolean;
onBtnClick?: (value: string) => void;
placeholder?: string;

View File

@ -7,7 +7,7 @@ defineOptions({
name: 'PreferenceToggleItem',
});
withDefaults(defineProps<{ disabled?: boolean; items: SelectOption[] }>(), {
withDefaults(defineProps<{ disabled?: boolean; items?: SelectOption[] }>(), {
disabled: false,
items: () => [],
});

View File

@ -132,8 +132,8 @@ function toggleTheme(event: MouseEvent) {
&__sun {
@apply fill-foreground/90 stroke-none;
transition: transform 1.6s cubic-bezier(0.25, 0, 0.2, 1);
transform-origin: center center;
transition: transform 1.6s cubic-bezier(0.25, 0, 0.2, 1);
&:hover > svg > & {
@apply fill-foreground/90;
@ -143,10 +143,10 @@ function toggleTheme(event: MouseEvent) {
&__sun-beams {
@apply stroke-foreground/90 stroke-[2px];
transform-origin: center center;
transition:
transform 1.6s cubic-bezier(0.5, 1.5, 0.75, 1.25),
opacity 0.6s cubic-bezier(0.25, 0, 0.3, 1);
transform-origin: center center;
&:hover > svg > & {
@apply stroke-foreground;

View File

@ -24,8 +24,8 @@ export function useVbenVxeGrid(options: VxeGridProps) {
return () => h(VxeGrid, { ...props, ...attrs, api: extendedApi }, slots);
},
{
inheritAttrs: false,
name: 'VbenVxeGrid',
inheritAttrs: false,
},
);
// Add reactivity support

File diff suppressed because it is too large Load Diff

View File

@ -13,30 +13,30 @@ packages:
- docs
- playground
catalog:
'@ast-grep/napi': ^0.32.3
'@ast-grep/napi': ^0.37.0
'@changesets/changelog-github': ^0.5.1
'@changesets/cli': ^2.28.1
'@changesets/git': ^3.0.2
'@clack/prompts': ^0.9.1
'@changesets/cli': ^2.29.2
'@changesets/git': ^3.0.4
'@clack/prompts': ^0.10.1
'@commitlint/cli': ^19.8.0
'@commitlint/config-conventional': ^19.8.0
'@ctrl/tinycolor': ^4.1.0
'@eslint/js': ^9.24.0
'@faker-js/faker': ^9.6.0
'@iconify/json': ^2.2.324
'@eslint/js': ^9.25.1
'@faker-js/faker': ^9.7.0
'@iconify/json': ^2.2.332
'@iconify/tailwind': ^1.2.0
'@iconify/vue': ^4.3.0
'@intlify/core-base': ^11.1.3
'@intlify/unplugin-vue-i18n': ^6.0.5
'@intlify/unplugin-vue-i18n': ^6.0.8
'@jspm/generator': ^2.5.1
'@manypkg/get-packages': ^2.2.2
'@nolebase/vitepress-plugin-git-changelog': ^2.16.0
'@playwright/test': ^1.51.1
'@pnpm/workspace.read-manifest': ^1000.1.3
'@playwright/test': ^1.52.0
'@pnpm/workspace.read-manifest': ^1000.1.4
'@stylistic/stylelint-plugin': ^3.1.2
'@tailwindcss/nesting': 0.0.0-insiders.565cd3e
'@tailwindcss/typography': ^0.5.16
'@tanstack/vue-query': ^5.72.0
'@tanstack/vue-query': ^5.74.6
'@tanstack/vue-store': ^0.7.0
'@types/archiver': ^6.0.3
'@types/eslint': ^9.6.1
@ -46,28 +46,28 @@ catalog:
'@types/lodash.get': ^4.4.9
'@types/lodash.isequal': ^4.5.8
'@types/lodash.set': ^4.3.9
'@types/node': ^22.14.0
'@types/node': ^22.15.2
'@types/nprogress': ^0.2.3
'@types/postcss-import': ^14.0.3
'@types/qrcode': ^1.5.5
'@types/qs': ^6.9.18
'@types/sortablejs': ^1.15.8
'@typescript-eslint/eslint-plugin': ^8.29.1
'@typescript-eslint/parser': ^8.29.1
'@typescript-eslint/eslint-plugin': ^8.31.0
'@typescript-eslint/parser': ^8.31.0
'@vee-validate/zod': ^4.15.0
'@vite-pwa/vitepress': ^0.5.4
'@vite-pwa/vitepress': ^1.0.0
'@vitejs/plugin-vue': ^5.2.3
'@vitejs/plugin-vue-jsx': ^4.1.2
'@vue/reactivity': ^3.5.13
'@vue/shared': ^3.5.13
'@vue/test-utils': ^2.4.6
'@vueuse/core': ^12.8.2
'@vueuse/motion': ^2.2.6
'@vueuse/integrations': ^12.8.2
'@vueuse/core': ^13.1.0
'@vueuse/motion': ^3.0.3
'@vueuse/integrations': ^13.1.0
ant-design-vue: ^4.2.6
archiver: ^7.0.1
autoprefixer: ^10.4.21
axios: ^1.8.4
axios: ^1.9.0
axios-mock-adapter: ^2.1.0
cac: ^6.7.14
chalk: ^5.4.1
@ -78,115 +78,115 @@ catalog:
commitlint-plugin-function-rules: ^4.0.1
consola: ^3.4.2
cross-env: ^7.0.3
cspell: ^8.18.1
cspell: ^8.19.3
cssnano: ^7.0.6
cz-git: ^1.11.1
czg: ^1.11.1
dayjs: ^1.11.13
defu: ^6.1.4
depcheck: ^1.4.7
dotenv: ^16.4.7
dotenv: ^16.5.0
echarts: ^5.6.0
element-plus: ^2.9.7
eslint: ^9.24.0
eslint-config-turbo: ^2.5.0
eslint-plugin-command: ^0.2.7
element-plus: ^2.9.9
eslint: ^9.25.1
eslint-config-turbo: ^2.5.2
eslint-plugin-command: ^3.2.0
eslint-plugin-eslint-comments: ^3.2.0
eslint-plugin-import-x: ^4.10.2
eslint-plugin-jsdoc: ^50.6.9
eslint-plugin-import-x: ^4.11.0
eslint-plugin-jsdoc: ^50.6.11
eslint-plugin-jsonc: ^2.20.0
eslint-plugin-n: ^17.17.0
eslint-plugin-no-only-tests: ^3.3.0
eslint-plugin-perfectionist: ^4.11.0
eslint-plugin-perfectionist: ^4.12.3
eslint-plugin-prettier: ^5.2.6
eslint-plugin-regexp: ^2.7.0
eslint-plugin-unicorn: ^56.0.1
eslint-plugin-unicorn: ^59.0.0
eslint-plugin-unused-imports: ^4.1.4
eslint-plugin-vitest: ^0.5.4
eslint-plugin-vue: ^9.33.0
eslint-plugin-vue: ^10.0.0
execa: ^9.5.2
find-up: ^7.0.0
get-port: ^7.1.0
globals: ^15.15.0
globals: ^16.0.0
h3: ^1.15.1
happy-dom: ^16.8.1
happy-dom: ^17.4.4
html-minifier-terser: ^7.2.0
husky: ^9.1.7
is-ci: ^4.1.0
jsonc-eslint-parser: ^2.4.0
jsonwebtoken: ^9.0.2
lint-staged: ^15.5.0
lint-staged: ^15.5.1
lodash.clonedeep: ^4.5.0
lodash.get: ^4.4.2
lodash.set: ^4.3.2
lodash.isequal: ^4.5.0
lucide-vue-next: ^0.469.0
lucide-vue-next: ^0.503.0
medium-zoom: ^1.1.0
naive-ui: ^2.41.0
nitropack: ^2.11.8
nitropack: ^2.11.9
nprogress: ^0.2.0
ora: ^8.2.0
pinia: ^2.3.1
pinia: ^3.0.2
pinia-plugin-persistedstate: ^4.2.0
pkg-types: ^1.3.1
playwright: ^1.51.1
pkg-types: ^2.1.0
playwright: ^1.52.0
postcss: ^8.5.3
postcss-antd-fixes: ^0.2.0
postcss-html: ^1.8.0
postcss-import: ^16.1.0
postcss-preset-env: ^10.1.5
postcss-preset-env: ^10.1.6
postcss-scss: ^4.0.9
prettier: ^3.5.3
prettier-plugin-tailwindcss: ^0.6.11
publint: ^0.2.12
publint: ^0.3.12
qrcode: ^1.5.4
qs: ^6.14.0
radix-vue: ^1.9.17
resolve.exports: ^2.0.3
rimraf: ^6.0.1
rollup: ^4.39.0
rollup: ^4.40.0
rollup-plugin-visualizer: ^5.14.0
sass: ^1.86.3
sass: ^1.87.0
secure-ls: ^2.0.0
sortablejs: ^1.15.6
stylelint: ^16.18.0
stylelint-config-recess-order: ^5.1.1
stylelint-config-recommended: ^14.0.1
stylelint: ^16.19.1
stylelint-config-recess-order: ^6.0.0
stylelint-config-recommended: ^16.0.0
stylelint-config-recommended-scss: ^14.1.0
stylelint-config-recommended-vue: ^1.6.0
stylelint-config-standard: ^36.0.1
stylelint-order: ^6.0.4
stylelint-config-standard: ^38.0.0
stylelint-order: ^7.0.0
stylelint-prettier: ^5.0.3
stylelint-scss: ^6.11.1
tailwind-merge: ^2.6.0
tailwindcss: ^3.4.17
tailwindcss-animate: ^1.0.7
theme-colors: ^0.1.0
tippy.js: ^6.2.5
turbo: ^2.5.0
tippy.js: ^6.3.7
turbo: ^2.5.2
typescript: ^5.8.3
unbuild: ^3.5.0
unplugin-element-plus: ^0.9.1
unplugin-element-plus: ^0.10.0
vee-validate: ^4.15.0
vite: ^6.2.5
vite: ^6.3.3
vite-plugin-compression: ^0.5.1
vite-plugin-dts: ^4.5.3
vite-plugin-html: ^3.2.2
vite-plugin-lazy-import: ^1.0.7
vite-plugin-pwa: ^0.21.2
vite-plugin-vue-devtools: ^7.7.2
vite-plugin-pwa: ^1.0.0
vite-plugin-vue-devtools: ^7.7.5
vitepress: ^1.6.3
vitepress-plugin-group-icons: ^1.3.8
vitest: ^2.1.9
vitepress-plugin-group-icons: ^1.5.2
vitest: ^3.1.2
vue: ^3.5.13
vue-eslint-parser: ^9.4.3
vue-eslint-parser: ^10.1.3
vue-i18n: ^11.1.3
vue-json-viewer: ^3.0.4
vue-router: ^4.5.0
vue-router: ^4.5.1
vue-tippy: ^6.7.0
vue-tsc: 2.1.10
vxe-pc-ui: ^4.5.14
vxe-table: ^4.12.5
watermark-js-plus: ^1.5.8
zod: ^3.24.2
watermark-js-plus: ^1.6.0
zod: ^3.24.3
zod-defaults: ^0.1.3