{"_id":"@coderych/naive-ui-pro-components","_rev":"5-d82a5f24cece6d059fe9334fc86dcd55","name":"@coderych/naive-ui-pro-components","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@coderych/naive-ui-pro-components","version":"0.1.0","keywords":["vue","vue3","naive-ui","pro-components","table","form","tsx"],"author":"","license":"MIT","_id":"@coderych/naive-ui-pro-components@0.1.0","maintainers":[{"name":"coderych","email":"chaohua.yang@qq.com"}],"homepage":"https://github.com/coderych/naive-ui-pro-components#readme","bugs":{"url":"https://github.com/coderych/naive-ui-pro-components/issues"},"dist":{"shasum":"47d1b2399187ffe5ce243213e8bf0e598d37f71b","tarball":"https://registry.npmjs.org/@coderych/naive-ui-pro-components/-/naive-ui-pro-components-0.1.0.tgz","fileCount":179,"integrity":"sha512-Hokcss1g9/nDKUEy6PvPOtnRl9JK+ST9buGKq/UR02ncK0D+egvoSSZUNc8KSTOrp4Wnt1Z8z3yLK5wVRRGi4Q==","signatures":[{"sig":"MEUCIQCuCE1Yxo+5/zS79Uig0tnSkILQrnhkRDqB+pn5DALzOgIga5JYHEBrSLQsJE6TMeH+DjtidkYISBJayHR5jyk4+Z0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1138060},"main":"./lib/index.js","type":"module","types":"./es/index.d.ts","volar":"./volar.d.ts","module":"./es/index.mjs","exports":{".":{"types":"./es/index.d.ts","import":"./es/index.mjs","require":"./lib/index.js"},"./es/*":"./es/*","./lib/*":"./lib/*"},"gitHead":"85e85f25774d436ebff58764bfa179ff32c5253d","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"vite build && npm run build:types","clean":"rimraf es lib dist","docs:dev":"vitepress dev docs","lint:fix":"eslint . --fix","build:lib":"npm run build && node scripts/post-build.mjs","docs:build":"vitepress build docs","test:watch":"vitest","build:types":"vue-tsc --declaration --emitDeclarationOnly --outDir es","docs:preview":"vitepress preview docs","prepublishOnly":"npm run clean && npm run build:lib"},"_npmUser":{"name":"coderych","email":"chaohua.yang@qq.com"},"web-types":"./web-types.json","repository":{"url":"git+https://github.com/coderych/naive-ui-pro-components.git","type":"git"},"_npmVersion":"11.16.0","description":"Advanced pro components built on top of Naive UI for Vue 3","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"lodash-es":"^4.17.21","css-render":"^0.15.14","@iconify/vue":"^4.2.0","vue-draggable-plus":"^0.6.0","@css-render/plugin-bem":"^0.15.14","@iconify-icons/heroicons":"^1.2.9"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"vue":"^3.5.13","jiti":"^2.7.0","vite":"^6.3.2","jsdom":"^29.1.1","eslint":"^10.7.0","rimraf":"^6.0.1","vitest":"^3.1.1","vue-tsc":"^2.2.8","naive-ui":"^2.40.3","vitepress":"^1.6.3","typescript":"^5.7.3","@vue/test-utils":"^2.4.6","@types/lodash-es":"^4.17.12","@vitejs/plugin-vue":"^5.2.3","@antfu/eslint-config":"^9.1.0","@vitejs/plugin-vue-jsx":"^4.1.1"},"peerDependencies":{"vue":"^3.4.0","naive-ui":"^2.38.0"},"_npmOperationalInternal":{"tmp":"tmp/naive-ui-pro-components_0.1.0_1784459037719_0.7967098482439685","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@coderych/naive-ui-pro-components","version":"0.2.0","keywords":["vue","vue3","naive-ui","pro-components","table","form","tsx"],"author":"","license":"MIT","_id":"@coderych/naive-ui-pro-components@0.2.0","maintainers":[{"name":"coderych","email":"chaohua.yang@qq.com"}],"homepage":"https://github.com/coderych/naive-ui-pro-components#readme","bugs":{"url":"https://github.com/coderych/naive-ui-pro-components/issues"},"dist":{"shasum":"1cf530d75550ef890b75643fa9553ec9ccd3245a","tarball":"https://registry.npmjs.org/@coderych/naive-ui-pro-components/-/naive-ui-pro-components-0.2.0.tgz","fileCount":181,"integrity":"sha512-d4lQtF75hq84zd86rywEJYhyOaSPzanURuDWvs1s2NQ7z0ugVi87/WSI+ABKPdG1cYKfSLjpS/jJrVnU1Jfl+g==","signatures":[{"sig":"MEYCIQDrPHO0jVux6sZSM1ctDIkePecARqogJhKuc9S0zPbdHQIhAPS1OzV8JB5oNIrd5VzQth6PsiuRZvyqE4M6ZuAkv0U7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1155336},"main":"./lib/index.js","type":"module","types":"./es/index.d.ts","volar":"./volar.d.ts","module":"./es/index.mjs","exports":{".":{"types":"./es/index.d.ts","import":"./es/index.mjs","require":"./lib/index.js"},"./es/*":"./es/*","./lib/*":"./lib/*"},"gitHead":"940e1060cecdc74d0461965a2c08903d6b71601b","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"vite build && npm run build:types","clean":"rimraf es lib dist","docs:dev":"vitepress dev docs","lint:fix":"eslint . --fix","build:lib":"npm run build && node scripts/post-build.mjs","docs:build":"vitepress build docs","test:watch":"vitest","build:types":"vue-tsc --declaration --emitDeclarationOnly --outDir es","docs:preview":"vitepress preview docs","prepublishOnly":"npm run clean && npm run build:lib"},"_npmUser":{"name":"coderych","email":"chaohua.yang@qq.com"},"web-types":"./web-types.json","repository":{"url":"git+https://github.com/coderych/naive-ui-pro-components.git","type":"git"},"_npmVersion":"11.16.0","description":"Advanced pro components built on top of Naive UI for Vue 3","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"lodash-es":"^4.17.21","css-render":"^0.15.14","@iconify/vue":"^4.2.0","vue-draggable-plus":"^0.6.0","@css-render/plugin-bem":"^0.15.14","@iconify-icons/heroicons":"^1.2.9"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"vue":"^3.5.13","jiti":"^2.7.0","vite":"^6.3.2","jsdom":"^29.1.1","eslint":"^10.7.0","rimraf":"^6.0.1","vitest":"^3.1.1","vue-tsc":"^2.2.8","naive-ui":"^2.40.3","vitepress":"^1.6.3","typescript":"^5.7.3","@vue/test-utils":"^2.4.6","@types/lodash-es":"^4.17.12","@vitejs/plugin-vue":"^5.2.3","@antfu/eslint-config":"^9.1.0","@vitejs/plugin-vue-jsx":"^4.1.1"},"peerDependencies":{"vue":"^3.4.0","naive-ui":"^2.38.0"},"_npmOperationalInternal":{"tmp":"tmp/naive-ui-pro-components_0.2.0_1784466890267_0.09093078036755631","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@coderych/naive-ui-pro-components","version":"0.2.1","keywords":["vue","vue3","naive-ui","pro-components","table","form","tsx"],"author":"","license":"MIT","_id":"@coderych/naive-ui-pro-components@0.2.1","maintainers":[{"name":"coderych","email":"chaohua.yang@qq.com"}],"homepage":"https://github.com/coderych/naive-ui-pro-components#readme","bugs":{"url":"https://github.com/coderych/naive-ui-pro-components/issues"},"dist":{"shasum":"6b4211f304ec425aea686c375f45142ac5d8b5fc","tarball":"https://registry.npmjs.org/@coderych/naive-ui-pro-components/-/naive-ui-pro-components-0.2.1.tgz","fileCount":181,"integrity":"sha512-WqgLm3/fwdJYeyuSvimU7FjqDrXwx4JfGhlvOWdQLMpEEgPHIkZ5/dn6J30z26sP4steqAAAkSFo9fhP3O4ffg==","signatures":[{"sig":"MEUCICfxmJv6FbG4PzULX8e/Rl6Ot2yotQ9Zb9q7zZLseRwsAiEAljcilgqBbRL7Xq8OheZ2qfNc3hBuF3TBGFDZ3IcMPHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1170004},"main":"./lib/index.js","type":"module","types":"./es/index.d.ts","volar":"./volar.d.ts","module":"./es/index.mjs","exports":{".":{"types":"./es/index.d.ts","import":"./es/index.mjs","require":"./lib/index.js"},"./es/*":"./es/*","./lib/*":"./lib/*"},"gitHead":"bbfe742bdea5404ede06a36c1dffc8e348a521d7","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"vite build && npm run build:types","clean":"rimraf es lib dist","docs:dev":"vitepress dev docs","lint:fix":"eslint . --fix","build:lib":"npm run build && node scripts/post-build.mjs","docs:build":"vitepress build docs","test:watch":"vitest","build:types":"vue-tsc --declaration --emitDeclarationOnly --outDir es","postinstall":"npx simple-git-hooks","docs:preview":"vitepress preview docs","prepublishOnly":"npm run clean && npm run build:lib"},"_npmUser":{"name":"coderych","email":"chaohua.yang@qq.com"},"web-types":"./web-types.json","repository":{"url":"git+https://github.com/coderych/naive-ui-pro-components.git","type":"git"},"_npmVersion":"11.16.0","description":"Advanced pro components built on top of Naive UI for Vue 3","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"lodash-es":"^4.17.21","css-render":"^0.15.14","@iconify/vue":"^4.2.0","vue-draggable-plus":"^0.6.0","@css-render/plugin-bem":"^0.15.14","@iconify-icons/heroicons":"^1.2.9"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"vue":"^3.5.13","jiti":"^2.7.0","vite":"^6.3.2","jsdom":"^29.1.1","eslint":"^10.7.0","rimraf":"^6.0.1","vitest":"^3.1.1","vue-tsc":"^2.2.8","naive-ui":"^2.40.3","vitepress":"^1.6.3","typescript":"^5.7.3","@vue/test-utils":"^2.4.6","@types/lodash-es":"^4.17.12","simple-git-hooks":"^2.13.1","@vitejs/plugin-vue":"^5.2.3","@antfu/eslint-config":"^9.1.0","@vitejs/plugin-vue-jsx":"^4.1.1"},"peerDependencies":{"vue":"^3.4.0","naive-ui":"^2.38.0"},"simple-git-hooks":{"pre-commit":"pnpm lint"},"_npmOperationalInternal":{"tmp":"tmp/naive-ui-pro-components_0.2.1_1784472602948_0.13213812198102626","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@coderych/naive-ui-pro-components","version":"0.3.0","keywords":["vue","vue3","naive-ui","pro-components","table","form","tsx"],"author":"","license":"MIT","_id":"@coderych/naive-ui-pro-components@0.3.0","maintainers":[{"name":"coderych","email":"chaohua.yang@qq.com"}],"homepage":"https://github.com/coderych/naive-ui-pro-components#readme","bugs":{"url":"https://github.com/coderych/naive-ui-pro-components/issues"},"dist":{"shasum":"10c980c3792703d9f44f48f10234fe4b501c801f","tarball":"https://registry.npmjs.org/@coderych/naive-ui-pro-components/-/naive-ui-pro-components-0.3.0.tgz","fileCount":183,"integrity":"sha512-giQOyhjhtlyguM0tbm/FaItwEFy//5EcW5z/+HotFXiP+iXDysFfDcLPsXSGwuXy9/335R01b8gBCkLa/KRsDg==","signatures":[{"sig":"MEUCIQCBXKXIkRj4lndRYOlzvY/yk0wRA4Uv11D07oz6DKmacAIgGsDKHGP2QLV1PlnzPqLoyrSgl/4zftnTOPHEGnKVGVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1175466},"main":"./lib/index.js","type":"module","types":"./es/index.d.ts","volar":"./volar.d.ts","module":"./es/index.mjs","exports":{".":{"types":"./es/index.d.ts","import":"./es/index.mjs","require":"./lib/index.js"},"./es/*":"./es/*","./lib/*":"./lib/*"},"gitHead":"daa166274ea53261e4fd8f476744cae936f9f0b5","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"vite build && npm run build:types","clean":"rimraf es lib dist","docs:dev":"vitepress dev docs","lint:fix":"eslint . --fix","build:lib":"npm run build && node scripts/post-build.mjs","docs:build":"vitepress build docs","test:watch":"vitest","build:types":"vue-tsc --declaration --emitDeclarationOnly --outDir es","postinstall":"npx simple-git-hooks","docs:preview":"vitepress preview docs","prepublishOnly":"npm run clean && npm run build:lib"},"_npmUser":{"name":"coderych","email":"chaohua.yang@qq.com"},"web-types":"./web-types.json","repository":{"url":"git+https://github.com/coderych/naive-ui-pro-components.git","type":"git"},"_npmVersion":"11.16.0","description":"Advanced pro components built on top of Naive UI for Vue 3","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"lodash-es":"^4.17.21","css-render":"^0.15.14","@iconify/vue":"^4.2.0","vue-draggable-plus":"^0.6.0","@css-render/plugin-bem":"^0.15.14","@iconify-icons/heroicons":"^1.2.9"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.4","devDependencies":{"vue":"^3.5.13","jiti":"^2.7.0","vite":"^6.3.2","jsdom":"^29.1.1","eslint":"^10.7.0","rimraf":"^6.0.1","vitest":"^3.1.1","vue-tsc":"^2.2.8","naive-ui":"^2.40.3","vitepress":"^1.6.3","typescript":"^5.7.3","@vue/test-utils":"^2.4.6","@types/lodash-es":"^4.17.12","simple-git-hooks":"^2.13.1","@vitejs/plugin-vue":"^5.2.3","@antfu/eslint-config":"^9.1.0","@vitejs/plugin-vue-jsx":"^4.1.1"},"peerDependencies":{"vue":"^3.4.0","naive-ui":"^2.38.0"},"simple-git-hooks":{"pre-commit":"pnpm lint"},"_npmOperationalInternal":{"tmp":"tmp/naive-ui-pro-components_0.3.0_1784477815839_0.21656418783451614","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@coderych/naive-ui-pro-components","type":"module","version":"0.4.0","packageManager":"pnpm@10.33.4","description":"Advanced pro components built on top of Naive UI for Vue 3","author":"","license":"MIT","repository":{"type":"git","url":"git+https://github.com/coderych/naive-ui-pro-components.git"},"keywords":["vue","vue3","naive-ui","pro-components","table","form","tsx"],"sideEffects":false,"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.mjs","require":"./lib/index.js"},"./es/*":"./es/*","./lib/*":"./lib/*"},"main":"./lib/index.js","module":"./es/index.mjs","types":"./es/index.d.ts","web-types":"./web-types.json","volar":"./volar.d.ts","scripts":{"dev":"vite","build":"vite build && npm run build:types","build:types":"vue-tsc --declaration --emitDeclarationOnly --outDir es","build:lib":"npm run build && node scripts/post-build.mjs","lint":"eslint .","lint:fix":"eslint . --fix","test":"vitest run","test:watch":"vitest","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","clean":"rimraf es lib dist","postinstall":"npx simple-git-hooks","prepublishOnly":"npm run clean && npm run build:lib"},"peerDependencies":{"naive-ui":"^2.38.0","vue":"^3.4.0"},"dependencies":{"@css-render/plugin-bem":"^0.15.14","@iconify-icons/heroicons":"^1.2.9","@iconify/vue":"^4.2.0","css-render":"^0.15.14","lodash-es":"^4.17.21","vue-draggable-plus":"^0.6.0"},"devDependencies":{"@antfu/eslint-config":"^9.1.0","@types/lodash-es":"^4.17.12","@vitejs/plugin-vue":"^5.2.3","@vitejs/plugin-vue-jsx":"^4.1.1","@vue/test-utils":"^2.4.6","eslint":"^10.7.0","jiti":"^2.7.0","jsdom":"^29.1.1","naive-ui":"^2.40.3","rimraf":"^6.0.1","simple-git-hooks":"^2.13.1","typescript":"^5.7.3","vite":"^6.3.2","vitepress":"^1.6.3","vitest":"^3.1.1","vue":"^3.5.13","vue-tsc":"^2.2.8"},"simple-git-hooks":{"pre-commit":"pnpm lint"},"gitHead":"fab698b5c260777f644d5ec58f52c19e65b27b19","_id":"@coderych/naive-ui-pro-components@0.4.0","bugs":{"url":"https://github.com/coderych/naive-ui-pro-components/issues"},"homepage":"https://github.com/coderych/naive-ui-pro-components#readme","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-aR7c2YKS4Dk12v7X+d4cbloU1PUu33E7VXXgQTmb4kfJRL5IUmuZ5hTwDw77UfQ+kUiodQHtuy01PiLSDsYhMQ==","shasum":"acc09f4ac71bf2a7947a0f21202cd5f9a0ff2df9","tarball":"https://registry.npmjs.org/@coderych/naive-ui-pro-components/-/naive-ui-pro-components-0.4.0.tgz","fileCount":205,"unpackedSize":1574497,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID7c62sggCHJ7LToAbog1wWmkrk8+HM4sxPjPnz0YH9SAiBL3lLis2FPe1AoR9TjkGc0AIG9rbP8ztiwaLLnGtCaPw=="}]},"_npmUser":{"name":"coderych","email":"chaohua.yang@qq.com"},"directories":{},"maintainers":[{"name":"coderych","email":"chaohua.yang@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/naive-ui-pro-components_0.4.0_1784900042738_0.8849460708326524"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T11:03:57.604Z","modified":"2026-07-24T13:34:03.004Z","0.1.0":"2026-07-19T11:03:57.956Z","0.2.0":"2026-07-19T13:14:50.443Z","0.2.1":"2026-07-19T14:50:03.168Z","0.3.0":"2026-07-19T16:16:56.053Z","0.4.0":"2026-07-24T13:34:02.874Z"},"bugs":{"url":"https://github.com/coderych/naive-ui-pro-components/issues"},"license":"MIT","homepage":"https://github.com/coderych/naive-ui-pro-components#readme","keywords":["vue","vue3","naive-ui","pro-components","table","form","tsx"],"repository":{"type":"git","url":"git+https://github.com/coderych/naive-ui-pro-components.git"},"description":"Advanced pro components built on top of Naive UI for Vue 3","maintainers":[{"name":"coderych","email":"chaohua.yang@qq.com"}],"readme":"# Naive UI Pro Components\r\n\r\n基于 [Naive UI](https://www.naiveui.com/) 的企业级 Vue 3 组件库，开箱即用。\r\n\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\r\n[![Docs](https://img.shields.io/badge/Docs-在线文档-blue)](https://coderych.github.io/naive-ui-pro-components/)\r\n\r\n## 📖 文档\r\n\r\n在线文档：https://coderych.github.io/naive-ui-pro-components/\r\n\r\n## ✨ 特性\r\n\r\n- 🚀 **开箱即用** - 基于 Naive UI 的高级业务组件，开箱即用\r\n- 🔧 **丰富组件** - 包含 ProTable、ProForm、ProPopup 等高级组件\r\n- 🎨 **完整兼容** - 完全兼容 Naive UI 的 Props、Events、Slots\r\n- 📝 **TypeScript** - 完整的 TypeScript 类型定义\r\n- 🌍 **国际化** - 内置国际化支持，可配置翻译函数\r\n- 📦 **按需引入** - 支持 Tree-shaking，ESM 和 CJS 格式输出\r\n\r\n## 📦 安装\r\n\r\n```bash\r\nnpm install @coderych/naive-ui-pro-components\r\n# 或\r\npnpm add @coderych/naive-ui-pro-components\r\n```\r\n\r\n## 🚀 快速开始\r\n\r\n### 全局注册\r\n\r\n```ts\r\nimport NaiveUIProComponents from '@coderych/naive-ui-pro-components'\r\nimport naive from 'naive-ui'\r\nimport { createApp } from 'vue'\r\nimport App from './App.vue'\r\n\r\nconst app = createApp(App)\r\napp.use(naive)\r\napp.use(NaiveUIProComponents)\r\napp.mount('#app')\r\n```\r\n\r\n### 按需引入\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { ProTable } from '@coderych/naive-ui-pro-components'\r\n\r\nconst columns = [\r\n  { key: 'name', title: '姓名' },\r\n  { key: 'age', title: '年龄' }\r\n]\r\n\r\nconst data = [\r\n  { name: '张三', age: 28 },\r\n  { name: '李四', age: 32 }\r\n]\r\n</script>\r\n\r\n<template>\r\n  <ProTable :columns=\"columns\" :data=\"data\" />\r\n</template>\r\n```\r\n\r\n## 🧩 组件列表\r\n\r\n| 组件 | 描述 |\r\n| --- | --- |\r\n| [ProTable](#protable) | 高级表格，支持搜索、分页、批量操作 |\r\n| [ProForm](#proform) | 高级表单，支持多种字段类型和验证 |\n| [ProSelect](https://coderych.github.io/naive-ui-pro-components/components/pro-select) | 高级选择器，支持远程下拉分页与 ProPopup 表格选择 |\n| [ProPopup](#propopup) | 弹窗组件，支持抽屉和对话框两种模式 |\n| [ProCheckboxGroup](#procheckboxgroup) | 复选框组组件 |\r\n| [ProRadioGroup](#proradiogroup) | 单选框组组件 |\r\n| [ProSwitch](#proswitch) | 开关组件 |\r\n\r\n---\r\n\r\n## ProTable\r\n\r\n高级数据表格组件，基于 Naive UI 的 `NDataTable` 封装，提供强大的数据管理能力。\r\n\r\n### 基础用法\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { ProTable } from '@coderych/naive-ui-pro-components'\r\nimport { ref } from 'vue'\r\n\r\nconst columns = [\r\n  { key: 'id', title: 'ID' },\r\n  { key: 'name', title: '姓名' },\r\n  { key: 'age', title: '年龄' },\r\n  { key: 'address', title: '地址' }\r\n]\r\n\r\nconst data = ref([\r\n  { id: 1, name: '张三', age: 28, address: '北京市' },\r\n  { id: 2, name: '李四', age: 32, address: '上海市' },\r\n  { id: 3, name: '王五', age: 25, address: '广州市' }\r\n])\r\n</script>\r\n\r\n<template>\r\n  <ProTable :columns=\"columns\" :data=\"data\" />\r\n</template>\r\n```\r\n\r\n### 远程数据请求\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { ProTable } from '@coderych/naive-ui-pro-components'\r\n\r\nconst columns = [\r\n  { key: 'id', title: 'ID' },\r\n  { key: 'name', title: '姓名', search: true },\r\n  { key: 'status', title: '状态', search: { type: 'select', options: [] } }\r\n]\r\n\r\n// 远程请求函数\r\nasync function request(params) {\r\n  const res = await fetch('/api/users', { params })\r\n  return {\r\n    data: res.data.list,\r\n    total: res.data.total\r\n  }\r\n}\r\n</script>\r\n\r\n<template>\r\n  <ProTable\r\n    :columns=\"columns\"\r\n    :request=\"request\"\r\n  />\r\n</template>\r\n```\r\n\r\n### Props\r\n\r\n| 属性 | 说明 | 类型 | 默认值 |\r\n| --- | --- | --- | --- |\r\n| columns | 表格列配置 | `ProTableColumn[]` | `[]` |\r\n| data | 表格数据（静态数据模式） | `any[]` | `[]` |\r\n| title | 工具栏标题；同名插槽优先级更高 | `string` | - |\r\n| request | 远程请求函数 | `(params) => Promise<{data, total}>` | - |\r\n| rowKey | 行数据唯一标识字段 | `string` | `'id'` |\r\n| loading | 加载状态 | `boolean` | `false` |\r\n| search | 是否显示搜索表单 | `boolean` | `true` |\r\n| toolbar | 是否显示工具栏 | `boolean` | `true` |\r\n| pagination | 分页配置 | `boolean \\| PaginationProps` | `true` |\r\n| manualSearch | 是否手动触发搜索 | `boolean` | `false` |\r\n| checkedRowKeys | 已选中的行键 | `Array<string \\| number>` | - |\r\n| batchActions | 批量操作按钮配置 | `BatchAction[]` | `[]` |\r\n| showIndex | 是否显示序号列 | `boolean` | `true` |\r\n| continuousIndex | 序号是否跨页连续 | `boolean` | `true` |\r\n| pageFields | 分页字段映射 | `{current: string, size: string}` | `{current: 'current', size: 'size'}` |\r\n\r\n### Slots\r\n\r\n| 插槽名 | 说明 |\r\n| --- | --- |\r\n| form | 自定义搜索表单 |\r\n| header | 表格标题区域，参数为 `{ keys, rows }` |\r\n| header-extra | 标题右侧额外内容，参数为 `{ keys, rows }` |\r\n| title | 自定义标题，参数为 `{ keys, rows }` |\r\n| batch-actions | 自定义批量操作区域 |\r\n| default | 自定义表格内容（替代默认 NDataTable） |\r\n\r\n### Methods（通过 ref 调用）\r\n\r\n| 方法 | 说明 |\r\n| --- | --- |\r\n| reload() | 重新加载数据 |\r\n| search() | 触发搜索 |\r\n| reset() | 重置搜索条件 |\r\n| request() | 手动触发请求 |\r\n| setParams(params) | 设置请求参数 |\r\n| updateParams(params) | 更新请求参数 |\r\n\r\n同时继承 `DataTableInst` 的 `filter`、`filters`、`clearFilters`、`clearSorter`、`page`、`sort`、`scrollTo`、`downloadCsv` 和 `clearFilter` 方法。\r\n\r\n---\r\n\r\n## ProForm\r\n\r\n高级表单组件，通过配置式的方式生成表单，支持多种字段类型。\r\n\r\n### 基础用法\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { ProForm } from '@coderych/naive-ui-pro-components'\r\nimport { ref } from 'vue'\r\n\r\nconst model = ref({\r\n  name: '',\r\n  age: null,\r\n  email: ''\r\n})\r\n\r\nconst columns = [\r\n  { key: 'name', label: '姓名', component: 'input', required: true },\r\n  { key: 'age', label: '年龄', component: 'input-number' },\r\n  { key: 'email', label: '邮箱', component: 'input' }\r\n]\r\n</script>\r\n\r\n<template>\r\n  <ProForm\r\n    v-model=\"model\"\r\n    :columns=\"columns\"\r\n  />\r\n</template>\r\n```\r\n\r\n### 支持的字段类型\r\n\r\n| 类型 | 组件 | 说明 |\r\n| --- | --- | --- |\r\n| `input` | NInput | 输入框 |\r\n| `input-number` | NInputNumber | 数字输入框 |\r\n| `select` | NSelect | 下拉选择 |\r\n| `cascader` | NCascader | 级联选择 |\r\n| `tree-select` | NTreeSelect | 树形选择 |\r\n| `checkbox` | NCheckbox | 复选框 |\r\n| `checkbox-group` | NCheckboxGroup | 复选框组 |\r\n| `radio` | NRadio | 单选框 |\r\n| `radio-group` | NRadioGroup | 单选框组 |\r\n| `switch` | NSwitch | 开关 |\r\n| `rate` | NRate | 评分 |\r\n| `slider` | NSlider | 滑块 |\r\n| `date-picker` | NDatePicker | 日期选择器 |\r\n| `time-picker` | NTimePicker | 时间选择器 |\r\n| `color-picker` | NColorPicker | 颜色选择器 |\r\n| `transfer` | NTransfer | 穿梭框 |\r\n| `dynamic-input` | NDynamicInput | 动态输入框 |\r\n| `dynamic-tags` | NDynamicTags | 动态标签 |\r\n| `upload` | NUpload | 上传 |\r\n| `render` | 自定义渲染 | 通过 render 函数自定义 |\r\n\r\n### Props\r\n\r\n| 属性 | 说明 | 类型 | 默认值 |\r\n| --- | --- | --- | --- |\r\n| columns | 表单列配置 | `ProFormColumn[]` | `[]` |\r\n| model / v-model | 表单数据 | `Record<string, any>` | `{}` |\r\n| labelPlacement | 标签位置 | `'left' \\| 'top'` | `'left'` |\r\n| labelWidth | 标签宽度 | `string \\| number` | - |\r\n| xGap | 水平间距 | `number` | `12` |\r\n| yGap | 垂直间距 | `number` | `0` |\r\n| itemResponsive | 是否响应式 | `boolean` | `false` |\r\n\r\n### Methods（通过 ref 调用）\r\n\r\n继承 `FormInst` 的 `validate()`、`restoreValidation()` 和 `invalidateLabelWidth()` 方法。\r\n\r\n---\r\n\r\n## ProPopup\r\n\r\n弹窗组件，统一抽屉（Drawer）和对话框（Modal）的使用方式。\r\n\r\n### 基础用法\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { ProPopup } from '@coderych/naive-ui-pro-components'\r\nimport { ref } from 'vue'\r\n\r\nconst show = ref(false)\r\n</script>\r\n\r\n<template>\r\n  <n-button @click=\"show = true\">\r\n    打开弹窗\r\n  </n-button>\r\n\r\n  <ProPopup\r\n    v-model:show=\"show\"\r\n    title=\"标题\"\r\n    @ok=\"show = false\"\r\n  >\r\n    <p>弹窗内容</p>\r\n  </ProPopup>\r\n</template>\r\n```\r\n\r\n### 使用对话框模式\r\n\r\n```vue\r\n<ProPopup\r\n  v-model:show=\"show\"\r\n  preset=\"modal\"\r\n  title=\"对话框标题\"\r\n  @ok=\"show = false\"\r\n>\r\n  <p>对话框内容</p>\r\n</ProPopup>\r\n```\r\n\r\n### Props\r\n\r\n| 属性 | 说明 | 类型 | 默认值 |\r\n| --- | --- | --- | --- |\r\n| show / v-model:show | 是否显示 | `boolean` | `false` |\r\n| preset | 预设模式 | `'drawer' \\| 'modal'` | `'drawer'` |\r\n| title | 标题 | `string` | - |\r\n| width | 宽度 | `string \\| number` | `800` |\r\n| header | 是否显示头部 | `boolean` | `true` |\r\n| footer | 是否显示底部 | `boolean` | `true` |\r\n| okText | 确定按钮文本 | `string` | `'确定'` |\r\n| cancelText | 取消按钮文本 | `string` | `'取消'` |\r\n| loading | 确定按钮加载状态 | `boolean` | `false` |\r\n\r\n### Events\r\n\r\n| 事件名 | 说明 | 回调参数 |\r\n| --- | --- | --- |\r\n| ok | 点击确定按钮 | - |\r\n| cancel | 点击取消按钮 | - |\r\n| close | 关闭弹窗 | - |\r\n| update:show | 更新显示状态 | `(value: boolean)` |\r\n\r\n### Slots\r\n\r\n| 插槽名 | 说明 |\r\n| --- | --- |\r\n| header | 自定义头部 |\r\n| header-extra | 头部右侧额外内容 |\r\n| footer | 自定义底部 |\r\n| default | 弹窗内容 |\r\n\r\n---\r\n\r\n## ProCheckboxGroup\r\n\r\n复选框组组件，通过配置选项快速生成复选框组。\r\n\r\n### 基础用法\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { ProCheckboxGroup } from '@coderych/naive-ui-pro-components'\r\nimport { ref } from 'vue'\r\n\r\nconst value = ref(['option1'])\r\nconst options = [\r\n  { label: '选项一', value: 'option1' },\r\n  { label: '选项二', value: 'option2' },\r\n  { label: '选项三', value: 'option3' }\r\n]\r\n</script>\r\n\r\n<template>\r\n  <ProCheckboxGroup\r\n    v-model:value=\"value\"\r\n    :options=\"options\"\r\n  />\r\n</template>\r\n```\r\n\r\n### Props\r\n\r\n| 属性 | 说明 | 类型 | 默认值 |\r\n| --- | --- | --- | --- |\r\n| options | 复选框选项 | `CheckboxProps[]` | `[]` |\r\n| value / v-model:value | 选中值 | `Array<string \\| number>` | `[]` |\r\n\r\n---\r\n\r\n## ProRadioGroup\r\n\r\n单选框组组件，支持默认和按钮两种样式。\r\n\r\n### 基础用法\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { ProRadioGroup } from '@coderych/naive-ui-pro-components'\r\nimport { ref } from 'vue'\r\n\r\nconst value = ref('option1')\r\nconst options = [\r\n  { label: '选项一', value: 'option1' },\r\n  { label: '选项二', value: 'option2' },\r\n  { label: '选项三', value: 'option3' }\r\n]\r\n</script>\r\n\r\n<template>\r\n  <ProRadioGroup\r\n    v-model:value=\"value\"\r\n    :options=\"options\"\r\n  />\r\n</template>\r\n```\r\n\r\n### 按钮样式\r\n\r\n```vue\r\n<ProRadioGroup\r\n  v-model:value=\"value\"\r\n  :options=\"options\"\r\n  option-type=\"button\"\r\n  button-style=\"solid\"\r\n/>\r\n```\r\n\r\n### Props\r\n\r\n| 属性 | 说明 | 类型 | 默认值 |\r\n| --- | --- | --- | --- |\r\n| options | 单选框选项 | `RadioProps[]` | `[]` |\r\n| value / v-model:value | 选中值 | `string \\| number` | - |\r\n| optionType | 选项类型 | `'default' \\| 'button'` | `'default'` |\r\n| buttonStyle | 按钮样式 | `'outline' \\| 'solid'` | `'outline'` |\r\n\r\n---\r\n\r\n## ProSwitch\r\n\r\n开关组件，支持文本标签和图标。\r\n\r\n### 基础用法\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { ProSwitch } from '@coderych/naive-ui-pro-components'\r\nimport { ref } from 'vue'\r\n\r\nconst value = ref(false)\r\n</script>\r\n\r\n<template>\r\n  <ProSwitch\r\n    v-model:value=\"value\"\r\n    checked-text=\"开\"\r\n    unchecked-text=\"关\"\r\n  />\r\n</template>\r\n```\r\n\r\n### Props\r\n\r\n| 属性 | 说明 | 类型 | 默认值 |\r\n| --- | --- | --- | --- |\r\n| value / v-model:value | 值 | `boolean` | `false` |\r\n| checkedText | 选中文本 | `string` | - |\r\n| uncheckedText | 未选中文本 | `string` | - |\r\n| checkedIcon | 选中图标 | `Component` | - |\r\n| uncheckedIcon | 未选中图标 | `Component` | - |\r\n\r\n---\r\n\r\n## 🌍 国际化\r\n\r\n通过 `createProConfig` 创建配置并提供翻译函数：\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { createProConfig } from '@coderych/naive-ui-pro-components'\r\n\r\nconst { provide } = createProConfig({\r\n  locale: (key, params) => {\r\n    const messages = {\r\n      'pro.table.reload': '刷新',\r\n      'pro.table.fullscreen': '全屏',\r\n      'pro.table.density': '密度',\r\n      'pro.table.columnSettings': '列设置',\r\n      'pro.popup.ok': '确定',\r\n      'pro.popup.cancel': '取消'\r\n      // ... 更多翻译\r\n    }\r\n    return messages[key] || key\r\n  }\r\n})\r\n\r\nprovide()\r\n</script>\r\n```\r\n\r\n## 📝 TypeScript\r\n\r\n本库提供完整的 TypeScript 类型定义，开箱即用：\r\n\r\n```ts\r\nimport type {\r\n  ProFormColumn,\r\n  ProFormProps,\r\n  ProPopupProps,\r\n  ProTableColumn,\r\n  ProTableInstance,\r\n  ProTableProps\r\n} from '@coderych/naive-ui-pro-components'\r\n```\r\n\r\n## 📄 License\r\n\r\n[MIT](./LICENSE)\r\n","readmeFilename":"README.md"}