{"_id":"@bigflower/pro-mobile","_rev":"8-4490997d171a121976ad316c3e8a188c","name":"@bigflower/pro-mobile","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.0":{"name":"@bigflower/pro-mobile","version":"1.0.0","_id":"@bigflower/pro-mobile@1.0.0","maintainers":[{"name":"bigflower","email":"eleven.duan@outlook.com"}],"dist":{"shasum":"20ecde0e2bdb32de03d64bda792c638a25b9296d","tarball":"https://registry.npmjs.org/@bigflower/pro-mobile/-/pro-mobile-1.0.0.tgz","fileCount":28,"integrity":"sha512-js6peduFHYRMmJop78LUEFIDAC0ZiBtq/cOql4d4jFd4GI1nsBDlGVal0qYCH0mz1SqBgUiKdqOrxFxVDlyZwQ==","signatures":[{"sig":"MEYCIQC+POwdrgfGnC3ri6bedNcCQkgp88lWqmnwXtDwptJ1HgIhAOfdTYKIFsdV7A+2b5Uq6yTGErANm/XLgtiv1EezjiQo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43066},"type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite","lint":"oxlint","build":"vite build && tsc -p tsconfig.lib.json","preview":"vite preview","build:demo":"tsc -b && vite build"},"_npmUser":{"name":"bigflower","email":"eleven.duan@outlook.com"},"description":"Reusable React components built on Ant Design Mobile.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.1","react":"^19.2.7","oxlint":"^1.71.0","react-dom":"^19.2.7","typescript":"~6.0.2","@babel/core":"^7.29.7","@types/node":"^24.13.2","@types/react":"^19.2.17","rc-field-form":"^1.44.0","oxlint-tsgolint":"^0.24.0","postcss-nesting":"^14.0.1","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.0.3","@rolldown/plugin-babel":"^0.2.3","babel-plugin-react-compiler":"^1.0.0"},"peerDependencies":{"dayjs":"^1.11.21","antd-mobile":"^5.42.3","antd-mobile-icons":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/pro-mobile_1.0.0_1785492452572_0.2249935961268663","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bigflower/pro-mobile","version":"1.0.1","license":"MIT","_id":"@bigflower/pro-mobile@1.0.1","maintainers":[{"name":"bigflower","email":"eleven.duan@outlook.com"}],"dist":{"shasum":"d8e3577cd7842f64f0e3a10c1842b79e88ae6091","tarball":"https://registry.npmjs.org/@bigflower/pro-mobile/-/pro-mobile-1.0.1.tgz","fileCount":28,"integrity":"sha512-gSNUQuyHHfs+/J/yqFp6FqYyzB+UyrLVyNFIEyAIzjRu+E5Zi8PiW9v4yqHKHEV3GOo3saPaRCK0ReGV2xDDoQ==","signatures":[{"sig":"MEUCIEpadaxjba/OHa6j3lNaAYbZLRNuhsEqz5E1x23W9K6jAiEA+NG59jUtL5/XLeCko1uUqZYg5UL0l8A4fCR9W+zFwgw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42778},"type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite","lint":"oxlint","build":"vite build && tsc -p tsconfig.lib.json","preview":"vite preview","build:demo":"tsc -b && vite build"},"_npmUser":{"name":"bigflower","email":"eleven.duan@outlook.com"},"description":"Reusable React components built on Ant Design Mobile.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.1","react":"^19.2.7","oxlint":"^1.71.0","react-dom":"^19.2.7","typescript":"~6.0.2","@babel/core":"^7.29.7","@types/node":"^24.13.2","@types/react":"^19.2.17","rc-field-form":"^1.44.0","oxlint-tsgolint":"^0.24.0","postcss-nesting":"^14.0.1","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.0.3","@rolldown/plugin-babel":"^0.2.3","babel-plugin-react-compiler":"^1.0.0"},"peerDependencies":{"dayjs":"^1.11.21","antd-mobile":"^5.42.3","antd-mobile-icons":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/pro-mobile_1.0.1_1785721423425_0.5934416011041697","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bigflower/pro-mobile","version":"1.0.2","license":"MIT","_id":"@bigflower/pro-mobile@1.0.2","maintainers":[{"name":"bigflower","email":"eleven.duan@outlook.com"}],"dist":{"shasum":"4cf8b097e12fff72158ea1dae3ae16adf016308c","tarball":"https://registry.npmjs.org/@bigflower/pro-mobile/-/pro-mobile-1.0.2.tgz","fileCount":28,"integrity":"sha512-6dEp8RMUybkPvCfmPdXWvCQyb3ilgFk3+cGFVKQzb8wQvKhupVudMTK8POCXMqUIWodnW7nfV6PL1b6Ztj/F2w==","signatures":[{"sig":"MEUCIFC/t8ekUqiNk7oS8ArYR2D3LHMA5ytmqnZGMuESd6uTAiEAz8hvGxmf5nAJ+paX7om4xSxAHGWz56zJ9lX8IWK7Jig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43005},"type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite","lint":"oxlint","build":"vite build && tsc -p tsconfig.lib.json","preview":"vite preview","build:demo":"tsc -b && vite build"},"_npmUser":{"name":"bigflower","email":"eleven.duan@outlook.com"},"description":"Reusable React components built on Ant Design Mobile.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.1","react":"^19.2.7","oxlint":"^1.71.0","react-dom":"^19.2.7","typescript":"~6.0.2","@babel/core":"^7.29.7","@types/node":"^24.13.2","@types/react":"^19.2.17","rc-field-form":"^1.44.0","oxlint-tsgolint":"^0.24.0","postcss-nesting":"^14.0.1","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.0.3","@rolldown/plugin-babel":"^0.2.3","babel-plugin-react-compiler":"^1.0.0"},"peerDependencies":{"dayjs":"^1.11.21","antd-mobile":"^5.42.3","antd-mobile-icons":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/pro-mobile_1.0.2_1785728591045_0.30015313544043987","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@bigflower/pro-mobile","version":"1.0.4","license":"MIT","_id":"@bigflower/pro-mobile@1.0.4","maintainers":[{"name":"bigflower","email":"eleven.duan@outlook.com"}],"dist":{"shasum":"e7a905b5d20c6e702e70a8422beafdd7f2bdaedb","tarball":"https://registry.npmjs.org/@bigflower/pro-mobile/-/pro-mobile-1.0.4.tgz","fileCount":28,"integrity":"sha512-S+yIboAN6qw6CZeyoABjND4Hq0s5UKZTo1+dHGFHldhdPI++uh7EjQVP5l6VouoPR69pLr7FnBQ8uwgdFyobJA==","signatures":[{"sig":"MEUCIBfC+FJ0enp3+aLTkmA4FSrvqunY5y9+6mddoAJulCW3AiEApUNUEHUiaIP7KR88Wz4CQ44yDDCUQPQeGr7XGKIyasg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50272},"type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite","lint":"oxlint","build":"vite build && tsc -p tsconfig.lib.json","preview":"vite preview","build:demo":"tsc -b && vite build"},"_npmUser":{"name":"bigflower","email":"eleven.duan@outlook.com"},"description":"Reusable React components built on Ant Design Mobile.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.1","react":"^19.2.7","oxlint":"^1.71.0","react-dom":"^19.2.7","typescript":"~6.0.2","@babel/core":"^7.29.7","@types/node":"^24.13.2","@types/react":"^19.2.17","rc-field-form":"^1.44.0","oxlint-tsgolint":"^0.24.0","postcss-nesting":"^14.0.1","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.0.3","@rolldown/plugin-babel":"^0.2.3","babel-plugin-react-compiler":"^1.0.0"},"peerDependencies":{"dayjs":"^1.11.21","antd-mobile":"^5.42.3","antd-mobile-icons":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/pro-mobile_1.0.4_1786008527120_0.46340152305907933","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@bigflower/pro-mobile","version":"1.0.5","license":"MIT","_id":"@bigflower/pro-mobile@1.0.5","maintainers":[{"name":"bigflower","email":"eleven.duan@outlook.com"}],"dist":{"shasum":"707c0b67e741511df5363fd1fa369a90ac878c63","tarball":"https://registry.npmjs.org/@bigflower/pro-mobile/-/pro-mobile-1.0.5.tgz","fileCount":29,"integrity":"sha512-VO99eq3l7GyivRzn1AHmobbAsX4miIzaPKDCN8Ew5OubE8XtauKuDQg4abDnFY1Ww3Asx/bBue0XNt5Q5JOFwQ==","signatures":[{"sig":"MEUCIChPlHpagRd12S7hDe/h23jgOFSP69VpcJTO1hf/3sBaAiEA0IngAZbdSrDEiUgWGb0yi3jnGy3Tfk4QZ8ddJCXkayk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50849},"type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite","lint":"oxlint","build":"vite build && tsc -p tsconfig.lib.json","preview":"vite preview","build:demo":"tsc -b && vite build"},"_npmUser":{"name":"bigflower","email":"eleven.duan@outlook.com"},"description":"Reusable React components built on Ant Design Mobile.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.1","react":"^19.2.7","oxlint":"^1.71.0","react-dom":"^19.2.7","typescript":"~6.0.2","@babel/core":"^7.29.7","@types/node":"^24.13.2","@types/react":"^19.2.17","rc-field-form":"^1.44.0","oxlint-tsgolint":"^0.24.0","@types/react-dom":"^19.2.3","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.0.3","@rolldown/plugin-babel":"^0.2.3","vite-plugin-lib-inject-css":"^2.2.2","babel-plugin-react-compiler":"^1.0.0"},"peerDependencies":{"dayjs":"^1.11.21","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","antd-mobile":"^5.42.3","antd-mobile-icons":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/pro-mobile_1.0.5_1787197777570_0.2514407875221871","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bigflower/pro-mobile","version":"1.1.0","license":"MIT","_id":"@bigflower/pro-mobile@1.1.0","maintainers":[{"name":"bigflower","email":"eleven.duan@outlook.com"}],"dist":{"shasum":"5eb8d4a68a773ef811b176442d8496f3a7a17a16","tarball":"https://registry.npmjs.org/@bigflower/pro-mobile/-/pro-mobile-1.1.0.tgz","fileCount":27,"integrity":"sha512-EECkeh9O1XRYjgTh5LgaP31+Qa45/DS3GsUPY2Aq9maoOdpFMzn3JZ5uBbZh1+/fxTeOxZtOWWVqufSIxDQcwQ==","signatures":[{"sig":"MEUCIBJo2apW8QCzSRmnXkjJ1ih9Vw/6Hh31rmBactnad0G6AiEAgskaC0+FYiwQ4XFQCVqxW5XqdEQvtooucTbWlPScyoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGuniGl8ueIAjUJerq1BYzol3a6V+yV7UM7oyXCGksttAiEA7UXrPFjO0NahdMPmkXkxU33MB5vxN2dmyotswyJV7Cg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39619},"type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite","lint":"oxlint","build":"vite build && tsc -p tsconfig.lib.json","preview":"vite preview","build:demo":"tsc -b && vite build"},"_npmUser":{"name":"bigflower","email":"eleven.duan@outlook.com"},"description":"Reusable React components built on Ant Design Mobile.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.2","react":"^19.2.8","oxlint":"^1.81.0","react-dom":"^19.2.8","typescript":"~6.0.3","@babel/core":"^7.29.7","@types/node":"^24.13.3","@types/react":"^19.2.18","rc-field-form":"^1.44.0","oxlint-tsgolint":"^0.24.0","@bigflower/utils":"^1.0.0","@types/react-dom":"^19.2.5","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.1.1","@rolldown/plugin-babel":"^0.2.3","vite-plugin-lib-inject-css":"^2.2.2","babel-plugin-react-compiler":"^1.0.0"},"peerDependencies":{"dayjs":"^1.11.21","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","antd-mobile":"^5.42.3","@bigflower/utils":"^1.0.0","antd-mobile-icons":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/pro-mobile_1.1.0_1788422203274_0.8075139275583012","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@bigflower/pro-mobile","version":"1.1.1","license":"MIT","_id":"@bigflower/pro-mobile@1.1.1","maintainers":[{"name":"bigflower","email":"eleven.duan@outlook.com"}],"dist":{"shasum":"e8b6e225f04279b3a11fe8b3fe7d8b22b15a71a0","tarball":"https://registry.npmjs.org/@bigflower/pro-mobile/-/pro-mobile-1.1.1.tgz","fileCount":27,"integrity":"sha512-WieYygWJMZajyJ7kTzEO65lg0gzAKBRxvCMyLVrPKna5Opj8HCWcGnLtaV6zwx+8yHzdymC7K+QrMsJq7ezdEg==","signatures":[{"sig":"MEUCIDqNFzecPeIkUYDcAgc1WWjimGO2yh/RtdmZAl1DXH7gAiEAlofw8PpCx2cNV7Tk1VTPVK7aKYBOc3OEf4YEu7+5uMI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDE2wkzM9OREqC0rGYqCDWHSz9xK/TN3kl0ZHDJYOwVagIhAILx5p4daTYmyOyFeyHHB/T8Y81YAjuVwsqQl8g9GeBS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66742},"type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"vite","lint":"oxlint","build":"vite build && tsc -p tsconfig.lib.json","preview":"vite preview","build:demo":"tsc -b && vite build"},"_npmUser":{"name":"bigflower","email":"eleven.duan@outlook.com"},"description":"Reusable React components built on Ant Design Mobile.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.2","react":"^19.2.8","oxlint":"^1.81.0","react-dom":"^19.2.8","typescript":"~6.0.3","@babel/core":"^7.29.7","@types/node":"^24.13.3","@types/react":"^19.2.18","rc-field-form":"^1.44.0","oxlint-tsgolint":"^0.24.0","@bigflower/utils":"^1.0.0","@types/react-dom":"^19.2.5","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.1.1","@rolldown/plugin-babel":"^0.2.3","vite-plugin-lib-inject-css":"^2.2.2","babel-plugin-react-compiler":"^1.0.0"},"peerDependencies":{"dayjs":"^1.11.21","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","antd-mobile":"^5.42.3","@bigflower/utils":"^1.0.0","antd-mobile-icons":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/pro-mobile_1.1.1_1788423498251_0.8995766737714728","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"_id":"@bigflower/pro-mobile@1.1.2","dist":{"shasum":"ffa60588a6f912250016ebed25ea275202cff893","tarball":"https://registry.npmjs.org/@bigflower/pro-mobile/-/pro-mobile-1.1.2.tgz","fileCount":27,"integrity":"sha512-rn/SCPx0dcwJDuRHa6utDSrlE8UQXiYJPdJBbY3SY5i2OI4gC69C54VJllL9VCjz7xoQwzwfa0FpURA2/jfYMw==","signatures":[{"sig":"MEQCIHyUe/ClLEt4ZEt1XvDsOKz0CSMKqdwio5ch/Uo6MKoeAiBCeDXmcOweYkHL5kUzkEWQQbucT/NMlUCXwAsv+7dJ5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD34beNnedXiw3KbSLdRiC9OJLAWC9CzNckvD1ISn73UwIhALQX+lPRTZKO9kmC7yjf1X8Ila5xBqOTRGxZxlGBNE5H"}],"unpackedSize":68482},"name":"@bigflower/pro-mobile","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js"}},"license":"MIT","scripts":{"dev":"vite","lint":"oxlint","build":"vite build && tsc -p tsconfig.lib.json","preview":"vite preview","build:demo":"tsc -b && vite build"},"version":"1.1.2","_npmUser":{"name":"bigflower","email":"eleven.duan@outlook.com"},"description":"Reusable React components built on Ant Design Mobile.","directories":{},"maintainers":[{"name":"bigflower","email":"eleven.duan@outlook.com"}],"sideEffects":["**/*.css"],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.2","react":"^19.2.8","oxlint":"^1.81.0","react-dom":"^19.2.8","typescript":"~6.0.3","@babel/core":"^7.29.7","@types/node":"^24.13.3","@types/react":"^19.2.18","rc-field-form":"^1.44.0","oxlint-tsgolint":"^0.24.0","@bigflower/utils":"^1.1.0","@types/react-dom":"^19.2.5","@types/babel__core":"^7.20.5","@vitejs/plugin-react":"^6.1.1","@rolldown/plugin-babel":"^0.2.3","vite-plugin-lib-inject-css":"^2.2.2","babel-plugin-react-compiler":"^1.0.0"},"peerDependencies":{"dayjs":"^1.11.21","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","antd-mobile":"^5.42.3","@bigflower/utils":"^1.0.0","antd-mobile-icons":"^0.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pro-mobile_1.1.2_1789092671224_0.35414597941337433"}}},"time":{"created":"2026-07-31T10:07:32.328Z","modified":"2026-09-11T02:11:11.522Z","1.0.0":"2026-07-31T10:07:32.719Z","1.0.1":"2026-08-03T01:43:43.565Z","1.0.2":"2026-08-03T03:43:11.198Z","1.0.4":"2026-08-06T09:28:47.266Z","1.0.5":"2026-08-20T03:49:37.741Z","1.1.0":"2026-09-03T07:56:43.368Z","1.1.1":"2026-09-03T08:18:18.342Z","1.1.2":"2026-09-11T02:11:11.310Z"},"license":"MIT","description":"Reusable React components built on Ant Design Mobile.","maintainers":[{"name":"bigflower","email":"eleven.duan@outlook.com"}],"readme":"# pro-mobile\n\n`@bigflower/pro-mobile` 是基于 Ant Design Mobile 的移动端业务组件库。大多数组件以 `Form.Item` 为外层，可直接放入 Ant Design Mobile 的 `<Form>` 中使用。\n\n## 安装与引入\n\n```bash\npnpm add @bigflower/pro-mobile\n```\n\n```tsx\nimport { Form } from \"antd-mobile\";\nimport { ProInput, ProNumber, ProDatePicker } from \"@bigflower/pro-mobile\";\n```\n\n## 表单组件约定\n\n除 `ProBlank`、`ProEmpty`、`ProPopup`、`ProIFrame`、`ProScrollList` 和 `ProImage` 外，组件均基于 `Form.Item`。\n\n- `name`：字段名，类型为 `string | number | (string | number)[]`。\n- `label`、`extra`、`required`、`disabled`、`messageVariables`、`hidden`、`layout`、`description`、`rules`：直接对应 `Form.Item` 的同名属性。\n- `itemProps`：额外传给 `Form.Item` 的属性；不能覆盖 `name` 及上述通用表单属性。\n- `fieldProps`：额外传给内部 Ant Design Mobile 控件的属性。组件自身控制的属性会被排除或优先处理。\n- 当传入 `required` 时，表单组件会加入默认必填规则；传入的 `rules` 会追加在默认规则之后。\n\n一个基础表单：\n\n```tsx\nimport { Form, Button } from \"antd-mobile\";\nimport { ProInput, ProNumber, ProDatePicker } from \"@bigflower/pro-mobile\";\n\nexport function ProfileForm() {\n  const [form] = Form.useForm();\n\n  return (\n    <Form\n      form={form}\n      onFinish={(values) => {\n        console.log(values);\n      }}\n      footer={\n        <Button block type=\"submit\" color=\"primary\">\n          提交\n        </Button>\n      }\n    >\n      <ProInput name=\"name\" label=\"姓名\" required />\n      <ProNumber name=\"amount\" label=\"金额\" min={0} precision={2} required />\n      <ProDatePicker name=\"birthday\" label=\"出生日期\" />\n    </Form>\n  );\n}\n```\n\n## 布局与状态\n\n### ProBlank\n\n渲染一个固定高度的空白分隔块。\n\n| 属性     | 类型     | 默认值          | 说明              |\n| -------- | -------- | --------------- | ----------------- |\n| `height` | `number` | `12`            | 高度，单位为 px。 |\n| `color`  | `string` | `\"transparent\"` | 背景色。          |\n\n```tsx\nimport { ProBlank } from \"@bigflower/pro-mobile\";\n\n<ProBlank height={16} color=\"#f5f5f5\" />;\n```\n\n### ProEmpty\n\n基于 `ErrorBlock` 的空状态组件，默认标题为“暂无数据”、描述为空，且上下内边距为 `30px`。接受 Ant Design Mobile 的全部 `ErrorBlockProps`，可以覆盖默认标题和描述。\n\n```tsx\nimport { ProEmpty } from \"@bigflower/pro-mobile\";\n\n<ProEmpty title=\"暂无订单\" description=\"完成下单后会显示在这里\" />;\n```\n\n## 文本与数字输入\n\n### ProInput\n\n单行文本输入框，默认可清空，默认占位提示为“请输入{标签}”。\n\n| 属性         | 类型                                                                                                                    | 说明                                                               |\n| ------------ | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |\n| `name`       | `NamePath`                                                                                                              | 表单字段名。                                                       |\n| `verify`     | `\"isUrl\" \\| \"isEmail\" \\| \"isIp\" \\| \"isIpv4\" \\| \"isIpv6\" \\| \"isBankNo\" \\| \"isIdNo\" \\| \"isMobile\" \\| \"isUsci\" \\| \"isSms\"` | 选择内置格式校验器。字段有值且校验失败时提示“请输入正确的{标签}”。 |\n| `itemProps`  | `Omit<FormItemProps, ...>`                                                                                              | 传给外层 `Form.Item`。                                             |\n| `fieldProps` | `InputProps`                                                                                                            | 传给内部 `Input`，可覆盖 `placeholder`、`clearable` 等。           |\n\n```tsx\n<ProInput name=\"email\" label=\"邮箱\" required verify=\"isEmail\" />\n<ProInput name=\"phone\" label=\"手机号\" verify=\"isMobile\" fieldProps={{ type: \"tel\" }} />\n```\n\n### ProNumber\n\n数字文本输入框。输入内容会过滤为数字、负号和小数点，提交到表单的值为字符串。\n\n| 属性         | 类型                       | 默认值 | 说明                                 |\n| ------------ | -------------------------- | ------ | ------------------------------------ |\n| `name`       | `NamePath`                 | -      | 表单字段名。                         |\n| `min`        | `number \\| null`           | `0`    | 最小值。设为 `null` 时不限制最小值。 |\n| `max`        | `number`                   | -      | 最大值。                             |\n| `precision`  | `number`                   | `2`    | 最大小数位；设为 `0` 时只允许整数。  |\n| `itemProps`  | `Omit<FormItemProps, ...>` | -      | 传给外层 `Form.Item`。               |\n| `fieldProps` | `InputProps`               | -      | 传给内部 `Input`。                   |\n\n```tsx\n<ProNumber name=\"price\" label=\"单价\" min={0} max={999999} precision={2} required />\n<ProNumber name=\"quantity\" label=\"数量\" min={1} precision={0} />\n```\n\n### ProTextArea\n\n多行文本输入框，默认显示 1 至 3 行并自动伸缩，默认占位提示为“请输入{标签}”。\n\n| 属性         | 类型                       | 默认值                        | 说明                                                                          |\n| ------------ | -------------------------- | ----------------------------- | ----------------------------------------------------------------------------- |\n| `name`       | `NamePath`                 | -                             | 表单字段名。                                                                  |\n| `itemProps`  | `Omit<FormItemProps, ...>` | -                             | 传给外层 `Form.Item`。                                                        |\n| `fieldProps` | `TextAreaProps`            | `rows: 1`，`autoSize: 1-3 行` | 传给内部 `TextArea`，可覆盖默认行数，并设置 `maxLength`、`showCount` 等属性。 |\n\n```tsx\n<ProTextArea\n  name=\"remark\"\n  label=\"备注\"\n  fieldProps={{ maxLength: 200, showCount: true }}\n/>\n```\n\n### ProPassword\n\n密码输入框，默认可清空，右侧提供明文显示切换按钮。\n\n| 属性         | 类型                       | 说明                   |\n| ------------ | -------------------------- | ---------------------- |\n| `name`       | `NamePath`                 | 表单字段名。           |\n| `itemProps`  | `Omit<FormItemProps, ...>` | 传给外层 `Form.Item`。 |\n| `fieldProps` | `InputProps`               | 传给内部密码 `Input`。 |\n\n```tsx\n<ProPassword name=\"password\" label=\"登录密码\" required />\n```\n\n### ProPasswordGroup\n\n生成“新登录密码”和“确认新密码”两个 `ProPassword` 字段。第二个字段会校验其值与第一个字段一致。\n\n| 属性                | 类型                         | 默认值                                     | 说明                                                      |\n| ------------------- | ---------------------------- | ------------------------------------------ | --------------------------------------------------------- |\n| `props`             | `ProPasswordProps[]`         | `[]`                                       | 按顺序传给两个密码框的属性；默认字段名为 `pwd1`、`pwd2`。 |\n| `passwordValidator` | `(value: string) => boolean` | `isPassword`                               | 新密码的校验函数。                                        |\n| `passwordMessage`   | `string`                     | `\"密码为8-16位字母、数字、特殊字符的组合\"` | 新密码校验失败的提示。                                    |\n\n内置 `isPassword` 默认要求 8 至 16 位、同时包含字母、数字和特殊字符。\n\n```tsx\n<ProPasswordGroup\n  props={[\n    { name: \"newPassword\", label: \"新密码\" },\n    { name: \"confirmPassword\", label: \"确认新密码\" },\n  ]}\n/>\n```\n\n## 选择输入\n\n### ProRadio\n\n单选组，字段值为选中的 `string | number`。\n\n| 属性         | 类型                       | 说明                                                                            |\n| ------------ | -------------------------- | ------------------------------------------------------------------------------- |\n| `name`       | `NamePath`                 | 表单字段名。                                                                    |\n| `options`    | `ProRadioOption[]`         | 必填。每项包含 `label: ReactNode`、`value: string \\| number`、可选 `disabled`。 |\n| `fieldProps` | `RadioProps`               | 传给每一个 `Radio`。                                                            |\n| `spaceProps` | `SpaceProps`               | 传给选项布局容器。                                                              |\n| `itemProps`  | `Omit<FormItemProps, ...>` | 传给外层 `Form.Item`。                                                          |\n\n```tsx\n<ProRadio\n  name=\"gender\"\n  label=\"性别\"\n  required\n  options={[\n    { label: \"男\", value: \"male\" },\n    { label: \"女\", value: \"female\" },\n  ]}\n/>\n```\n\n### ProCheckbox\n\n多选组，字段值为选中项组成的数组。\n\n| 属性         | 类型                       | 说明                                                                            |\n| ------------ | -------------------------- | ------------------------------------------------------------------------------- |\n| `name`       | `NamePath`                 | 表单字段名。                                                                    |\n| `options`    | `ProCheckboxOption[]`      | 必填。每项包含 `label: ReactNode`、`value: string \\| number`、可选 `disabled`。 |\n| `fieldProps` | `CheckboxProps`            | 传给每一个 `Checkbox`。                                                         |\n| `spaceProps` | `SpaceProps`               | 传给选项布局容器。                                                              |\n| `itemProps`  | `Omit<FormItemProps, ...>` | 传给外层 `Form.Item`。                                                          |\n\n```tsx\n<ProCheckbox\n  name=\"interests\"\n  label=\"兴趣\"\n  options={[\n    { label: \"阅读\", value: \"reading\" },\n    { label: \"运动\", value: \"sports\" },\n  ]}\n/>\n```\n\n### ProSwitch\n\n开关字段。组件固定使用 `checked` 作为表单值属性，并将表单项子元素位置设置在右侧。\n\n| 属性         | 类型                       | 说明                     |\n| ------------ | -------------------------- | ------------------------ |\n| `name`       | `NamePath`                 | 表单字段名，值为布尔值。 |\n| `fieldProps` | `SwitchProps`              | 传给内部 `Switch`。      |\n| `itemProps`  | `Omit<FormItemProps, ...>` | 传给外层 `Form.Item`。   |\n\n```tsx\n<ProSwitch\n  name=\"enabled\"\n  label=\"启用通知\"\n  fieldProps={{ defaultChecked: true }}\n/>\n```\n\n### ProSelector\n\n内嵌式标签选择器，使用 Ant Design Mobile `Selector`。\n\n| 属性         | 类型                                                                     | 说明                   |\n| ------------ | ------------------------------------------------------------------------ | ---------------------- |\n| `name`       | `NamePath`                                                               | 表单字段名。           |\n| `options`    | `SelectorProps<OptionValue>[\"options\"]`                                  | 必填，选择项。         |\n| `columns`    | `number`                                                                 | 每行列数。             |\n| `multiple`   | `boolean`                                                                | 是否可多选。           |\n| `fieldProps` | `Omit<SelectorProps<OptionValue>, \"options\" \\| \"columns\" \\| \"multiple\">` | 其余 `Selector` 属性。 |\n| `itemProps`  | `Omit<FormItemProps, ...>`                                               | 传给外层 `Form.Item`。 |\n\n```tsx\n<ProSelector\n  name=\"tags\"\n  label=\"标签\"\n  multiple\n  columns={3}\n  options={[\n    { label: \"新品\", value: \"new\" },\n    { label: \"推荐\", value: \"featured\" },\n  ]}\n/>\n```\n\n### ProCheckList\n\n点击表单项后在底部弹层中展示 `CheckList`。支持清除，开启多选时还支持“全选”。值为 `OptionValue[]`。\n\n| 属性          | 类型                                                        | 说明                                                                                 |\n| ------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------ |\n| `name`        | `NamePath`                                                  | 表单字段名。                                                                         |\n| `options`     | `ProCheckListOption[]`                                      | 必填。每项含 `label`、`value`，并支持 `disabled`、`title`、`description`、`prefix`。 |\n| `multiple`    | `boolean`                                                   | 是否多选。                                                                           |\n| `showCount`   | `boolean`                                                   | 是否以“已选择 N 个”代替所选标签。                                                    |\n| `title`       | `ReactNode`                                                 | 弹层标题，默认“请选择{标签}”。                                                       |\n| `placeholder` | `string`                                                    | 未选择时的占位文本，默认“请选择{标签}”。                                             |\n| `fieldProps`  | `Omit<CheckListProps, \"multiple\" \\| \"onChange\" \\| \"value\">` | 传给内部 `CheckList`。                                                               |\n| `itemProps`   | `Omit<FormItemProps, ...>`                                  | 传给外层 `Form.Item`。                                                               |\n\n```tsx\n<ProCheckList\n  name=\"cities\"\n  label=\"服务城市\"\n  title=\"选择服务城市\"\n  multiple\n  showCount\n  options={[\n    { label: \"北京\", value: \"beijing\" },\n    { label: \"上海\", value: \"shanghai\" },\n  ]}\n/>\n```\n\n### ProPicker\n\n多列滚轮选择器。确认后字段值为所选值数组；未选择时显示 `placeholder` 或“请选择{标签}”。\n\n| 属性              | 类型                           | 默认值 | 说明                                                             |\n| ----------------- | ------------------------------ | ------ | ---------------------------------------------------------------- |\n| `name`            | `NamePath`                     | -      | 表单字段名。                                                     |\n| `columns`         | `ProPickerOption[][]`          | -      | 必填。每列为 `{ label: ReactNode; value: string \\| number }[]`。 |\n| `placeholder`     | `string`                       | -      | 未选择时的提示。                                                 |\n| `showSearch`      | `boolean`                      | -      | 在第一列启用关键词筛选。                                         |\n| `allowSearchWord` | `boolean`                      | -      | 启用搜索时，允许将未匹配的关键词作为第一列值提交。               |\n| `fieldProps`      | `Omit<PickerProps, \"columns\">` | -      | 其余 `Picker` 属性。                                             |\n| `itemProps`       | `Omit<FormItemProps, ...>`     | -      | 传给外层 `Form.Item`。                                           |\n\n```tsx\n<ProPicker\n  name=\"region\"\n  label=\"地区\"\n  columns={[\n    [\n      { label: \"华北\", value: \"north\" },\n      { label: \"华东\", value: \"east\" },\n    ],\n    [\n      { label: \"北京\", value: \"beijing\" },\n      { label: \"上海\", value: \"shanghai\" },\n    ],\n  ]}\n/>\n```\n\n### ProCascader\n\n级联选择器。只有选到叶子节点时才会更新字段值，值为路径值数组。\n\n| 属性          | 类型                             | 说明                               |\n| ------------- | -------------------------------- | ---------------------------------- |\n| `name`        | `NamePath`                       | 表单字段名。                       |\n| `options`     | `CascaderOption[]`               | 必填，Ant Design Mobile 级联选项。 |\n| `placeholder` | `string`                         | 未选择时的提示。                   |\n| `fieldProps`  | `Omit<CascaderProps, \"options\">` | 其余 `Cascader` 属性。             |\n| `itemProps`   | `Omit<FormItemProps, ...>`       | 传给外层 `Form.Item`。             |\n\n```tsx\n<ProCascader\n  name=\"area\"\n  label=\"所在地区\"\n  options={[\n    {\n      label: \"北京市\",\n      value: \"beijing\",\n      children: [{ label: \"朝阳区\", value: \"chaoyang\" }],\n    },\n  ]}\n/>\n```\n\n## 日期输入\n\n### ProDatePicker\n\n日期选择器，支持清除。默认最小日期为 `1900-01-01`、最大日期为 `2099-12-31`，显示格式为 `YYYY-MM-DD`。\n\n| 属性           | 类型                       | 默认值         | 说明                                          |\n| -------------- | -------------------------- | -------------- | --------------------------------------------- |\n| `name`         | `NamePath`                 | -              | 表单字段名，值为 `Date`。                     |\n| `placeholder`  | `string`                   | -              | 未选择时的提示。                              |\n| `formatString` | `string`                   | `\"YYYY-MM-DD\"` | 使用 dayjs 格式化已选日期的格式。             |\n| `fieldProps`   | `DatePickerProps`          | -              | 传给内部 `DatePicker`，可覆盖日期范围和标题。 |\n| `itemProps`    | `Omit<FormItemProps, ...>` | -              | 传给外层 `Form.Item`。                        |\n\n```tsx\n<ProDatePicker\n  name=\"effectiveDate\"\n  label=\"生效日期\"\n  required\n  fieldProps={{ min: new Date(), precision: \"day\" }}\n/>\n```\n\n### ProDateRange\n\n由两个 `ProDatePicker` 组成的日期范围。结束日期早于开始日期时会校验失败；两个日期任一有值时，两个字段都会变为必填。\n\n| 属性       | 类型                                     | 默认值  | 说明                                                            |\n| ---------- | ---------------------------------------- | ------- | --------------------------------------------------------------- |\n| `props`    | `Omit<ProDatePickerProps, \"required\">[]` | `[]`    | 按顺序配置开始、结束日期；默认字段名为 `startTime`、`endTime`。 |\n| `label`    | `ReactNode`                              | -       | 外层表单项标签。                                                |\n| `required` | `boolean`                                | -       | 是否要求填写整个日期范围。                                      |\n| `disabled` | `boolean`                                | -       | 外层表单项禁用状态。                                            |\n| `showLong` | `boolean`                                | `false` | 是否显示“长期”复选框。勾选后结束日期为 `9999-12-31`。           |\n\n```tsx\n<ProDateRange\n  label=\"有效期\"\n  required\n  showLong\n  props={[\n    { name: \"validFrom\", placeholder: \"开始日期\" },\n    { name: \"validTo\", placeholder: \"结束日期\" },\n  ]}\n/>\n```\n\n## 弹层与内容展示\n\n### ProPopup\n\n基于 `Popup` 的带头部底部弹层。点击确认会依次执行 `onConfirm` 和 `onClose`；默认支持点击遮罩关闭。\n\n| 属性          | 类型               | 默认值   | 说明                                                |\n| ------------- | ------------------ | -------- | --------------------------------------------------- |\n| `cancelText`  | `ReactNode`        | `\"取消\"` | 取消按钮文本。                                      |\n| `title`       | `ReactNode`        | -        | 头部标题。                                          |\n| `confirmText` | `ReactNode`        | `\"确定\"` | 确认按钮文本。                                      |\n| `onConfirm`   | `() => void`       | -        | 确认回调。                                          |\n| `height`      | `string \\| number` | `300`    | 弹层内容区域高度。                                  |\n| `hideHeader`  | `boolean`          | -        | 是否隐藏默认头部。                                  |\n| 其余属性      | `PopupProps`       | -        | 例如 `visible`、`position`、`onClose`、`children`。 |\n\n```tsx\n<ProPopup\n  visible={visible}\n  title=\"筛选\"\n  height=\"60vh\"\n  onClose={() => setVisible(false)}\n  onConfirm={() => submitFilter()}\n>\n  <div>筛选内容</div>\n</ProPopup>\n```\n\n### ProIFrame\n\n在 `ProPopup` 中展示 iframe。未提供 `url` 时渲染 `children`。默认 `cancelText` 为空、`confirmText` 为 `\"关闭\"`，并始终开启 `destroyOnClose`。`afterShow` 与 `afterClose` 会在内部状态更新后继续执行。\n\n传入 `file` 后，组件会监听同源 iframe 发出的 `file-viewer:ready` 消息，再通过 `postMessage` 把 `File` 回传给 iframe。iframe 侧需要先通知就绪，再接收文件：\n\n```ts\nwindow.parent.postMessage({ type: \"file-viewer:ready\" }, \"*\");\n\nwindow.addEventListener(\"message\", (event) => {\n  const file = event.data?.file as File | undefined;\n  if (file) {\n    // 预览 file\n  }\n});\n```\n\n| 属性     | 类型            | 默认值  | 说明                                                                                         |\n| -------- | --------------- | ------- | -------------------------------------------------------------------------------------------- |\n| `url`    | `string`        | -       | iframe 地址。未提供时渲染 `children`。                                                       |\n| `file`   | `File`          | -       | 可选。收到 iframe 的 `file-viewer:ready` 后，通过 `postMessage` 把该文件发给 iframe。        |\n| `footer` | `ReactNode`     | -       | 内容区域下方的内容。                                                                         |\n| `resize` | `boolean`       | `false` | 兼容 iOS iframe 高度计算导致无法滚动的问题。开启后，iframe 初始高度为 `0`，`afterShow` 后再设为 `100%`，`afterClose` 再收为 `0`。 |\n| 其余属性 | `ProPopupProps` | -       | 包括 `children`、生命周期回调及弹层属性。                                                    |\n\n```tsx\n<ProIFrame\n  visible={visible}\n  url=\"https://example.com/file-viewer\"\n  file={file}\n  title=\"文件预览\"\n  height=\"80vh\"\n  onClose={() => setVisible(false)}\n/>\n```\n\n### ProImage\n\n图片展示组件。默认使用 `contain`、宽高均为 `56px`；点击有图片地址的图片会打开 `ImageViewer` 预览。`src=\"file\"` 会显示内置的文件图标。\n\n该组件完整接受 Ant Design Mobile 的 `ImageProps`。\n\n```tsx\n<ProImage src=\"https://example.com/avatar.png\" width={80} height={80} />\n<ProImage src=\"file\" />\n```\n\n### ProUploader\n\n表单图片/文件上传器。默认仅允许图片、单文件，文件上限为 10 MB。指定 `fieldProps.accept` 后，按该属性限制文件类型。\n\n| 属性          | 类型                                                        | 默认值 | 说明                                                                             |\n| ------------- | ----------------------------------------------------------- | ------ | -------------------------------------------------------------------------------- |\n| `name`        | `NamePath`                                                  | -      | 可选的表单字段名，值为 `ImageUploadItem[]`。                                     |\n| `apiUpload`   | `(file: File) => Promise<Partial<ImageUploadItem> \\| null>` | -      | 可选上传函数。返回对象会与最终上传项合并。未返回 `url` 时使用本地对象 URL。      |\n| `maxFileSize` | `number`                                                    | `10`   | 单文件大小上限，单位 MB。                                                        |\n| `fieldProps`  | `Omit<ImageUploaderProps, \"upload\">`                        | -      | 传给内部 `ImageUploader`。可传 `accept`、`maxCount` 等；上传函数由组件统一管理。 |\n| `itemProps`   | `Omit<FormItemProps, ...>`                                  | -      | 传给外层 `Form.Item`。                                                           |\n\n```tsx\n<ProUploader\n  name=\"attachments\"\n  label=\"附件\"\n  maxFileSize={20}\n  fieldProps={{ accept: \".pdf,.doc,.docx\", maxCount: 3 }}\n  apiUpload={async (file) => {\n    const result = await uploadFile(file);\n    return { url: result.url, thumbnailUrl: result.thumbnailUrl };\n  }}\n/>\n```\n\n## 列表数据加载\n\n### ProScrollList\n\n封装下拉刷新和触底加载，组件首次渲染及 `params` 改变时自动请求数据。数据非空时将 `list` 传给 `children` 渲染；请求完成但列表为空时显示 `empty` 或默认 `ProEmpty`。\n\n| 属性        | 类型                             | 说明                                                    |\n| ----------- | -------------------------------- | ------------------------------------------------------- |\n| `api`       | `(options: any) => Promise<any>` | 必填。请求函数，接收当前分页参数。                      |\n| `params`    | `any`                            | 必填。外部维护的查询和分页参数。                        |\n| `setParams` | `(options: any) => void`         | 必填。更新 `params` 的方法。                            |\n| `children`  | `(data: any[]) => ReactNode`     | 列表渲染函数。未提供时不渲染无限滚动控件。              |\n| `empty`     | `ReactNode`                      | 空列表内容。                                            |\n| `condition` | `() => boolean`                  | 返回 `false` 时跳过请求，可用于缺少必要查询条件的场景。 |\n| `refresh`   | `number`                         | 值大于 0 且变更时触发一次刷新。                         |\n| `names`     | `object`                         | 自定义响应和分页字段名，见下表。                        |\n| `getRes`    | `(response: any) => void`        | 每次请求成功后的原始响应回调。                          |\n\n`names` 的默认字段映射：\n\n| 字段      | 默认值      | 说明                                                 |\n| --------- | ----------- | ---------------------------------------------------- |\n| `res`     | `\"\"`        | 响应中实际数据对象所在字段；为空时直接使用响应对象。 |\n| `data`    | `\"data\"`    | 列表数组字段。                                       |\n| `current` | `\"current\"` | 当前页码参数字段。                                   |\n| `size`    | `\"size\"`    | 每页条数参数字段。                                   |\n| `total`   | `\"total\"`   | 总条数字段。                                         |\n| `pages`   | `\"pages\"`   | 总页数字段。                                         |\n\n```tsx\nimport { useState } from \"react\";\nimport { List } from \"antd-mobile\";\nimport { ProScrollList } from \"@bigflower/pro-mobile\";\n\nexport function OrderList() {\n  const [params, setParams] = useState({ current: 1, size: 20 });\n\n  return (\n    <ProScrollList\n      api={(query) => getOrders(query)}\n      params={params}\n      setParams={setParams}\n    >\n      {(orders) => (\n        <List>\n          {orders.map((order) => (\n            <List.Item key={order.id}>{order.name}</List.Item>\n          ))}\n        </List>\n      )}\n    </ProScrollList>\n  );\n}\n```\n\n## 公共类型、常量与工具\n\n入口导出以下公共类型：`NamePath`、`OptionValue`、`GeneralFormItemKey`。\n\n常量与工具已迁移至 `@bigflower/utils`，请直接从该包引入。它是本库的 peerDependency，安装本库时需一并安装。\n\n```bash\npnpm add @bigflower/utils\n```\n\n```tsx\nimport { DATE_FORMAT, isMobile } from \"@bigflower/utils\";\n\nconst isValidPhone = isMobile(\"13800138000\");\nconst formattedDate = DATE_FORMAT;\n```\n","readmeFilename":""}