去掉 GSAP。对话入场改为按需加载的 Motion,仍是 160 毫秒,仍尊重减少动态效果。 用 shadcn@4.21.4 补上任务书列出的组件,不覆盖已有的 8 个。设计令牌映射到 shadcn 变量。 手写控件检查和只减不增的白名单。Motion 预设与四个 store 只是骨架,没有接到页面上。 自测:tsc --noEmit 退出码 0;npm run lint 0 error(122 条原有 warning); 定向测试 37 项、fail 0、cancelled 0;next build 后 / 仍是 Static; 首屏 JS gzip 578349 → 578435(+86 字节,+0.01%)。 Co-Authored-By: Grok (agent loop)
26 lines
720 B
JavaScript
26 lines
720 B
JavaScript
import { defineConfig, globalIgnores } from "eslint/config";
|
|
import nextVitals from "eslint-config-next/core-web-vitals";
|
|
import nextTs from "eslint-config-next/typescript";
|
|
import uiPrimitives from "./eslint/no-handwritten-control.mjs";
|
|
|
|
const eslintConfig = defineConfig([
|
|
...nextVitals,
|
|
...nextTs,
|
|
{
|
|
files: ["src/**/*.{tsx,jsx}"],
|
|
ignores: ["src/components/ui/**"],
|
|
plugins: { "jyotisha-ui": uiPrimitives },
|
|
rules: { "jyotisha-ui/no-handwritten-control": "error" },
|
|
},
|
|
// Override default ignores of eslint-config-next.
|
|
globalIgnores([
|
|
// Default ignores of eslint-config-next:
|
|
".next/**",
|
|
"out/**",
|
|
"build/**",
|
|
"next-env.d.ts",
|
|
]),
|
|
]);
|
|
|
|
export default eslintConfig;
|