feat: migrate to Tailwind CSS v4 (#7614)

* chore: update deps

* feat: use jsonc/x language

* chore: update eslint 10.0

* fix: no-useless-assignment

* feat: add CLAUDE.md

* chore: ignore

* feat: claude

* fix: lint

* chore: suppot eslint v10

* fix: lint

* fix: lint

* fix: type check

* fix: unit test

* fix: Suggested fix

* fix: unit test

* chore: update stylelint v17

* chore: update all major deps

* fix:  echarts console warn

* chore: update vitest v4

* feat: add skills ignores

* chore: update deps

* chore: update deps

* fix: cspell

* chore: update deps

* chore: update tailwindcss v4

* chore: remove postcss config

* fix: no use catalog

* chore: tailwind v4 config

* fix: tailwindcss v4 sort

* feat: use eslint-plugin-better-tailwindcss

* fix: Interference between enforce-consistent-line-wrapping, jsx-curly-brace-presence and Prettier

* fix: Interference between enforce-consistent-line-wrapping, jsx-curly-brace-presence and Prettier

* fix(lint): resolve prettier and better-tailwindcss formatting conflicts

* fix(tailwind): update theme references and lint sources

* style(format): normalize apps docs and playground vue files

* style(format): normalize core ui-kit components

* style(format): normalize effects ui and layout components
This commit is contained in:
xingyu
2026-03-10 05:08:45 +08:00
committed by GitHub
parent aa7d8630b5
commit a4736a49f8
289 changed files with 5286 additions and 6331 deletions

View File

@@ -25,7 +25,11 @@ import {
TransformComponent,
} from 'echarts/components';
import * as echarts from 'echarts/core';
import { LabelLayout, UniversalTransition } from 'echarts/features';
import {
LabelLayout,
LegacyGridContainLabel,
UniversalTransition,
} from 'echarts/features';
import { CanvasRenderer } from 'echarts/renderers';
// 通过 ComposeOption 来组合出一个只有必须组件和图表的 Option 类型
@@ -50,6 +54,7 @@ echarts.use([
BarChart,
LineChart,
LabelLayout,
LegacyGridContainLabel,
UniversalTransition,
CanvasRenderer,
LegendComponent,

View File

@@ -37,7 +37,7 @@ type EchartsThemeType = 'dark' | 'light' | null;
function useEcharts(chartRef: Ref<EchartsUIType>) {
let chartInstance: echarts.ECharts | null = null;
let cacheOptions: EChartsOption = {};
// echart是否处于激活状态
// echarts是否处于激活状态
const isActiveRef = ref(false);
const { isDark } = usePreferences();

View File

@@ -45,14 +45,13 @@ export class VxeGridApi<T extends Record<string, any> = any> {
const defaultState = getDefaultState();
this.store = new Store<VxeGridProps>(
mergeWithArrayOverride(storeState, defaultState),
{
onUpdate: () => {
// this.prevState = this.state;
this.state = this.store.state;
},
},
);
this.store.subscribe((state) => {
// this.prevState = this.state;
this.state = state;
});
this.state = this.store.state;
this.stateHandler = new StateHandler();
bindMethods(this);

View File

@@ -1,3 +1,5 @@
@reference "@vben-core/design/theme";
:root .vxe-grid {
--vxe-ui-font-color: hsl(var(--foreground));
--vxe-ui-font-primary-color: hsl(var(--primary));

View File

@@ -361,7 +361,7 @@ onUnmounted(() => {
</script>
<template>
<div :class="cn('bg-card h-full rounded-md', className)">
<div :class="cn('h-full rounded-md bg-card', className)">
<VxeGrid
ref="gridRef"
:class="
@@ -379,9 +379,7 @@ onUnmounted(() => {
<!-- 左侧操作区域或者title -->
<template v-if="showToolbar" #toolbar-actions="slotProps">
<slot v-if="showTableTitle" name="table-title">
<div
class="flex items-center justify-center gap-1 text-[1rem] font-bold"
>
<div class="flex-center gap-1 text-[1rem] font-bold">
{{ tableTitle }}
<VbenHelpTooltip v-if="tableTitleHelp">
{{ tableTitleHelp }}
@@ -419,7 +417,7 @@ onUnmounted(() => {
v-show="showSearchForm !== false"
:class="
cn(
'relative rounded py-3',
'relative rounded-sm py-3',
isCompactForm
? isSeparator
? 'pb-8'
@@ -461,7 +459,7 @@ onUnmounted(() => {
:style="{
...(separatorBg ? { backgroundColor: separatorBg } : undefined),
}"
class="bg-background-deep z-100 absolute -left-2 bottom-1 h-2 w-[calc(100%+1rem)] overflow-hidden md:bottom-2 md:h-3"
class="absolute bottom-1 -left-2 z-100 h-2 w-[calc(100%+1rem)] overflow-hidden bg-background-deep md:bottom-2 md:h-3"
></div>
</div>
</template>