{"_id":"@agile-team/wk-skills-ui","_rev":"14-ca7a975733b09f707414b65b7cb6d761","name":"@agile-team/wk-skills-ui","dist-tags":{"latest":"1.6.1"},"versions":{"1.0.0":{"name":"@agile-team/wk-skills-ui","version":"1.0.0","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.0.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-scan":"scanner/index.mjs"},"dist":{"shasum":"e05fb0ba60ed31076689cf63e5c0fc1fb0545b75","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.0.0.tgz","fileCount":33,"integrity":"sha512-Nus9EPNVC4sWKZxHkEsLu/sjTsyaZEp0jBvEFlhfxNFMfQb8P2+fqJ+xEqZTlcRaL+5Y57KSf3hLejIriLwXew==","signatures":[{"sig":"MEUCIQCbMNCH1flQ44EmA8AQsAzE1KPo5+3d1WwKQGf85sr2GgIgO5ms+WBauwivr/2sSVYDTFYf8/L9f1LXkAFoX6Eroqw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190889},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./runtime":{"types":"./es/index.d.ts","import":"./es/index.js"},"./SKILL.md":"./SKILL.md","./standards/*":"./standards/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/safe-preset":{"types":"./es/safe-preset.d.ts","import":"./es/safe-preset.js"}},"scripts":{"all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","scan":"node scanner/index.mjs scan","build":"tsup","check":"node scanner/index.mjs check","prepare":"tsup"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"11.6.2","description":"UI 风格对齐工具包 — 统一 Vue + Element Plus 业务系统的设计风格（tokens / runtime / scanner / fixer）","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.4.0"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.0.0_1777616037290_0.7422638655069009","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.3.0":{"name":"@agile-team/wk-skills-ui","version":"1.3.0","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.3.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"cd77d412dc2137029ae185dde63f2147ef2c075f","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.3.0.tgz","fileCount":110,"integrity":"sha512-unb4k9FkgzPfNX6duoXte46qUrreHRqaStwxbVj1j+tKyXOm0wPUm/DVLD6+sti8/v19Ag0GIH5yRTidJlynXg==","signatures":[{"sig":"MEQCIFLBkGq8Ztkm4s5P2oHxDiPhIUGpCENm9APqm/4B3MmLAiAEbFL45ZMpL3K4VjvMA/UhZ1Rr+nJauFn2qGTf+7zODg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340143},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":{"types":"./es/index.d.ts","import":"./es/index.js"},"./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"}},"gitHead":"5d14f4432af4e3c7701b8578556ced67dce9d83a","scripts":{"all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","scan":"node scanner/index.mjs scan","build":"tsup","check":"node scanner/index.mjs check","prepare":"tsup"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"11.6.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.4.0"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.3.0_1777646215030_0.7655656491896894","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.3.1":{"name":"@agile-team/wk-skills-ui","version":"1.3.1","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.3.1","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"b1196c66f7070caf8b7718ef698748f518e451b6","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.3.1.tgz","fileCount":116,"integrity":"sha512-Z5/F4Xh8G+g1luVDt/KenMm5e8d5F37ooaFSf8nBo8ug7Ebvt1WUB7wM+QLShgMS0YIBjJXASfc/5gk7KPMqUg==","signatures":[{"sig":"MEUCICJLRzodnl4ZSMzHBLQFwRgUf7FflA5wP0Np0H0UfnK7AiEArVloUN4vRhw9ergdMm9Td4RpSf0xgM6SErN0IAt1nrA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":399422},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":"./","./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"}},"gitHead":"b7d8d328c57f9ff38256e659dbb75b1429bb057d","scripts":{"all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","scan":"node scanner/index.mjs scan","build":"tsup && npm run sync:tokens","check":"node scanner/index.mjs check","prepare":"tsup && npm run sync:tokens","sync:tokens":"node -e \"import('fs').then(fs=>fs.copyFileSync('design/tokens/base.css','dist/tokens.css'))\""},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"10.9.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"sideEffects":["*.css","*.scss"],"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","tsup":"^8.3.0","typescript":"^5.4.0","element-plus":"^2.7.0","@element-plus/icons-vue":"^2.3.0"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.3.1_1777707641950_0.6257542730417915","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.4.0":{"name":"@agile-team/wk-skills-ui","version":"1.4.0","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.4.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"1074bd90b502cb253d852143219814349dace471","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.4.0.tgz","fileCount":123,"integrity":"sha512-L5B4lG5RIhMKHooORQhGirj4aaRR9bT60kBaVGTeBuCQxfR3Esr39jp5vvhcJfZYcM452Us6/T/+8hUEm5CJ3A==","signatures":[{"sig":"MEYCIQDCTOP6BcEXkczLMUCRYJOf6mAVDrOhVNrDPTY8zGsviwIhALgIx9bZzhDiQZ+Z9tbHsYh0wq5wLTGRfpaD2ek2S3h9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":427460},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":"./","./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/presets/*":"./runtime/presets/*","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"},"./runtime/presets/security":{"types":"./es/presets/security.d.ts","import":"./es/presets/security.js"}},"gitHead":"e4fabaeebe57890b5b5e1d56cd3e3183d7b8b7a9","scripts":{"all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","scan":"node scanner/index.mjs scan","build":"tsup && npm run sync:tokens","check":"node scanner/index.mjs check","prepare":"tsup && npm run sync:tokens","sync:tokens":"node -e \"import('fs').then(fs=>fs.copyFileSync('design/tokens/base.css','dist/tokens.css'))\""},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"10.9.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"sideEffects":["*.css","*.scss"],"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","tsup":"^8.3.0","typescript":"^5.4.0","element-plus":"^2.7.0","@element-plus/icons-vue":"^2.3.0"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.4.0_1777718932438_0.25818134432303097","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.4.1":{"name":"@agile-team/wk-skills-ui","version":"1.4.1","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.4.1","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"38a9fbc5776df19b05a6cebc8782851beedb7024","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.4.1.tgz","fileCount":123,"integrity":"sha512-wU4qZpIoo9eN6wiqC7x6aNRoH0O0HpBcHTbp9m0Y52KQFmyegkYqupGGxMKLrZXIc/n9sT6tdGHsLX+zsAtBIg==","signatures":[{"sig":"MEUCIQCzuhCm47lwjb7wYJ1FkJFWYP6p31CUbavDyTcLhgwkBQIgaiBmLNXaK4pRIoUL3i0NaDg9q9gA5FblVDM4bF4ZuEc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":433127},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":"./","./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/presets/*":"./runtime/presets/*","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"},"./runtime/presets/security":{"types":"./es/presets/security.d.ts","import":"./es/presets/security.js"}},"gitHead":"422aa72994e255fe7f57b3c20b60f6fb761091ec","scripts":{"all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","scan":"node scanner/index.mjs scan","build":"tsup && npm run sync:tokens","check":"node scanner/index.mjs check","prepare":"tsup && npm run sync:tokens","sync:tokens":"node -e \"import('fs').then(fs=>fs.copyFileSync('design/tokens/base.css','dist/tokens.css'))\""},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"10.9.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"sideEffects":["*.css","*.scss"],"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","tsup":"^8.3.0","typescript":"^5.4.0","element-plus":"^2.7.0","@element-plus/icons-vue":"^2.3.0"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.4.1_1777721864150_0.7100808221273045","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.4.5":{"name":"@agile-team/wk-skills-ui","version":"1.4.5","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.4.5","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"aa061d9a15a9d0291480d3887031406d88a5dccb","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.4.5.tgz","fileCount":123,"integrity":"sha512-mHp2U6JJl9R/xq8ZFhLJWo3hK0xWUgluQfgWoDKXoqzFYNObHRScsQYq9Kb+3TPYmKIOrcBKn8Y0LGqOAXh0uQ==","signatures":[{"sig":"MEQCIQDs0yjJu2MqlJNVy1/b4Ib6uS0ELkrj4fmfRbjtxTohUgIfB9DCuTlvoJkL3fqkFj+vr/44iLNe4heU0TbnVZ7fEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435822},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":"./","./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/presets/*":"./runtime/presets/*","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"},"./runtime/presets/security":{"types":"./es/presets/security.d.ts","import":"./es/presets/security.js"}},"gitHead":"3f5516e5e2e8f4553d0420f16f81a861df393bc7","scripts":{"all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","scan":"node scanner/index.mjs scan","build":"tsup && npm run sync:tokens","check":"node scanner/index.mjs check","prepare":"tsup && npm run sync:tokens","sync:tokens":"node -e \"import('fs').then(fs=>fs.copyFileSync('design/tokens/base.css','dist/tokens.css'))\""},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"10.9.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"sideEffects":["*.css","*.scss"],"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","tsup":"^8.3.0","typescript":"^5.4.0","element-plus":"^2.7.0","@element-plus/icons-vue":"^2.3.0"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.4.5_1777862767440_0.45194846482957196","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.4.6":{"name":"@agile-team/wk-skills-ui","version":"1.4.6","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.4.6","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"a103d42405c5c3dfafc67d6e74302da0b9d46dfc","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.4.6.tgz","fileCount":124,"integrity":"sha512-QCULjwL0mgxje1yCF8FkBdCyC2mUsN6knb/x8ppy0u4Y6ipV3q/w57A/GVa6LIea9pyz6HwZqySfowfRpyoKcg==","signatures":[{"sig":"MEUCIE9Hk3LSPjI8dMP8UCwW3TFbD9ztwqWVujDNr9rcVypaAiEAlA+DIIKZZjU//yl+IuJWTjc4Zs8ZayNsQGWhlD3dRVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450194},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":"./","./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/presets/*":"./runtime/presets/*","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"},"./runtime/presets/security":{"types":"./es/presets/security.d.ts","import":"./es/presets/security.js"}},"gitHead":"bfd1035874865133243fa71252b81373070910ff","scripts":{"all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","scan":"node scanner/index.mjs scan","build":"tsup && npm run sync:tokens","check":"node scanner/index.mjs check","prepare":"tsup && npm run sync:tokens","sync:tokens":"node -e \"import('fs').then(fs=>fs.copyFileSync('design/tokens/base.css','dist/tokens.css'))\""},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"10.9.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"sideEffects":["*.css","*.scss"],"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","tsup":"^8.3.0","typescript":"^5.4.0","element-plus":"^2.7.0","@element-plus/icons-vue":"^2.3.0"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.4.6_1777864079322_0.0718467709382844","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.4.7":{"name":"@agile-team/wk-skills-ui","version":"1.4.7","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.4.7","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"e29489367479ea7aabfb1ead57540a16be566b69","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.4.7.tgz","fileCount":129,"integrity":"sha512-2jPTK4dOCzLeUDNaMBW0O0EXtUxHl3ge1wdE08pW/rfzROkBC3tzF8J9nOutjcxkSEHkq1a4ttVtcmffghL4vg==","signatures":[{"sig":"MEUCIQCOOzQLKEGUsCJoGFf4voJ3oqm56udAzhyREUzzkwzLTAIgcSnLE7HqD8ayt7drslDLsm68uh+6M7nYJbMsKGtiqxI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":482909},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":"./","./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/presets/*":"./runtime/presets/*","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"},"./runtime/presets/security":{"types":"./es/presets/security.d.ts","import":"./es/presets/security.js"}},"gitHead":"813c3480a76b7c819f86fb61a1e4f5a2d8ddcf19","scripts":{"all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","scan":"node scanner/index.mjs scan","build":"tsup && npm run sync:tokens","check":"node scanner/index.mjs check","prepare":"tsup && npm run sync:tokens","sync:tokens":"node -e \"import('fs').then(fs=>fs.copyFileSync('design/tokens/base.css','dist/tokens.css'))\""},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"10.9.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"sideEffects":["*.css","*.scss"],"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","tsup":"^8.3.0","typescript":"^5.4.0","element-plus":"^2.7.0","@element-plus/icons-vue":"^2.3.0"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.4.7_1777874672298_0.30365721626278486","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.4.8":{"name":"@agile-team/wk-skills-ui","version":"1.4.8","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.4.8","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"c23c61aeec15b391af7898de26be4b75c81937d2","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.4.8.tgz","fileCount":129,"integrity":"sha512-OOWDkYFBqr6405jTzs3YJn2fH0tlwgl3Ym120A29cR6XZemZ80o56C0e56GU6hnoslhVaC0a0CGAWGglQrrqMw==","signatures":[{"sig":"MEQCIDLJJS7sxVaUJV0vdGyCIVMI/bYvctS9MEzruTpaVCISAiAFsbK6Kkd7hywcnWiD9MyJY0l7tjoheqZbhm3wUtTcdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":483184},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":"./","./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/presets/*":"./runtime/presets/*","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"},"./runtime/presets/security":{"types":"./es/presets/security.d.ts","import":"./es/presets/security.js"}},"gitHead":"982e733c88e972dab899a1df71845751dbe3d5e4","scripts":{"all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","scan":"node scanner/index.mjs scan","build":"tsup && npm run sync:tokens","check":"node scanner/index.mjs check","prepare":"tsup && npm run sync:tokens","sync:tokens":"node -e \"import('fs').then(fs=>fs.copyFileSync('design/tokens/base.css','dist/tokens.css'))\""},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"10.9.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"sideEffects":["*.css","*.scss"],"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","tsup":"^8.3.0","typescript":"^5.4.0","element-plus":"^2.7.0","@element-plus/icons-vue":"^2.3.0"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.4.8_1777881978598_0.027415068559982547","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.5.0":{"name":"@agile-team/wk-skills-ui","version":"1.5.0","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.5.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"cdb3e05e537e38bc7653823c4dfeb6778a611cdd","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.5.0.tgz","fileCount":134,"integrity":"sha512-tuILeS54AT54R/rJ7Du5Vn1R+JhWSn6hkk2vaulKjs60WQEuIvGqHWU/reyFVJ7assOABpm7RPeRSb6BoQ8q1w==","signatures":[{"sig":"MEUCIFEQqxbEvlEuxi2astz1xZvcA/fLpLZre5gOPbfHbxA8AiEA8c4dSmQRR7gPm6HobboexjT46CLVCWtb9WJSjYN4AUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":505219},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","config":{"commitizen":{"path":"node_modules/cz-customizable"},"cz-customizable":{"config":".cz-config.cjs"}},"engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":"./","./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/presets/*":"./runtime/presets/*","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"},"./runtime/presets/security":{"types":"./es/presets/security.d.ts","import":"./es/presets/security.js"}},"gitHead":"1bb56f19df68047be4ea644b15b78979f055692d","scripts":{"cz":"git-cz","all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","lint":"eslint .","scan":"node scanner/index.mjs scan","build":"tsup && npm run sync:tokens","check":"node scanner/index.mjs check","prepare":"npm run build","sync:tokens":"node -e \"import('fs').then(fs=>fs.copyFileSync('design/tokens/base.css','dist/tokens.css'))\"","standards:init":"npx @robot-admin/git-standards init"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"10.9.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"lint-staged":{"src/**/*.{js,jsx,ts,tsx,vue}":["eslint --fix --no-cache"]},"sideEffects":["*.css","*.scss"],"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","tsup":"^8.3.0","husky":"^9.1.7","eslint":"^10.3.0","commitizen":"^4.3.1","typescript":"^5.4.0","lint-staged":"^16.4.0","element-plus":"^2.7.0","@commitlint/cli":"^20.5.3","cz-customizable":"^7.5.4","eslint-plugin-vue":"^10.9.0","@element-plus/icons-vue":"^2.3.0","@typescript-eslint/parser":"^8.59.2","@vue/eslint-config-typescript":"^14.7.0","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.2"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.5.0_1777948715890_0.11886747391935248","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.5.1":{"name":"@agile-team/wk-skills-ui","version":"1.5.1","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.5.1","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"7ae6768cca862215dbc526278fedf13dbf62cde3","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.5.1.tgz","fileCount":134,"integrity":"sha512-TkDgJiLLq049lszqRZ4dbDT7MYSJ2xcyMjXFi43DRJp1TwTrW5LD3X1Wi+A9X/8NLggPLXLDHYKockAQiZxJjg==","signatures":[{"sig":"MEUCIQDAMYF8uQMxmID9iPzR6RE/twxFDkSEcULFZ825/CPadwIgK64J5NQos8C6LwQMAqaXLQaF9F1x7IGPRT6QUxFF6WE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":508476},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","config":{"commitizen":{"path":"node_modules/cz-customizable"},"cz-customizable":{"config":".cz-config.cjs"}},"engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":"./","./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/presets/*":"./runtime/presets/*","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"},"./runtime/presets/security":{"types":"./es/presets/security.d.ts","import":"./es/presets/security.js"}},"gitHead":"baf849f24e4411a6f82974a9c18103d36b97cd31","scripts":{"cz":"git-cz","all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","lint":"eslint .","scan":"node scanner/index.mjs scan","build":"tsup && npm run sync:tokens","check":"node scanner/index.mjs check","prepare":"npm run build","sync:tokens":"node -e \"import('fs').then(fs=>fs.copyFileSync('design/tokens/base.css','dist/tokens.css'))\"","standards:init":"npx @robot-admin/git-standards init"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"10.9.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"lint-staged":{"src/**/*.{js,jsx,ts,tsx,vue}":["eslint --fix --no-cache"]},"sideEffects":["*.css","*.scss"],"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","tsup":"^8.3.0","husky":"^9.1.7","eslint":"^10.3.0","commitizen":"^4.3.1","typescript":"^5.4.0","lint-staged":"^16.4.0","element-plus":"^2.7.0","@commitlint/cli":"^20.5.3","cz-customizable":"^7.5.4","eslint-plugin-vue":"^10.9.0","@element-plus/icons-vue":"^2.3.0","@typescript-eslint/parser":"^8.59.2","@vue/eslint-config-typescript":"^14.7.0","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.2"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.5.1_1777949755881_0.8435655091513168","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.6.0":{"name":"@agile-team/wk-skills-ui","version":"1.6.0","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.6.0","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"b9ca22011d6b24ed4d274f676390ee4cc6f6a0d1","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.6.0.tgz","fileCount":150,"integrity":"sha512-Gjh71HH75imlfsK9hfrBiFghmRUhRZPEpgxNr2ClyChr7NRKvnSo3H2BpvW836dpyAAmd3myRAflUMBxvVlLSw==","signatures":[{"sig":"MEUCIDgi4yQPKKprMDgGIXYpOdZlgK8g/vA4m/9o4UmNJJPJAiEAn0DKH/4Z4HaVQ8717/1jfe8rK8M+w57187bsRBAsrEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":579285},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","config":{"commitizen":{"path":"node_modules/cz-customizable"},"cz-customizable":{"config":".cz-config.cjs"}},"engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":"./","./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/presets/*":"./runtime/presets/*","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"},"./runtime/presets/security":{"types":"./es/presets/security.d.ts","import":"./es/presets/security.js"}},"gitHead":"09c896dd5594e94a81f083bf0533b3ab44256424","scripts":{"cz":"git-cz","all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","lint":"eslint .","scan":"node scanner/index.mjs scan","build":"tsup && npm run sync:tokens","check":"node scanner/index.mjs check","prepare":"npm run build","sync:tokens":"node -e \"import('fs').then(fs=>fs.copyFileSync('design/tokens/base.css','dist/tokens.css'))\"","standards:init":"npx @robot-admin/git-standards init"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"10.9.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"lint-staged":{"src/**/*.{js,jsx,ts,tsx,vue}":["eslint --fix --no-cache"]},"sideEffects":["*.css","*.scss"],"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","tsup":"^8.3.0","husky":"^9.1.7","eslint":"^10.3.0","commitizen":"^4.3.1","typescript":"^5.4.0","lint-staged":"^16.4.0","element-plus":"^2.7.0","@commitlint/cli":"^20.5.3","cz-customizable":"^7.5.4","eslint-plugin-vue":"^10.9.0","@element-plus/icons-vue":"^2.3.0","@typescript-eslint/parser":"^8.59.2","@vue/eslint-config-typescript":"^14.7.0","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.2"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.6.0_1778168145343_0.19857689499132625","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"},"1.6.1":{"name":"@agile-team/wk-skills-ui","version":"1.6.1","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"license":"UNLICENSED","_id":"@agile-team/wk-skills-ui@1.6.1","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"bin":{"wk-ui":"bin/wk-ui.js","wk-scan":"scanner/index.mjs"},"dist":{"shasum":"f0e3eab16b82ff53b93156f271c40a624d606197","tarball":"https://registry.npmjs.org/@agile-team/wk-skills-ui/-/wk-skills-ui-1.6.1.tgz","fileCount":150,"integrity":"sha512-cWWPjQEu26VnOsy86l/bO8wiHKRnqY88Xn7Q/kXvN/K0rvX/0TrYMCOhnZcUwHLYBr1+zGd3sa4syvSmdIpe1w==","signatures":[{"sig":"MEYCIQD4uMhENEWCbYJId5VmNwFR46Hsu23y1/DdHNHt7jgRNgIhAMSaYJtXzVpWfTU3gNeBhaUE9f7uP7rMEgbGA2HBWo+q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":580243},"main":"./es/index.js","type":"module","types":"./es/index.d.ts","config":{"commitizen":{"path":"node_modules/cz-customizable"},"cz-customizable":{"config":".cz-config.cjs"}},"engines":{"node":">=18"},"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js"},"./dist":"./dist/index.scss","./dist/*":"./dist/*","./styles":"./styles/index.scss","./runtime":"./","./SKILL.md":"./SKILL.md","./skills/*":"./skills/*","./styles/*":"./styles/*","./standards/*":"./standards/*","./templates/*":"./templates/*","./design/tokens":"./design/tokens/index.css","./design/tokens/*":"./design/tokens/*","./dist/tokens.css":"./dist/tokens.css","./dist/portal.scss":"./dist/portal.scss","./runtime/presets/*":"./runtime/presets/*","./runtime/common-preset":{"types":"./es/common-preset.d.ts","import":"./es/common-preset.js"},"./runtime/presets/security":{"types":"./es/presets/security.d.ts","import":"./es/presets/security.js"}},"gitHead":"a339610f79abb2639ca3c20c809f51340ab2712e","scripts":{"cz":"git-cz","all":"node scanner/index.mjs all","fix":"node scanner/index.mjs fix","lint":"eslint .","scan":"node scanner/index.mjs scan","build":"tsup && npm run sync:tokens","check":"node scanner/index.mjs check","prepare":"npm run build","sync:tokens":"node -e \"import('fs').then(fs=>fs.copyFileSync('design/tokens/base.css','dist/tokens.css'))\"","standards:init":"npx @robot-admin/git-standards init"},"_npmUser":{"name":"cheny_yang","email":"ycyplus@gmail.com"},"_npmVersion":"10.9.2","description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","directories":{},"lint-staged":{"src/**/*.{js,jsx,ts,tsx,vue}":["eslint --fix --no-cache"]},"sideEffects":["*.css","*.scss"],"_nodeVersion":"22.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","tsup":"^8.3.0","husky":"^9.1.7","eslint":"^10.3.0","commitizen":"^4.3.1","typescript":"^5.4.0","lint-staged":"^16.4.0","element-plus":"^2.7.0","@commitlint/cli":"^20.5.3","cz-customizable":"^7.5.4","eslint-plugin-vue":"^10.9.0","@element-plus/icons-vue":"^2.3.0","@typescript-eslint/parser":"^8.59.2","@vue/eslint-config-typescript":"^14.7.0","@commitlint/config-conventional":"^20.5.3","@typescript-eslint/eslint-plugin":"^8.59.2"},"peerDependencies":{"vue":">=3.2","element-plus":">=2.2","@element-plus/icons-vue":">=2.0"},"peerDependenciesMeta":{"@element-plus/icons-vue":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/wk-skills-ui_1.6.1_1778253990942_0.17087151428252567","host":"s3://npm-registry-packages-npm-production"},"deprecated":"⚠️ 包名有误（wk → wl），请迁移到正确包名：@agile-team/wl-skills-ui。此包（wk-skills-ui）将停止维护，不再发布新版本。迁移：npm remove @agile-team/wk-skills-ui && npm i @agile-team/wl-skills-ui"}},"time":{"created":"2026-05-01T06:13:57.195Z","modified":"2026-05-09T08:27:24.086Z","1.0.0":"2026-05-01T06:13:57.465Z","1.3.0":"2026-05-01T14:36:55.196Z","1.3.1":"2026-05-02T07:40:42.111Z","1.4.0":"2026-05-02T10:48:52.628Z","1.4.1":"2026-05-02T11:37:44.325Z","1.4.5":"2026-05-04T02:46:07.591Z","1.4.6":"2026-05-04T03:07:59.544Z","1.4.7":"2026-05-04T06:04:32.446Z","1.4.8":"2026-05-04T08:06:18.760Z","1.5.0":"2026-05-05T02:38:36.099Z","1.5.1":"2026-05-05T02:55:56.125Z","1.6.0":"2026-05-07T15:35:45.502Z","1.6.1":"2026-05-08T15:26:31.166Z"},"license":"UNLICENSED","keywords":["vue","vue3","element-plus","ag-grid","design-tokens","ui-alignment","linter","copilot-skill"],"description":"企业级 UI 风格对齐框架 — Vue + Element Plus 项目通用化妆/原生双模式（tokens / element / vendors / layouts / runtime / scanner / fixer / skills）","maintainers":[{"name":"cheny_yang","email":"ycyplus@gmail.com"}],"readme":"# @agile-team/wk-skills-ui\n\n> **企业级 UI 风格对齐框架** — 让 Vue + Element Plus 业务系统获得一致的视觉、可被 AI 精确识别和修复的设计规范，以及可演进的工程能力。\n\n[![npm version](https://img.shields.io/npm/v/@agile-team/wk-skills-ui.svg)](https://www.npmjs.com/package/@agile-team/wk-skills-ui)\n[![Node](https://img.shields.io/badge/node-%3E%3D18-green.svg)]()\n\n---\n\n## 这是什么？\n\n一套 \"**设计令牌 + 控件对齐 + 封装组件化妆 + 页面骨架 + 业务渲染 + 自动化扫描修复 + AI Skills**\" 的全栈式风格框架。\n\n它解决的问题：\n\n> 团队有多个 Vue 项目，新老共存。新项目可以从零按规范搭建；老项目用了大量内部封装组件（`Base*` / `jh-*` / `C_*` / `c_*` / 还有野路子自封装），改源码代价大。如何在 **不改业务代码** 的前提下，做到全项目视觉一致；同时给新项目和拿到源码后的老项目，提供更精简、更高效的演进路径？\n\n---\n\n## 架构总览\n\n### 五层模型 (L0 → L4)\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│  L0  Design Tokens          颜色 / 间距 / 圆角 / 字号 / 阴影      │\n│      → 所有上层依赖的\"宪法\"                                       │\n├─────────────────────────────────────────────────────────────────┤\n│  L1  Element Plus 原子层    el-button / el-input / el-table ... │\n│      → 一控件一规则、一控件一 SCSS、一控件一 SKILL                │\n├─────────────────────────────────────────────────────────────────┤\n│  L2  Vendors 封装组件层 ⭐  Base* / jh-* / C_*/c_* / custom / AG │\n│      → 老项目化妆主战场（无源码也能覆盖）                          │\n├─────────────────────────────────────────────────────────────────┤\n│  L3  Page Layouts 骨架层    list-page / tree-list / form-dialog │\n│      → 团队约定的页面 DNA                                        │\n├─────────────────────────────────────────────────────────────────┤\n│  L4  Runtime 业务渲染层     defineColumns / renderOps / preset  │\n│      → 让业务代码\"消失\"（仅有源码场景）                           │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n### 两种运行模式\n\n| 模式               | 适用                     | 包含层         | 接入方式                                               |\n| ------------------ | ------------------------ | -------------- | ------------------------------------------------------ |\n| **Native（原生）** | 新项目、能完全可控的项目 | L0+L1+L2+L3+L4 | `@use '.../styles' as *;` + `installCommonPreset()`    |\n| **Skin（化妆）**   | 老项目、第三方封装无源码 | L0+L1+L2       | `@use '.../styles/presets/skin' as *;`（不动业务代码） |\n\n---\n\n## 目录结构\n\n```\nwk-skills-ui/\n├── design/                       # L0 — 设计令牌\n│   ├── tokens/\n│   │   ├── base.css              # CSS 变量声明（:root --el-color-primary 等）\n│   │   └── index.css\n│   └── spec/                     # 设计规范文档（color / typography / spacing）\n│\n├── styles/                       # L1+L2+L3 SCSS 实现\n│   ├── tokens/                   # SCSS 变量映射层（$wk-* → CSS 变量）\n│   ├── element/                  # L1 Element Plus 控件对齐\n│   │   ├── _table.scss\n│   │   ├── _form.scss\n│   │   ├── _dialog.scss\n│   │   ├── _pagination.scss\n│   │   └── index.scss\n│   ├── vendors/                  # ⭐ L2 封装组件化妆层\n│   │   ├── _base-table.scss      # Base* 表格类（优先级 #1）\n│   │   ├── _base-components.scss # Base* 通用（按钮组/徽标/Tag）\n│   │   ├── _base-query-toolbar.scss  # BaseQuery / BaseToolbar\n│   │   ├── _jh-tree.scss         # jh-tree（优先级 #2）\n│   │   ├── _jh-pagination.scss   # jh-pagination\n│   │   ├── _jh-drag-col.scss     # jh-drag-col 拖拽分割条\n│   │   ├── _c-components.scss    # C_/c_ 前缀（优先级 #3，团队未来主流）\n│   │   ├── _custom-wrappers.scss # 野路子兜底（优先级 #4）\n│   │   ├── _ag-grid.scss         # AG Grid 主题\n│   │   ├── _portal.scss          # 弹层/popper\n│   │   └── index.scss\n│   ├── layouts/                  # L3 页面骨架\n│   │   ├── _list-page.scss       # .list-page 列表页\n│   │   ├── _tree-list.scss       # .tree-list 左树右表\n│   │   ├── _form-dialog.scss     # .form-dialog 表单弹窗\n│   │   ├── _detail-page.scss     # .detail-page 详情页\n│   │   └── index.scss\n│   ├── presets/                  # 组合预设（用户一行接入）\n│   │   ├── full.scss             # L0+L1+L2+L3（默认 = styles/index.scss）\n│   │   ├── skin.scss             # L0+L1+L2（老项目化妆）\n│   │   ├── element-only.scss     # L0+L1\n│   │   └── tokens-only.scss      # L0\n│   └── index.scss                # = presets/full\n│\n├── runtime/                      # L4 业务渲染（TS）\n│   ├── core/                     # 不可变核心\n│   │   ├── types.ts              # 类型定义\n│   │   ├── renderers.ts          # renderTagNode / renderOps / renderClassifyTag ...\n│   │   ├── registry.ts           # COLUMN_AUTO_MAP + defineColumns\n│   │   └── index.ts\n│   ├── presets/                  # 业务预设（可扩展）\n│   │   ├── registry.ts           # createPreset / installPreset\n│   │   ├── common.ts             # 通用业务预设（enable/audit/verify + 起步包）\n│   │   └── index.ts\n│   └── index.ts                  # 公共 API 入口\n│\n├── scanner/                      # 自动化扫描 / 修复\n│   ├── index.mjs                 # CLI（含 --layer/--vendor/--mode 过滤）\n│   ├── rules/                    # 规则集\n│   │   ├── _shared.mjs           # 公共工具 + inferMeta(layer/vendor)\n│   │   ├── table.mjs             # R001 R002 R003 R014\n│   │   ├── form.mjs              # R006 R007 R008\n│   │   ├── button.mjs            # R004 R005 R015\n│   │   ├── tag.mjs               # R009 R010 R012\n│   │   ├── dialog.mjs            # R011\n│   │   ├── color.mjs             # R016 R017 R018\n│   │   └── index.mjs             # 聚合 + addRules() 插件机制\n│   ├── fix.mjs                   # 自动修复引擎\n│   ├── integration.mjs           # 接入完整性检查\n│   └── report.mjs                # 报告生成器\n│\n├── skills/                       # ⭐ AI 编辑器知识库\n│   ├── _meta/\n│   │   ├── _registry.md          # Skills 总索引\n│   │   ├── _detection.md         # vendor / layout 识别速查表\n│   │   └── _compat/              # 多编辑器适配（Copilot/Cursor/Windsurf/Kiro/Trae/Claude/Cline/Agents/Qoder）\n│   ├── _flows/                   # ⭐ 组合流程（一句话跑全套）\n│   │   ├── new-project-init.md   # 新项目从零接入\n│   │   ├── legacy-skin-align.md  # 老项目化妆对齐 ⭐ 杀手级\n│   │   ├── full-audit.md         # 全量审计（不修）\n│   │   └── progressive-migrate.md # 渐进迁移到 runtime\n│   ├── element/                  # L1 控件 SKILL\n│   │   ├── el-table/SKILL.md\n│   │   ├── el-form/SKILL.md\n│   │   ├── el-dialog/SKILL.md\n│   │   └── el-tag/SKILL.md\n│   ├── vendors/                  # ⭐ L2 封装识别 SKILL\n│   │   ├── base-table/SKILL.md       # 优先级 #1\n│   │   ├── jh-components/SKILL.md    # 优先级 #2\n│   │   ├── c-components/SKILL.md     # 优先级 #3\n│   │   ├── custom-wrappers/SKILL.md  # 优先级 #4 兜底\n│   │   ├── ag-grid/SKILL.md\n│   │   └── unknown-wrapper/SKILL.md  # 兜底探测\n│   ├── layouts/                  # L3 页面骨架 SKILL（按需扩展）\n│   ├── runtime/                  # L4 业务渲染 SKILL\n│   │   ├── style-align/SKILL.md\n│   │   ├── design-tokens/SKILL.md\n│   │   └── migration/SKILL.md\n│   └── ops/                      # 操作类 SKILL\n│       ├── scan/SKILL.md\n│       └── fix/SKILL.md\n│\n├── templates/                    # 代码生成模板\n│   ├── list-page/TPL-LIST.md\n│   ├── form-dialog/TPL-FORM-DIALOG.md\n│   ├── tree-list/TPL-TREE-LIST.md\n│   └── ag-grid-page/TPL-AG-GRID.md\n│\n├── standards/                    # 团队规范文档\n│   ├── ui/                       # UI 规范（01-table / 02-button / ...）\n│   └── engineering/              # 工程规范（import 顺序 / 命名 / SCSS 结构）\n│\n├── bin/                          # CLI\n│   └── wk-ui.js                  # 统一入口（init/update/diff/clean/doctor/prompts/scan/fix/add-preset）\n│\n├── dist/                         # 构建产物 + 兼容重定向\n│   ├── tokens.css                # = design/tokens/base.css\n│   ├── index.scss                # @use '../styles/index'\n│   ├── element.scss              # @use '../styles/element/index'\n│   ├── ag-grid-override.scss     # @use '../styles/vendors/ag-grid'\n│   └── portal.scss               # @use '../styles/vendors/portal'\n│\n└── es/                           # tsup 构建产物（runtime ESM + d.ts）\n    ├── index.js\n    ├── common-preset.js\n    └── *.d.ts\n```\n\n---\n\n## 安装\n\n```bash\npnpm add @agile-team/wk-skills-ui\n# 或\nnpm i @agile-team/wk-skills-ui\nyarn add @agile-team/wk-skills-ui\n```\n\n要求：Node ≥ 18，Vue ≥ 3.2，Element Plus ≥ 2.2。\n\n---\n\n## 版本亮点\n\n当前小版本重点补齐 AI Skill 的安装、更新、清理和编辑器集成体验：\n\n- `wk-ui init/update` 会安装 Skill、触发提示、MCP 配置和 manifest 清单\n- `wk-ui diff/clean/doctor/prompts` 覆盖升级前对比、卸载清理、环境体检和提示词查看\n- 内置 `wk-skills-ui` MCP Server，供 AI 编辑器调用扫描、检查和 dry-run 修复\n- 支持 GitHub Copilot、Cursor、Windsurf、Kiro、Trae、Claude Code、Cline、Qoder、通用 Agents\n- 与 `@agile-team/wl-skills-kit` 只做可选桥接提醒，不建立强依赖\n- 接入 `@robot-admin/git-standards`，仓库维护和业务项目均可复用提交/检查规范\n\n---\n\n## 与 wl-skills-kit 的协同闭环\n\n`wk-skills-ui` 与 `wl-skills-kit` 不强耦合，但可以互相配合形成“先统一视觉，再按团队规范渐进修复”的闭环：\n\n- `wk-skills-ui` 负责整体设计体系、tokens、样式风格、化妆层和 UI runtime；无论项目是 kit 最佳写法、纯 Element Plus、老旧 `Base*` 封装，还是其他基于 Element Plus 的封装，都应尽量覆盖成统一视觉风格。\n- `wl-skills-kit` 负责 AI 生成页面和前端工作流必须遵守的团队规范、最佳实践、业务模板、mock、api.md、菜单/字典/权限同步等，不直接负责样式体系。\n- `wk-ui scan/check` 先识别项目中的多种 UI 写法并给出风格/结构结论；如果需要从“样式统一”进一步升级为“团队最佳实践写法”，再提示使用 `wl-skills-kit` 按扫描结论进行规范化重构。\n- 即使暂不重构，`wk-skills-ui` 的 Skin/Native 样式覆盖也应继续生效，保证老项目和非标准写法至少获得统一视觉。\n\n当页面由 `wl-skills-kit` 生成或重构时，推荐最终页面骨架保持：\n\n```text\nAbstractPageQueryHook + BaseQuery + BaseToolbar + BaseTable(render-type=\"agGrid\", cid) + jh-pagination\n```\n\n---\n\n## 快速开始\n\n### 场景 A — 新项目（Native Mode）\n\n```bash\n# 1. 自动安装 skills + 配置接入\nnpx wk-ui init --mode native\n```\n\n```html\n<!-- 2. index.html -->\n<head>\n  <link\n    rel=\"stylesheet\"\n    href=\"/node_modules/@agile-team/wk-skills-ui/design/tokens/base.css\"\n  />\n</head>\n```\n\n```scss\n// 3. src/styles/index.scss\n@use \"@agile-team/wk-skills-ui/styles\" as *;\n```\n\n```ts\n// 4. src/main.ts\nimport { installCommonPreset } from \"@agile-team/wk-skills-ui/runtime/common-preset\";\ninstallCommonPreset();\n```\n\n```vue\n<!-- 5. 业务代码用 runtime API（参考 templates/list-page/） -->\n<script setup>\nimport { defineColumns, renderOps } from \"@agile-team/wk-skills-ui/runtime\";\n\nconst columns = defineColumns([\n  { type: \"index\", label: \"序号\", width: 60, align: \"center\" },\n  { name: \"name\", label: \"名称\", minWidth: 150 },\n  { name: \"enableStatus\", label: \"状态\", width: 90 }, // ← 自动渲染 Tag（已注册）\n  {\n    label: \"操作\",\n    width: 120,\n    fixed: \"right\",\n    align: \"center\",\n    defaultSlot: ({ row }) =>\n      renderOps([\n        { type: \"view\", onClick: () => modal.value.view(row.id) },\n        { type: \"edit\", onClick: () => modal.value.edit(row.id) },\n        { type: \"del\", onClick: () => handleDel(row.id) },\n      ]),\n  },\n]);\n</script>\n```\n\n### 场景 B — 老项目（Skin Mode）\n\n```bash\n# 1. 化妆模式接入（不安装 runtime/layouts 类 skill）\nnpx wk-ui init --mode skin\n```\n\n```scss\n// 2. 仅引入 skin preset（不引入 layouts，避免冲击老布局）\n@use \"@agile-team/wk-skills-ui/styles/presets/skin\" as *;\n```\n\n```bash\n# 3. AI 编辑器中触发：\n#    \"用 wk-ui 的 legacy-skin-align 流程跑一下当前项目\"\n# → AI 按 _flows/legacy-skin-align.md 顺序执行 6 个 phase\n\n# 或纯审计（不修）：\nnpx wk-ui scan --target src --mode skin --outFile audit.md\n```\n\n### 场景 C — AI 编辑器 / MCP 接入\n\n```bash\n# 安装或更新 Skill 到当前业务项目\nnpx wk-ui init --project . --editor auto\nnpx wk-ui update --project .\n\n# 查看 AI 触发提示\nnpx wk-ui prompts\n\n# 体检安装结果和 MCP/规范插件提示\nnpx wk-ui doctor --project .\n```\n\n安装后会写入 `.github/wk-skills-ui/TRIGGER_PROMPTS.md`、`.mcp.json` 和 `.wk-skills-ui-manifest.json`。支持的编辑器可以单独指定，例如 `--editor claude-code`、`--editor cline`、`--editor agents-generic`、`--editor qoder`。\n\n### 场景 D — 仅 CI 检查\n\n```json\n// package.json\n{\n  \"scripts\": {\n    \"ui:check\": \"wk-ui check --project .\",\n    \"ui:audit\": \"wk-ui scan --target src --outFile ui-audit.md\",\n    \"ui:fix\": \"wk-ui fix --target src --dry-run\"\n  }\n}\n```\n\n---\n\n## CLI 速查\n\n```bash\nwk-ui init    [--project .] [--editor <e>] [--mode native|skin]\n                            [--dry-run] [--skills-only]\nwk-ui update  [--project .] [--force] [--dry-run]\nwk-ui diff    [--project .]\nwk-ui clean   [--project .] [--dry-run]\nwk-ui doctor  [--project .]\nwk-ui prompts\nwk-ui scan    --target src  [--layer L0,L1,L2] [--vendor base-table,jh]\n                            [--mode skin|native] [--outFile report.md]\nwk-ui check   --project .\nwk-ui fix     --target src  [--dry-run]\nwk-ui all     --project .\nwk-ui add-preset <name>     # 脚手架新业务 preset\n```\n\n支持的 AI 编辑器：`github-copilot` / `cursor` / `windsurf` / `kiro` / `trae` / `claude-code` / `cline` / `agents-generic` / `qoder`（自动检测）\n\n`init/update` 会同时写入：\n\n- AI Skill 规则文件\n- `.github/wk-skills-ui/TRIGGER_PROMPTS.md` 触发提示\n- `.mcp.json` 中的 `wk-skills-ui` MCP Server 配置\n- `.wk-skills-ui-manifest.json` 安装清单，供 `update/diff/clean/doctor` 使用\n\n> 可选桥接：如项目也安装了 `@agile-team/wl-skills-kit`，两者保持独立分工，不互相强依赖。kit 负责编码规范/页面生成/菜单字典权限，wk-skills-ui 负责 UI 风格/化妆层/Runtime 渲染。\n\n> 规范插件建议：项目可执行 `npx @robot-admin/git-standards init` 接入 ESLint/Prettier/Husky/提交规范，形成代码质量闭环。\n\n---\n\n## AI Skills 触发模型\n\n### 组合流程触发（一句话跑全套）\n\n```\n@workspace 用 wk-ui 的 legacy-skin-align 流程对当前项目做老项目化妆对齐\n↓\nAI 按 _flows/legacy-skin-align.md 严格 6 phase 执行：\n  1. 接入 tokens\n  2. 接入 skin preset\n  3. 触发 vendors/* skill 修复（按优先级 Base > jh > C_ > custom）\n  4. 触发 element/* skill 修复\n  5. 触发 tokens/* 规则修复\n  6. 不动业务代码\n```\n\n### 单点 Skill 触发（精准修复）\n\n```\n@workspace 用 wk-ui 的 vendors/base-table skill 检查这个文件\n↓ AI 仅加载 base-table SKILL.md，针对 R001/R002/R003/R014 修复\n```\n\n### Skin 模式优先级（团队约定）\n\n```\nBase* > jh-* > C_*/c_* > custom wrappers\n       (高)            (低)\n```\n\n样式文件加载顺序在 `styles/vendors/index.scss` 中固化，确保高优先级覆盖低优先级。\n\n---\n\n## 扩展机制\n\n### 1. 新增一个业务 preset\n\n```bash\nnpx wk-ui add-preset my-biz\n# 生成 runtime/presets/my-biz.ts，按提示填字段映射，然后：\n```\n\n```ts\n// main.ts\nimport { installMyBizPreset } from \"@agile-team/wk-skills-ui/runtime/presets/my-biz\";\ninstallMyBizPreset();\n```\n\n### 2. 新增一类 vendor 封装组件\n\n1. 在 `styles/vendors/` 新建 `_xxx.scss`\n2. 在 `styles/vendors/index.scss` 按优先级 `@forward` 进去\n3. 在 `skills/vendors/xxx/` 新建 `SKILL.md`（含 Detect/Diagnose/Repair 三段）\n4. 在 `skills/_meta/_detection.md` 追加识别特征\n5. 在 `scanner/rules/` 追加规则（带 `category: 'vendor-xxx'`，自动获得 `layer:'L2'`）\n\n### 3. 新增一类页面骨架\n\n1. 在 `styles/layouts/` 新建 `_xxx.scss`\n2. 在 `styles/layouts/index.scss` `@forward` 进去\n3. 在 `templates/xxx/` 新建 `TPL-XXX.md`\n4. 在 `skills/layouts/xxx/` 新建 `SKILL.md`\n\n### 4. 新增一条扫描规则\n\n```js\n// scanner/rules/my-rule.mjs\nexport const myRules = [\n  {\n    id: \"R200\",\n    category: \"vendor-base-table\", // 自动 layer=L2 / vendor=base-table\n    severity: \"warning\",\n    name: \"...\",\n    check(template, file, lineOffset) {\n      /* return issue[] */\n    },\n  },\n];\n\n// scanner/rules/index.mjs 中追加 import + addRules\n```\n\n---\n\n## Element Plus 组件族样式管控\n\n`wk-skills-ui` 的核心是样式绝对管控。加载 `styles`、`styles/presets/skin` 或 `styles/presets/element-only` 后，会统一覆盖首批 B 端高频 Element Plus 组件族：\n\n| 组件族       | 覆盖标签                                                   | 典型场景                         |\n| ------------ | ---------------------------------------------------------- | -------------------------------- |\n| card         | `el-card`                                                  | 列表容器、详情卡片、统计卡片     |\n| tabs         | `el-tabs` `el-tab-pane`                                    | 详情页 Tab、配置页 Tab、主从切换 |\n| descriptions | `el-descriptions`                                          | 详情页字段展示、只读信息区       |\n| tree         | `el-tree`                                                  | 左树右表、组织树、区域树         |\n| drawer       | `el-drawer`                                                | 抽屉详情、抽屉编辑               |\n| upload       | `el-upload`                                                | 附件上传、图片上传、文件列表     |\n| steps        | `el-steps` `el-step`                                       | 审批流、流程状态                 |\n| overlay      | `el-popover` `el-tooltip` `el-dropdown`                    | 辅助说明、溢出提示、更多操作     |\n| navigation   | `el-menu` `el-breadcrumb`                                  | 导航、面包屑                     |\n| feedback     | `el-empty` `el-result` `el-alert` `el-badge` `el-timeline` | 空状态、异常状态、提示反馈       |\n\n扫描器会在 JSON/Markdown 报告中输出 `componentCoverage`、`recommendedSkills`、`recommendations` 和 `kitBridge`，用于 AI 自动判断下一步是继续由 `wk-skills-ui` 做 Skin/Native 视觉统一，还是桥接 `wl-skills-kit` 做页面结构规范化。\n\n同时会识别以下 B 端组合业务场景：\n\n| 场景                | 识别含义                     |\n| ------------------- | ---------------------------- |\n| `query-table`       | 查询区 + 表格                |\n| `toolbar-actions`   | 工具栏 / 批量操作栏          |\n| `tree-table`        | 左树右表                     |\n| `dialog-form`       | 弹窗表单                     |\n| `drawer-detail`     | 抽屉详情 / 抽屉编辑          |\n| `detail-card`       | 详情卡片                     |\n| `tab-workbench`     | Tab 工作台 / Tab 详情        |\n| `attachment-upload` | 附件上传                     |\n| `process-flow`      | 流程 / 审批                  |\n| `feedback-state`    | 空状态 / 异常状态 / 反馈提示 |\n\n---\n\n## AI/MCP 智能引导\n\n| MCP Tool                | 作用                                                       |\n| ----------------------- | ---------------------------------------------------------- |\n| `wks_ui_check`          | 检查 tokens/styles/runtime 接入完整性                      |\n| `wks_ui_scan`           | 扫描 UI 风格偏差，输出 Markdown 或 JSON                    |\n| `wks_ui_fix_dry_run`    | 预览自动修复，不实际写入                                   |\n| `wks_ui_skill_prompt`   | 输出 AI 触发提示                                           |\n| `wks_ui_route_intent`   | 根据自然语言识别 UI 治理意图并推荐 flow/tool/skill         |\n| `wks_ui_recommend_flow` | 根据扫描 JSON 推荐 nextActions 和 `wl-skills-kit` 桥接动作 |\n\n推荐智能体流程：\n\n```text\n用户自然语言\n  → wks_ui_route_intent\n  → wks_ui_scan --output json\n  → wks_ui_recommend_flow\n  → 先保证样式统一\n  → 如需规范化，再桥接 wl-skills-kit validate-page / doctor-ui\n```\n\n---\n\n## Runtime API 概览\n\n| API                                              | 说明                                               |\n| ------------------------------------------------ | -------------------------------------------------- |\n| `defineColumns(cols)`                            | 列定义，自动应用 `COLUMN_AUTO_MAP`                 |\n| `renderOps(items)`                               | 操作列图标按钮组（view/edit/del/log/ok/send 预设） |\n| `renderTagNode(v, map)`                          | 状态 Tag 渲染                                      |\n| `renderClassifyTag(v, map)`                      | 分类 Tag 渲染                                      |\n| `renderBadge(v)` / `renderCountBadge(v)`         | 编号 / 计数徽标                                    |\n| `renderRatingLevel(v)`                           | 评级颜色                                           |\n| `registerColumnAutoMap(field, config)`           | 注册新字段自动渲染                                 |\n| `installCommonPreset()`                          | 安装通用业务预设                                   |\n| `setDictResolver(fn)`                            | 解耦动态字典查询                                   |\n| `createPreset(config)` / `installPreset(config)` | 自定义 preset 工厂                                 |\n\n---\n\n## 设计令牌\n\n详见 `design/spec/`：\n\n| 维度 | 文档                                                   |\n| ---- | ------------------------------------------------------ |\n| 颜色 | [design/spec/color.md](design/spec/color.md)           |\n| 字号 | [design/spec/typography.md](design/spec/typography.md) |\n| 间距 | [design/spec/spacing.md](design/spec/spacing.md)       |\n\n主色：`#4368ff` → `--el-color-primary`（与 Element Plus 默认蓝对齐）\n\n---\n\n## 规范清单\n\n### UI 规则（R001-R037，按 layer 自动分组）\n\n| Rule | Layer | Vendor    | 说明                                 |\n| ---- | ----- | --------- | ------------------------------------ |\n| R001 | L1    | element   | el-table-column 缺 `align=\"center\"`  |\n| R002 | L1    | element   | el-table 缺 `empty-text`             |\n| R003 | L1    | element   | BaseTable 缺 `empty-text`            |\n| R004 | L1    | element   | 操作列按钮非文字按钮                 |\n| R005 | L1    | element   | 工具栏按钮缺 icon                    |\n| R006 | L1    | element   | 表单控件缺 `size=\"small\"`            |\n| R007 | L1    | element   | el-date-picker 缺 `width:100%`       |\n| R008 | L1    | element   | label-width ≥ 150px                  |\n| R009 | L1    | element   | 状态字段纯文本渲染                   |\n| R010 | L1    | element   | 分类字段缺 `effect=\"plain\"`          |\n| R011 | L1    | element   | 分页器位置错误                       |\n| R012 | L1    | element   | 弹窗内 el-table 缺 `empty-text`      |\n| R013 | L4    | runtime   | columnsDef 用旧格式 `operations: []` |\n| R014 | L1    | element   | selection 列缺 header-align          |\n| R015 | L1    | element   | modal 内表格按钮非 link              |\n| R016 | L0    | —         | `<style>` 块硬编码颜色               |\n| R017 | L0    | —         | `<template>` 块硬编码颜色            |\n| R018 | L0    | —         | `<script>` 块硬编码颜色              |\n| R021 | L2    | BaseTable | BaseTable 缺 `render-type=\"agGrid\"`  |\n| R022 | L2    | BaseTable | BaseTable 缺唯一 `cid/:cid`          |\n| R031 | L1    | element   | el-card 建议使用统一场景 class       |\n| R032 | L1    | element   | el-tabs 建议明确页面场景             |\n| R033 | L1    | element   | el-descriptions 建议 bordered/容器   |\n| R034 | L1    | element   | el-drawer 建议明确 size              |\n| R035 | L1    | element   | el-upload 建议配置 tip/限制说明      |\n| R036 | L1    | element   | el-steps 建议明确状态来源            |\n| R037 | L1    | element   | 空/异常反馈建议统一操作入口          |\n\n### 工程规范\n\n- [01-import-order.md](standards/engineering/01-import-order.md)\n- [02-naming.md](standards/engineering/02-naming.md)\n- [03-scss-structure.md](standards/engineering/03-scss-structure.md)\n\n---\n\n## 未来路线图\n\n| 阶段       | 目标                                                                |\n| ---------- | ------------------------------------------------------------------- |\n| **v1.5.x** | 生命周期 CLI + manifest + MCP + 多编辑器适配 + 规范插件接入         |\n| **v1.6**   | 多业务 preset 矩阵（safe / hr / asset / ops 等）和更多 MCP 辅助工具 |\n| **v2.0**   | 稳定接口冻结，正式标记 stable                                       |\n\n---\n\n## 贡献\n\n```bash\ngit clone git@github.com:ChenyCHENYU/wl-skills-ui.git\ncd wl-skills-ui\npnpm install\npnpm lint\npnpm build\nnode scanner/index.mjs scan --target reference\n```\n\n约定：\n\n- 提交规范见 [Git Commit Convention](#git-commit-convention)\n- 新增规则必须带 `category` → 自动获得 `layer/vendor`\n- 新增 vendor 必须同时更新：styles + skills + \\_detection.md + scanner\n\n### Git Commit Convention\n\n```\n类型(作用域): 内容\n```\n\n类型：`feat` `fix` `docs` `style` `refactor` `chore` `perf`\n\n---\n\n## License\n\nUNLICENSED — 内部专用，未经授权不得外传\n","readmeFilename":"README.md"}