@robot-admin/naive-ui-components 0.10.3 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (659) hide show
  1. package/CHANGELOG.md +117 -100
  2. package/LICENSE +21 -21
  3. package/README.md +463 -318
  4. package/README_EN.md +404 -0
  5. package/SECURITY.md +23 -0
  6. package/dist/C_ActionBar.cjs +1 -1
  7. package/dist/C_ActionBar.css +46 -48
  8. package/dist/C_ActionBar.d.cts +1 -1
  9. package/dist/C_ActionBar.js +1 -1
  10. package/dist/C_ActionBar2.cjs +1 -0
  11. package/dist/C_ActionBar2.js +1 -2
  12. package/dist/C_AntV.cjs +1 -1
  13. package/dist/C_AntV.css +3 -3
  14. package/dist/C_AntV.d.cts +1 -1
  15. package/dist/C_AntV.js +1 -1
  16. package/dist/C_AntV2.cjs +4 -0
  17. package/dist/C_AntV2.js +3 -4
  18. package/dist/C_AudioPlayer.cjs +1 -1
  19. package/dist/C_AudioPlayer.css +15 -7
  20. package/dist/C_AudioPlayer.d.cts +1 -1
  21. package/dist/C_AudioPlayer.js +1 -1
  22. package/dist/C_AudioPlayer2.cjs +1 -0
  23. package/dist/C_AudioPlayer2.js +1 -2
  24. package/dist/C_AvatarGroup.cjs +1 -1
  25. package/dist/C_AvatarGroup.css +15 -7
  26. package/dist/C_AvatarGroup.d.cts +1 -1
  27. package/dist/C_AvatarGroup2.cjs +1 -0
  28. package/dist/C_AvatarGroup2.js +1 -2
  29. package/dist/C_Barcode.cjs +1 -1
  30. package/dist/C_Barcode.css +0 -2
  31. package/dist/C_Barcode.d.cts +1 -1
  32. package/dist/C_Barcode2.cjs +1 -0
  33. package/dist/C_Barcode2.js +1 -2
  34. package/dist/C_Breadcrumb.cjs +1 -1
  35. package/dist/C_Breadcrumb.css +0 -2
  36. package/dist/C_Breadcrumb.d.cts +2 -2
  37. package/dist/C_Breadcrumb.d.ts +1 -2
  38. package/dist/C_Breadcrumb.js +1 -1
  39. package/dist/C_Breadcrumb2.cjs +1 -0
  40. package/dist/C_Breadcrumb2.js +1 -2
  41. package/dist/C_Captcha.cjs +1 -1
  42. package/dist/C_Captcha.css +46 -21
  43. package/dist/C_Captcha.d.cts +3 -2
  44. package/dist/C_Captcha.d.ts +3 -2
  45. package/dist/C_Captcha.js +1 -1
  46. package/dist/C_Captcha2.cjs +1 -0
  47. package/dist/C_Captcha2.js +1 -2
  48. package/dist/C_Cascade.cjs +1 -1
  49. package/dist/C_Cascade.css +0 -2
  50. package/dist/C_Cascade.d.cts +1 -1
  51. package/dist/C_Cascade.d.ts +1 -1
  52. package/dist/C_Cascade2.cjs +1 -0
  53. package/dist/C_Cascade2.js +1 -2
  54. package/dist/C_Chat.cjs +1 -1
  55. package/dist/C_Chat.css +0 -2
  56. package/dist/C_Chat.d.cts +1 -1
  57. package/dist/C_Chat.d.ts +1 -1
  58. package/dist/C_Chat.js +1 -1
  59. package/dist/C_Chat2.cjs +1 -0
  60. package/dist/C_Chat2.js +1 -2
  61. package/dist/C_City.cjs +1 -1
  62. package/dist/C_City.css +28 -30
  63. package/dist/C_City.d.cts +1 -1
  64. package/dist/C_City.d.ts +1 -1
  65. package/dist/C_City2.cjs +1 -0
  66. package/dist/C_City2.js +1 -2
  67. package/dist/C_Code.cjs +1 -1
  68. package/dist/C_Code.css +241 -4
  69. package/dist/C_Code.d.cts +1 -1
  70. package/dist/C_Code.d.ts +1 -1
  71. package/dist/C_Code.js +1 -1
  72. package/dist/C_Code2.cjs +1 -0
  73. package/dist/C_Code2.js +1 -2
  74. package/dist/C_CollapsePanel.cjs +1 -1
  75. package/dist/C_CollapsePanel.css +12 -6
  76. package/dist/C_CollapsePanel.d.cts +1 -1
  77. package/dist/C_CollapsePanel.js +1 -1
  78. package/dist/C_CollapsePanel2.cjs +1 -0
  79. package/dist/C_CollapsePanel2.js +1 -2
  80. package/dist/C_ContextMenu.cjs +1 -1
  81. package/dist/C_ContextMenu.css +16 -18
  82. package/dist/C_ContextMenu.d.cts +1 -1
  83. package/dist/C_ContextMenu.d.ts +1 -1
  84. package/dist/C_ContextMenu.js +1 -1
  85. package/dist/C_ContextMenu2.cjs +1 -0
  86. package/dist/C_ContextMenu2.js +1 -2
  87. package/dist/C_Cron.cjs +1 -1
  88. package/dist/C_Cron.css +18 -8
  89. package/dist/C_Cron.d.cts +1 -1
  90. package/dist/C_Cron.js +1 -1
  91. package/dist/C_Cron2.cjs +1 -0
  92. package/dist/C_Cron2.js +1 -2
  93. package/dist/C_Date.cjs +1 -1
  94. package/dist/C_Date.css +1 -0
  95. package/dist/C_Date.d.cts +2 -2
  96. package/dist/C_Date.d.ts +2 -2
  97. package/dist/C_Date2.cjs +1 -0
  98. package/dist/C_Date2.js +1 -2
  99. package/dist/C_Draggable.cjs +1 -1
  100. package/dist/C_Draggable.css +9 -5
  101. package/dist/C_Draggable.d.cts +1 -1
  102. package/dist/C_Draggable2.cjs +1 -0
  103. package/dist/C_Draggable2.js +1 -2
  104. package/dist/C_Editor.cjs +1 -1
  105. package/dist/C_Editor.css +80 -67
  106. package/dist/C_Editor.d.cts +1 -1
  107. package/dist/C_Editor.d.ts +1 -1
  108. package/dist/C_Editor2.cjs +1 -0
  109. package/dist/C_Editor2.js +1 -2
  110. package/dist/C_FilePreview.cjs +1 -1
  111. package/dist/C_FilePreview.css +0 -2
  112. package/dist/C_FilePreview.d.cts +1 -1
  113. package/dist/C_FilePreview.js +1 -1
  114. package/dist/C_FilePreview2.cjs +1 -0
  115. package/dist/C_FilePreview2.js +1 -2
  116. package/dist/C_Form.base.css +980 -0
  117. package/dist/C_Form.cjs +1 -1
  118. package/dist/C_Form.css +256 -155
  119. package/dist/C_Form.d.cts +2 -2
  120. package/dist/C_Form.d.ts +2 -2
  121. package/dist/C_Form.js +1 -1
  122. package/dist/C_Form2.cjs +1 -0
  123. package/dist/C_Form2.js +1 -2
  124. package/dist/C_FormSearch.cjs +1 -1
  125. package/dist/C_FormSearch.css +47 -47
  126. package/dist/C_FormSearch.d.cts +2 -2
  127. package/dist/C_FormSearch.d.ts +2 -2
  128. package/dist/C_FormSearch2.cjs +1 -0
  129. package/dist/C_FormSearch2.js +1 -2
  130. package/dist/C_FormulaEditor.cjs +1 -1
  131. package/dist/C_FormulaEditor.css +64 -38
  132. package/dist/C_FormulaEditor.d.cts +1 -1
  133. package/dist/C_FormulaEditor.js +1 -1
  134. package/dist/C_FormulaEditor2.cjs +2 -0
  135. package/dist/C_FormulaEditor2.js +2 -2
  136. package/dist/C_FullCalendar.cjs +1 -1
  137. package/dist/C_FullCalendar.css +0 -2
  138. package/dist/C_FullCalendar.d.cts +1 -1
  139. package/dist/C_FullCalendar2.cjs +1 -0
  140. package/dist/C_FullCalendar2.js +1 -2
  141. package/dist/C_GlobalSearch.cjs +1 -1
  142. package/dist/C_GlobalSearch.css +111 -113
  143. package/dist/C_GlobalSearch.d.cts +1 -1
  144. package/dist/C_GlobalSearch2.cjs +1 -0
  145. package/dist/C_GlobalSearch2.js +1 -2
  146. package/dist/C_Guide.cjs +1 -1
  147. package/dist/C_Guide.css +1 -0
  148. package/dist/C_Guide.d.cts +1 -1
  149. package/dist/C_Guide.d.ts +1 -1
  150. package/dist/C_Guide.js +1 -1
  151. package/dist/C_Guide2.cjs +1 -0
  152. package/dist/C_Guide2.js +1 -2
  153. package/dist/C_Icon.cjs +1 -1
  154. package/dist/C_Icon.css +58 -0
  155. package/dist/C_Icon.d.cts +1 -1
  156. package/dist/C_Icon.d.ts +1 -1
  157. package/dist/C_Icon2.cjs +1 -0
  158. package/dist/C_Icon2.js +1 -2
  159. package/dist/C_ImageCropper.cjs +1 -1
  160. package/dist/C_ImageCropper.css +0 -2
  161. package/dist/C_ImageCropper.d.cts +1 -1
  162. package/dist/C_ImageCropper.js +1 -1
  163. package/dist/C_ImageCropper2.cjs +1 -0
  164. package/dist/C_ImageCropper2.js +1 -2
  165. package/dist/C_Language.cjs +1 -1
  166. package/dist/C_Language.css +1 -0
  167. package/dist/C_Language.d.cts +1 -1
  168. package/dist/C_Language.d.ts +1 -1
  169. package/dist/C_Language.js +1 -1
  170. package/dist/C_Language2.cjs +1 -0
  171. package/dist/C_Language2.js +1 -2
  172. package/dist/C_Login.cjs +1 -1
  173. package/dist/C_Login.css +92 -76
  174. package/dist/C_Login.d.cts +1 -1
  175. package/dist/C_Login.d.ts +1 -1
  176. package/dist/C_Login.js +1 -1
  177. package/dist/C_Login2.cjs +1 -0
  178. package/dist/C_Login2.js +1 -2
  179. package/dist/C_Map.cjs +1 -1
  180. package/dist/C_Map.css +665 -5
  181. package/dist/C_Map.d.cts +1 -1
  182. package/dist/C_Map2.cjs +1 -0
  183. package/dist/C_Map2.js +1 -2
  184. package/dist/C_Markdown.cjs +1 -1
  185. package/dist/C_Markdown.css +940 -35
  186. package/dist/C_Markdown.d.cts +1 -1
  187. package/dist/C_Markdown.d.ts +1 -1
  188. package/dist/C_Markdown2.cjs +1 -0
  189. package/dist/C_Markdown2.js +1 -2
  190. package/dist/C_Menu.cjs +1 -1
  191. package/dist/C_Menu.css +1 -0
  192. package/dist/C_Menu.d.cts +3 -3
  193. package/dist/C_Menu.d.ts +3 -4
  194. package/dist/C_Menu.js +1 -1
  195. package/dist/C_Menu2.cjs +1 -0
  196. package/dist/C_Menu2.js +1 -2
  197. package/dist/C_NotificationCenter.cjs +1 -1
  198. package/dist/C_NotificationCenter.css +95 -47
  199. package/dist/C_NotificationCenter.d.cts +1 -1
  200. package/dist/C_NotificationCenter.js +1 -1
  201. package/dist/C_NotificationCenter2.cjs +1 -0
  202. package/dist/C_NotificationCenter2.js +1 -2
  203. package/dist/C_OrgChart.cjs +1 -1
  204. package/dist/C_OrgChart.css +6 -4
  205. package/dist/C_OrgChart.d.cts +1 -1
  206. package/dist/C_OrgChart.d.ts +1 -1
  207. package/dist/C_OrgChart2.cjs +1 -0
  208. package/dist/C_OrgChart2.js +1 -2
  209. package/dist/C_Progress.cjs +1 -1
  210. package/dist/C_Progress.css +1 -0
  211. package/dist/C_Progress.d.cts +1 -1
  212. package/dist/C_Progress.d.ts +1 -1
  213. package/dist/C_Progress2.cjs +1 -0
  214. package/dist/C_Progress2.js +1 -2
  215. package/dist/C_QRCode.cjs +1 -1
  216. package/dist/C_QRCode.css +8 -10
  217. package/dist/C_QRCode.d.cts +1 -1
  218. package/dist/C_QRCode2.cjs +1 -0
  219. package/dist/C_QRCode2.js +1 -2
  220. package/dist/C_Signature.cjs +1 -1
  221. package/dist/C_Signature.css +0 -2
  222. package/dist/C_Signature.d.cts +1 -1
  223. package/dist/C_Signature.js +1 -1
  224. package/dist/C_Signature2.cjs +1 -0
  225. package/dist/C_Signature2.js +1 -2
  226. package/dist/C_Skeleton.cjs +1 -1
  227. package/dist/C_Skeleton.css +0 -2
  228. package/dist/C_Skeleton.d.cts +1 -1
  229. package/dist/C_Skeleton.d.ts +1 -1
  230. package/dist/C_Skeleton2.cjs +1 -0
  231. package/dist/C_Skeleton2.js +1 -2
  232. package/dist/C_SplitPane.cjs +1 -1
  233. package/dist/C_SplitPane.css +27 -11
  234. package/dist/C_SplitPane.d.cts +1 -1
  235. package/dist/C_SplitPane.js +1 -1
  236. package/dist/C_SplitPane2.cjs +1 -0
  237. package/dist/C_SplitPane2.js +1 -2
  238. package/dist/C_Steps.cjs +1 -1
  239. package/dist/C_Steps.css +37 -39
  240. package/dist/C_Steps.d.cts +1 -1
  241. package/dist/C_Steps.d.ts +1 -1
  242. package/dist/C_Steps2.cjs +1 -0
  243. package/dist/C_Steps2.js +1 -2
  244. package/dist/C_Table.base.css +1588 -0
  245. package/dist/C_Table.cjs +1 -1
  246. package/dist/C_Table.css +1202 -112
  247. package/dist/C_Table.d.cts +2 -2
  248. package/dist/C_Table.d.ts +11 -2
  249. package/dist/C_Table.js +1 -1
  250. package/dist/C_TagsView.cjs +1 -1
  251. package/dist/C_TagsView.css +44 -40
  252. package/dist/C_TagsView.d.cts +2 -2
  253. package/dist/C_TagsView.d.ts +2 -3
  254. package/dist/C_TagsView.js +1 -1
  255. package/dist/C_TagsView2.cjs +1 -0
  256. package/dist/C_TagsView2.js +1 -2
  257. package/dist/C_Theme.cjs +1 -1
  258. package/dist/C_Theme.css +1 -0
  259. package/dist/C_Theme.d.cts +1 -1
  260. package/dist/C_Theme.d.ts +1 -1
  261. package/dist/C_Theme.js +1 -1
  262. package/dist/C_Theme2.cjs +1 -0
  263. package/dist/C_Theme2.js +1 -2
  264. package/dist/C_Time.cjs +1 -1
  265. package/dist/C_Time.css +0 -2
  266. package/dist/C_Time.d.cts +2 -2
  267. package/dist/C_Time.d.ts +2 -2
  268. package/dist/C_Time2.cjs +1 -0
  269. package/dist/C_Time2.js +1 -2
  270. package/dist/C_Timeline.cjs +1 -1
  271. package/dist/C_Timeline.css +44 -46
  272. package/dist/C_Timeline.d.cts +1 -1
  273. package/dist/C_Timeline.js +1 -1
  274. package/dist/C_Timeline2.cjs +1 -0
  275. package/dist/C_Timeline2.js +1 -2
  276. package/dist/C_Transfer.cjs +1 -1
  277. package/dist/C_Transfer.css +21 -9
  278. package/dist/C_Transfer.d.cts +1 -1
  279. package/dist/C_Transfer.js +1 -1
  280. package/dist/C_Transfer2.cjs +1 -0
  281. package/dist/C_Transfer2.js +1 -2
  282. package/dist/C_Tree.cjs +1 -1
  283. package/dist/C_Tree.css +0 -2
  284. package/dist/C_Tree.d.cts +1 -1
  285. package/dist/C_Tree.js +1 -1
  286. package/dist/C_Tree2.cjs +1 -0
  287. package/dist/C_Tree2.js +1 -2
  288. package/dist/C_Upload.cjs +1 -1
  289. package/dist/C_Upload.css +17 -17
  290. package/dist/C_Upload.d.cts +1 -1
  291. package/dist/C_Upload.js +1 -1
  292. package/dist/C_Upload2.cjs +1 -0
  293. package/dist/C_Upload2.js +1 -25
  294. package/dist/C_VideoPlayer.cjs +1 -1
  295. package/dist/C_VideoPlayer.css +35 -24
  296. package/dist/C_VideoPlayer.d.cts +2 -2
  297. package/dist/C_VideoPlayer.d.ts +2 -2
  298. package/dist/C_VideoPlayer.js +1 -1
  299. package/dist/C_VideoPlayer2.cjs +3 -0
  300. package/dist/C_VideoPlayer2.js +3 -4
  301. package/dist/C_VtableGantt.cjs +1 -1
  302. package/dist/C_VtableGantt.css +15 -7
  303. package/dist/C_VtableGantt.d.cts +1 -1
  304. package/dist/C_VtableGantt.d.ts +1 -1
  305. package/dist/C_VtableGantt.js +1 -1
  306. package/dist/C_VtableGantt2.cjs +1 -0
  307. package/dist/C_VtableGantt2.js +1 -2
  308. package/dist/C_WaterFall.cjs +1 -1
  309. package/dist/C_WaterFall.css +15 -17
  310. package/dist/C_WaterFall.d.cts +1 -1
  311. package/dist/C_WaterFall2.cjs +1 -0
  312. package/dist/C_WaterFall2.js +1 -2
  313. package/dist/C_WorkFlow.cjs +1 -1
  314. package/dist/C_WorkFlow.css +257 -197
  315. package/dist/C_WorkFlow.d.cts +1 -1
  316. package/dist/C_WorkFlow.js +1 -1
  317. package/dist/C_WorkFlow2.cjs +1 -0
  318. package/dist/C_WorkFlow2.js +1 -2
  319. package/dist/city.cjs +1 -0
  320. package/dist/city.js +1 -2
  321. package/dist/config.cjs +1 -0
  322. package/dist/config.d.cts +33 -0
  323. package/dist/config.d.ts +33 -0
  324. package/dist/config.js +1 -0
  325. package/dist/constants.d.cts +272 -0
  326. package/dist/constants.d.ts +1 -2
  327. package/dist/constants2.d.cts +177 -0
  328. package/dist/constants2.d.ts +3 -4
  329. package/dist/constants3.d.cts +479 -0
  330. package/dist/constants3.d.ts +15 -11
  331. package/dist/constants4.d.cts +420 -0
  332. package/dist/constants4.d.ts +30 -40
  333. package/dist/constants5.d.cts +491 -0
  334. package/dist/constants5.d.ts +22 -6
  335. package/dist/data.cjs +1 -0
  336. package/dist/data.d.cts +67 -0
  337. package/dist/data.d.ts +11 -11
  338. package/dist/data.js +1 -0
  339. package/dist/export-helper.cjs +1 -0
  340. package/dist/helpers.cjs +1 -0
  341. package/dist/helpers.js +1 -0
  342. package/dist/html.cjs +1 -0
  343. package/dist/html.js +1 -0
  344. package/dist/images/marker-icon-2x.png +0 -0
  345. package/dist/images/marker-icon.png +0 -0
  346. package/dist/images/marker-shadow.png +0 -0
  347. package/dist/index.cjs +1 -2
  348. package/dist/index.d.cts +60 -99
  349. package/dist/index.d.ts +41 -83
  350. package/dist/index.js +1 -2
  351. package/dist/index.vue.d.cts +79 -0
  352. package/dist/index.vue.d.ts +3 -4
  353. package/dist/index10.vue.d.cts +47 -0
  354. package/dist/index10.vue.d.ts +80 -40
  355. package/dist/index11.vue.d.cts +88 -0
  356. package/dist/index11.vue.d.ts +68 -78
  357. package/dist/index12.vue.d.cts +79 -0
  358. package/dist/index12.vue.d.ts +50 -46
  359. package/dist/index13.vue.d.cts +64 -0
  360. package/dist/index13.vue.d.ts +99 -34
  361. package/dist/index14.vue.d.cts +106 -0
  362. package/dist/index14.vue.d.ts +82 -99
  363. package/dist/index15.vue.d.cts +91 -0
  364. package/dist/index15.vue.d.ts +25 -83
  365. package/dist/index16.vue.d.cts +34 -0
  366. package/dist/index16.vue.d.ts +113 -24
  367. package/dist/index17.vue.d.cts +124 -0
  368. package/dist/index17.vue.d.ts +76 -110
  369. package/dist/index18.vue.d.cts +83 -0
  370. package/dist/index18.vue.d.ts +67 -73
  371. package/dist/index19.vue.d.cts +101 -0
  372. package/dist/index19.vue.d.ts +93 -59
  373. package/dist/index2.vue.d.cts +82 -0
  374. package/dist/index2.vue.d.ts +6 -7
  375. package/dist/index20.vue.d.cts +54 -0
  376. package/dist/index20.vue.d.ts +40 -88
  377. package/dist/index21.vue.d.cts +103 -0
  378. package/dist/index21.vue.d.ts +89 -41
  379. package/dist/index22.vue.d.cts +45 -0
  380. package/dist/index22.vue.d.ts +37 -96
  381. package/dist/index23.vue.d.cts +19 -0
  382. package/dist/index23.vue.d.ts +8 -35
  383. package/dist/{index28.vue.d.ts → index24.vue.d.cts} +2 -3
  384. package/dist/index24.vue.d.ts +650 -86
  385. package/dist/index25.vue.d.cts +96 -0
  386. package/dist/index25.vue.d.ts +86 -10
  387. package/dist/index26.vue.d.cts +111 -0
  388. package/dist/index26.vue.d.ts +4 -5
  389. package/dist/index27.vue.d.cts +80 -0
  390. package/dist/index27.vue.d.ts +4 -5
  391. package/dist/index3.vue.d.cts +87 -0
  392. package/dist/index3.vue.d.ts +4 -5
  393. package/dist/index4.vue.d.cts +37 -0
  394. package/dist/index4.vue.d.ts +4 -5
  395. package/dist/index5.vue.d.cts +133 -0
  396. package/dist/index5.vue.d.ts +2 -3
  397. package/dist/index6.vue.d.cts +29 -0
  398. package/dist/index6.vue.d.ts +25 -38
  399. package/dist/index7.vue.d.cts +32 -0
  400. package/dist/index7.vue.d.ts +117 -23
  401. package/dist/index8.vue.d.cts +127 -0
  402. package/dist/index8.vue.d.ts +17 -111
  403. package/dist/index9.vue.d.cts +34 -0
  404. package/dist/index9.vue.d.ts +38 -26
  405. package/dist/{menuAdapter.d.ts → public.d.ts} +2 -3
  406. package/dist/resolver.cjs +1 -2
  407. package/dist/resolver.d.cts +6 -4
  408. package/dist/resolver.d.ts +6 -4
  409. package/dist/resolver.js +1 -2
  410. package/dist/storage.cjs +1 -0
  411. package/dist/storage.js +1 -2
  412. package/dist/style.css +9864 -7702
  413. package/dist/types.d.cts +107 -0
  414. package/dist/types.d.ts +58 -0
  415. package/dist/types2.d.cts +58 -0
  416. package/dist/useCalendarEvents.d.cts +150 -0
  417. package/dist/useCalendarEvents.d.ts +2 -3
  418. package/dist/useCollapsePanel.d.cts +133 -0
  419. package/dist/useCollapsePanel.d.ts +7 -8
  420. package/dist/useCropperCore.d.cts +104 -0
  421. package/dist/useCropperCore.d.ts +8 -6
  422. package/dist/useDraggableLayout.d.cts +196 -0
  423. package/dist/useDraggableLayout.d.ts +17 -15
  424. package/dist/useDynamicFormState.d.cts +749 -0
  425. package/dist/useDynamicFormState.d.ts +234 -112
  426. package/dist/useEdgeInteraction.d.cts +324 -0
  427. package/dist/useEdgeInteraction.d.ts +5 -6
  428. package/dist/useFullscreen.d.cts +165 -0
  429. package/dist/useFullscreen.d.ts +3 -4
  430. package/dist/useGlobalSearch.d.cts +110 -0
  431. package/dist/useGlobalSearch.d.ts +17 -9
  432. package/dist/useInfiniteScroll.d.cts +177 -0
  433. package/dist/useInfiniteScroll.d.ts +11 -3
  434. package/dist/useQRCode.d.cts +89 -0
  435. package/dist/useQRCode.d.ts +7 -5
  436. package/dist/useSearchState.d.cts +871 -0
  437. package/dist/useSearchState.d.ts +828 -28
  438. package/dist/useSignatureHistory.d.cts +197 -0
  439. package/dist/useSignatureHistory.d.ts +9 -4
  440. package/dist/useSplitResize.d.cts +157 -0
  441. package/dist/useSplitResize.d.ts +6 -7
  442. package/dist/useTableQuery.cjs +3 -0
  443. package/dist/useTableQuery.d.cts +1684 -0
  444. package/dist/useTableQuery.d.ts +1684 -0
  445. package/dist/useTableQuery.js +3 -0
  446. package/dist/useTimeSelection.d.cts +116 -0
  447. package/dist/useTimeSelection.d.ts +19 -8
  448. package/dist/useTreeOperations.d.cts +185 -0
  449. package/dist/useTreeOperations.d.ts +10 -8
  450. package/dist/useWorkflowValidation.d.cts +1051 -0
  451. package/dist/useWorkflowValidation.d.ts +62 -63
  452. package/dist/verification.d.cts +58 -0
  453. package/dist/verification.d.ts +58 -0
  454. package/package.json +102 -69
  455. package/dist/C_ActionBar-BAcfOfRw.css.map +0 -1
  456. package/dist/C_ActionBar-DG2HW7t5.css.map +0 -1
  457. package/dist/C_ActionBar.js.map +0 -1
  458. package/dist/C_ActionBar2.js.map +0 -1
  459. package/dist/C_AntV-D_jTK8oZ.css.map +0 -1
  460. package/dist/C_AntV-DanTAq22.css.map +0 -1
  461. package/dist/C_AntV.js.map +0 -1
  462. package/dist/C_AntV2.js.map +0 -1
  463. package/dist/C_AudioPlayer-BnYIJXPD.css.map +0 -1
  464. package/dist/C_AudioPlayer-ldTy9Y34.css.map +0 -1
  465. package/dist/C_AudioPlayer.js.map +0 -1
  466. package/dist/C_AudioPlayer2.js.map +0 -1
  467. package/dist/C_AvatarGroup-B9d-GJ9c.css.map +0 -1
  468. package/dist/C_AvatarGroup-SIzxuuZr.css.map +0 -1
  469. package/dist/C_AvatarGroup.js.map +0 -1
  470. package/dist/C_AvatarGroup2.js.map +0 -1
  471. package/dist/C_Barcode-CAU2mFcx.css.map +0 -1
  472. package/dist/C_Barcode-D2oJaEg3.css.map +0 -1
  473. package/dist/C_Barcode.js.map +0 -1
  474. package/dist/C_Barcode2.js.map +0 -1
  475. package/dist/C_Breadcrumb-BiH0d9AI.css.map +0 -1
  476. package/dist/C_Breadcrumb-Bqqrl8nX.css.map +0 -1
  477. package/dist/C_Breadcrumb.js.map +0 -1
  478. package/dist/C_Breadcrumb2.js.map +0 -1
  479. package/dist/C_Captcha-B3yrtG7t.css.map +0 -1
  480. package/dist/C_Captcha-D4hDdWDu.css.map +0 -1
  481. package/dist/C_Captcha.js.map +0 -1
  482. package/dist/C_Captcha2.js.map +0 -1
  483. package/dist/C_Cascade-CmCrLVft.css.map +0 -1
  484. package/dist/C_Cascade-U6A5AJJb.css.map +0 -1
  485. package/dist/C_Cascade.js.map +0 -1
  486. package/dist/C_Cascade2.js.map +0 -1
  487. package/dist/C_Chat-CF1SU7mc.css.map +0 -1
  488. package/dist/C_Chat-DeUv6uuI.css.map +0 -1
  489. package/dist/C_Chat.js.map +0 -1
  490. package/dist/C_Chat2.js.map +0 -1
  491. package/dist/C_City-DdkX6u64.css.map +0 -1
  492. package/dist/C_City-iP-dIvui.css.map +0 -1
  493. package/dist/C_City.js.map +0 -1
  494. package/dist/C_City2.js.map +0 -1
  495. package/dist/C_Code-BWmJMNS7.css.map +0 -1
  496. package/dist/C_Code-k14vjgVl.css.map +0 -1
  497. package/dist/C_Code.js.map +0 -1
  498. package/dist/C_Code2.js.map +0 -1
  499. package/dist/C_CollapsePanel-BSKcWSmY.css.map +0 -1
  500. package/dist/C_CollapsePanel-DRvRq8tB.css.map +0 -1
  501. package/dist/C_CollapsePanel.js.map +0 -1
  502. package/dist/C_CollapsePanel2.js.map +0 -1
  503. package/dist/C_ContextMenu-Bn_uhJSo.css.map +0 -1
  504. package/dist/C_ContextMenu-C9iuxG2n.css.map +0 -1
  505. package/dist/C_ContextMenu.js.map +0 -1
  506. package/dist/C_ContextMenu2.js.map +0 -1
  507. package/dist/C_Cron-BIQ2By9v.css.map +0 -1
  508. package/dist/C_Cron-BNSAGD6A.css.map +0 -1
  509. package/dist/C_Cron.js.map +0 -1
  510. package/dist/C_Cron2.js.map +0 -1
  511. package/dist/C_Date.js.map +0 -1
  512. package/dist/C_Date2.js.map +0 -1
  513. package/dist/C_Draggable-BDAbk4s5.css.map +0 -1
  514. package/dist/C_Draggable-UhfDLXop.css.map +0 -1
  515. package/dist/C_Draggable.js.map +0 -1
  516. package/dist/C_Draggable2.js.map +0 -1
  517. package/dist/C_Editor-CZOaChru.css.map +0 -1
  518. package/dist/C_Editor-kJAQq5z6.css.map +0 -1
  519. package/dist/C_Editor.js.map +0 -1
  520. package/dist/C_Editor2.js.map +0 -1
  521. package/dist/C_FilePreview-Bs_omgJS.css.map +0 -1
  522. package/dist/C_FilePreview-DbwoyF2j.css.map +0 -1
  523. package/dist/C_FilePreview.js.map +0 -1
  524. package/dist/C_FilePreview2.js.map +0 -1
  525. package/dist/C_Form-B_2ql62V.css.map +0 -1
  526. package/dist/C_Form-CX-7xsz3.css.map +0 -1
  527. package/dist/C_Form.js.map +0 -1
  528. package/dist/C_Form2.js.map +0 -1
  529. package/dist/C_FormSearch-C3F8peAY.css.map +0 -1
  530. package/dist/C_FormSearch-qW56bJPo.css.map +0 -1
  531. package/dist/C_FormSearch.js.map +0 -1
  532. package/dist/C_FormSearch2.js.map +0 -1
  533. package/dist/C_FormulaEditor-ChOvDbsZ.css.map +0 -1
  534. package/dist/C_FormulaEditor-mfiIUDY4.css.map +0 -1
  535. package/dist/C_FormulaEditor.js.map +0 -1
  536. package/dist/C_FormulaEditor2.js.map +0 -1
  537. package/dist/C_FullCalendar-C2nsqrgS.css.map +0 -1
  538. package/dist/C_FullCalendar-DdFtXVhy.css.map +0 -1
  539. package/dist/C_FullCalendar.js.map +0 -1
  540. package/dist/C_FullCalendar2.js.map +0 -1
  541. package/dist/C_GlobalSearch-Dq4Wo01K.css.map +0 -1
  542. package/dist/C_GlobalSearch-RB7J43gu.css.map +0 -1
  543. package/dist/C_GlobalSearch.js.map +0 -1
  544. package/dist/C_GlobalSearch2.js.map +0 -1
  545. package/dist/C_Guide.js.map +0 -1
  546. package/dist/C_Guide2.js.map +0 -1
  547. package/dist/C_Icon.js.map +0 -1
  548. package/dist/C_Icon2.js.map +0 -1
  549. package/dist/C_ImageCropper-CdTX2nxU.css.map +0 -1
  550. package/dist/C_ImageCropper-ilOqPklJ.css.map +0 -1
  551. package/dist/C_ImageCropper.js.map +0 -1
  552. package/dist/C_ImageCropper2.js.map +0 -1
  553. package/dist/C_Language.js.map +0 -1
  554. package/dist/C_Language2.js.map +0 -1
  555. package/dist/C_Login-B3qYkLrN.css.map +0 -1
  556. package/dist/C_Login-xMI1_ojE.css.map +0 -1
  557. package/dist/C_Login.js.map +0 -1
  558. package/dist/C_Login2.js.map +0 -1
  559. package/dist/C_Map-CWMMN58_.css.map +0 -1
  560. package/dist/C_Map-xSR2H-9o.css.map +0 -1
  561. package/dist/C_Map.js.map +0 -1
  562. package/dist/C_Map2.js.map +0 -1
  563. package/dist/C_Markdown-C7lTVJ1S.css.map +0 -1
  564. package/dist/C_Markdown-CZDm_baQ.css.map +0 -1
  565. package/dist/C_Markdown.js.map +0 -1
  566. package/dist/C_Markdown2.js.map +0 -1
  567. package/dist/C_Menu.js.map +0 -1
  568. package/dist/C_Menu2.js.map +0 -1
  569. package/dist/C_NotificationCenter-D7GGGWg7.css.map +0 -1
  570. package/dist/C_NotificationCenter-SSmeHA45.css.map +0 -1
  571. package/dist/C_NotificationCenter.js.map +0 -1
  572. package/dist/C_NotificationCenter2.js.map +0 -1
  573. package/dist/C_OrgChart-ChZu346B.css.map +0 -1
  574. package/dist/C_OrgChart-DqBufOv5.css.map +0 -1
  575. package/dist/C_OrgChart.js.map +0 -1
  576. package/dist/C_OrgChart2.js.map +0 -1
  577. package/dist/C_Progress.js.map +0 -1
  578. package/dist/C_Progress2.js.map +0 -1
  579. package/dist/C_QRCode-B_1lHUdx.css.map +0 -1
  580. package/dist/C_QRCode-CuQRYu0s.css.map +0 -1
  581. package/dist/C_QRCode.js.map +0 -1
  582. package/dist/C_QRCode2.js.map +0 -1
  583. package/dist/C_Signature-Bp-RBpAl.css.map +0 -1
  584. package/dist/C_Signature-Cb2VW1ok.css.map +0 -1
  585. package/dist/C_Signature.js.map +0 -1
  586. package/dist/C_Signature2.js.map +0 -1
  587. package/dist/C_Skeleton-BNPbaut7.css.map +0 -1
  588. package/dist/C_Skeleton-Djsjw8XY.css.map +0 -1
  589. package/dist/C_Skeleton.js.map +0 -1
  590. package/dist/C_Skeleton2.js.map +0 -1
  591. package/dist/C_SplitPane-CgGWYsRE.css.map +0 -1
  592. package/dist/C_SplitPane-DGf6WEeR.css.map +0 -1
  593. package/dist/C_SplitPane.js.map +0 -1
  594. package/dist/C_SplitPane2.js.map +0 -1
  595. package/dist/C_Steps-27Exh7PM.css.map +0 -1
  596. package/dist/C_Steps-DU9ZsFrs.css.map +0 -1
  597. package/dist/C_Steps.js.map +0 -1
  598. package/dist/C_Steps2.js.map +0 -1
  599. package/dist/C_Table--kbQaaBv.css.map +0 -1
  600. package/dist/C_Table-D631kdXC.css.map +0 -1
  601. package/dist/C_Table.js.map +0 -1
  602. package/dist/C_Table2.js +0 -4
  603. package/dist/C_Table2.js.map +0 -1
  604. package/dist/C_TagsView-BN8vMRsY.css.map +0 -1
  605. package/dist/C_TagsView-s1dnSJAV.css.map +0 -1
  606. package/dist/C_TagsView.js.map +0 -1
  607. package/dist/C_TagsView2.js.map +0 -1
  608. package/dist/C_Theme.js.map +0 -1
  609. package/dist/C_Theme2.js.map +0 -1
  610. package/dist/C_Time-BQ9PGy8B.css.map +0 -1
  611. package/dist/C_Time-CO73krC6.css.map +0 -1
  612. package/dist/C_Time.js.map +0 -1
  613. package/dist/C_Time2.js.map +0 -1
  614. package/dist/C_Timeline-4rk0Dzgn.css.map +0 -1
  615. package/dist/C_Timeline-DdESmqwL.css.map +0 -1
  616. package/dist/C_Timeline.js.map +0 -1
  617. package/dist/C_Timeline2.js.map +0 -1
  618. package/dist/C_Transfer-B-vjvhjI.css.map +0 -1
  619. package/dist/C_Transfer-EzdHzZNv.css.map +0 -1
  620. package/dist/C_Transfer.js.map +0 -1
  621. package/dist/C_Transfer2.js.map +0 -1
  622. package/dist/C_Tree-CsXgGfhn.css.map +0 -1
  623. package/dist/C_Tree-P7eRpnOa.css.map +0 -1
  624. package/dist/C_Tree.js.map +0 -1
  625. package/dist/C_Tree2.js.map +0 -1
  626. package/dist/C_Upload-CHjiVVh7.css.map +0 -1
  627. package/dist/C_Upload-DE3OLsZD.css.map +0 -1
  628. package/dist/C_Upload.js.map +0 -1
  629. package/dist/C_Upload2.js.map +0 -1
  630. package/dist/C_VideoPlayer-CnaNOFtW.css.map +0 -1
  631. package/dist/C_VideoPlayer-cnP88zNV.css.map +0 -1
  632. package/dist/C_VideoPlayer.js.map +0 -1
  633. package/dist/C_VideoPlayer2.js.map +0 -1
  634. package/dist/C_VtableGantt-CZlJgvpC.css.map +0 -1
  635. package/dist/C_VtableGantt-DKfQkql0.css.map +0 -1
  636. package/dist/C_VtableGantt.js.map +0 -1
  637. package/dist/C_VtableGantt2.js.map +0 -1
  638. package/dist/C_WaterFall-BJ_39ext.css.map +0 -1
  639. package/dist/C_WaterFall-cYc1vntE.css.map +0 -1
  640. package/dist/C_WaterFall.js.map +0 -1
  641. package/dist/C_WaterFall2.js.map +0 -1
  642. package/dist/C_WorkFlow-BFzRGGhJ.css.map +0 -1
  643. package/dist/C_WorkFlow-DSyCOvRp.css.map +0 -1
  644. package/dist/C_WorkFlow.js.map +0 -1
  645. package/dist/C_WorkFlow2.js.map +0 -1
  646. package/dist/_shared.cjs +0 -1
  647. package/dist/_shared.d.cts +0 -2
  648. package/dist/_shared.d.ts +0 -2
  649. package/dist/_shared.js +0 -1
  650. package/dist/city.js.map +0 -1
  651. package/dist/index.cjs.map +0 -1
  652. package/dist/index.js.map +0 -1
  653. package/dist/menuAdapter.js +0 -2
  654. package/dist/menuAdapter.js.map +0 -1
  655. package/dist/resolver.cjs.map +0 -1
  656. package/dist/resolver.js.map +0 -1
  657. package/dist/storage.js.map +0 -1
  658. package/dist/useModalEdit.d.ts +0 -1308
  659. /package/dist/{chunk.js → chunk.cjs} +0 -0
package/README.md CHANGED
@@ -1,318 +1,463 @@
1
- <div align="center">
2
-
3
- # @robot-admin/naive-ui-components
4
-
5
- **基于 Naive UI 的 Vue 3 企业级组件库**
6
-
7
- 从 Robot Admin 中提炼的 51 个高质量业务组件,支持全量注册、按需导入(Tree-Shaking)和子路径独立导入。
8
-
9
- [![NPM Version](https://img.shields.io/npm/v/@robot-admin/naive-ui-components)](https://www.npmjs.com/package/@robot-admin/naive-ui-components)
10
- [![License](https://img.shields.io/npm/l/@robot-admin/naive-ui-components)](./LICENSE)
11
-
12
- [在线文档](https://www.tzagileteam.com/robot/components/preface) · [GitHub](https://github.com/ChenyCHENYU/naive-ui-components) · [NPM](https://www.npmjs.com/package/@robot-admin/naive-ui-components)
13
-
14
- [English](./README_EN.md)
15
-
16
- </div>
17
-
18
- ---
19
-
20
- ## 📦 安装
21
-
22
- ```bash
23
- bun add @robot-admin/naive-ui-components
24
- ```
25
-
26
- 必需的对等依赖:
27
-
28
- ```bash
29
- bun add vue@^3.5.0 naive-ui@^2.35.0 @robot-admin/form-validate@^2.0.0
30
- ```
31
-
32
- ### 🚀 快速开始
33
-
34
- #### 全局注册
35
-
36
- ```typescript
37
- import { createApp } from 'vue'
38
- import NaiveUIComponents from '@robot-admin/naive-ui-components'
39
- import '@robot-admin/naive-ui-components/style.css'
40
-
41
- const app = createApp(App)
42
- app.use(NaiveUIComponents)
43
- app.mount('#app')
44
- ```
45
-
46
- #### 按需导入(主入口 Tree-Shaking)
47
-
48
- ```vue
49
- <script setup lang="ts">
50
- import { C_Icon, C_Table, C_Form } from '@robot-admin/naive-ui-components'
51
- import '@robot-admin/naive-ui-components/style.css'
52
- </script>
53
- ```
54
-
55
- #### 子路径独立导入(推荐,最小打包体积)
56
-
57
- 每个组件都提供独立的子路径入口,仅加载目标组件的代码和类型:
58
-
59
- ```vue
60
- <script setup lang="ts">
61
- import { C_Form } from '@robot-admin/naive-ui-components/C_Form'
62
- import { C_Table } from '@robot-admin/naive-ui-components/C_Table'
63
- import { C_Icon } from '@robot-admin/naive-ui-components/C_Icon'
64
- import { createMenuOptions } from '@robot-admin/naive-ui-components/C_Menu'
65
- import '@robot-admin/naive-ui-components/style.css'
66
- </script>
67
- ```
68
-
69
- > 子路径导入提供完整的 TypeScript 类型支持(`.d.ts`),IDE 可自动补全 props / emits / slots。组件相关工具函数(如 `createMenuOptions`)也从对应组件子路径导出,避免为了单个工具加载组件库根入口。
70
-
71
- #### Composables 单独使用
72
-
73
- ```typescript
74
- import {
75
- useTableManager,
76
- useFormState,
77
- usePlayerCore,
78
- } from '@robot-admin/naive-ui-components'
79
- ```
80
-
81
- #### 自动按需导入(推荐)
82
-
83
- Resolver 默认从组件子路径加载,避免只使用少量组件时把整个组件库及重型可选依赖带入首屏:
84
-
85
- ```typescript
86
- import Components from 'unplugin-vue-components/vite'
87
- import { RobotNaiveUiResolver } from '@robot-admin/naive-ui-components/resolver'
88
-
89
- Components({
90
- resolvers: [RobotNaiveUiResolver({ importStyle: true })],
91
- })
92
- ```
93
-
94
- 如需兼容旧项目的主入口导入,可显式设置 `importOnDemand: false`。
95
-
96
- ### 📋 组件清单(51 个)
97
-
98
- > 💡 所有组件均提供 **在线交互演示**,访问 [组件文档](https://www.tzagileteam.com/robot/components/preface) 可直接在页面中体验真实效果(通过 iframe 嵌入 Robot Admin 生产环境)。
99
-
100
- #### 基础组件
101
-
102
- | 组件 | 说明 | 外部依赖 |
103
- | ---------------- | ---------------- | --------------------------- |
104
- | `C_Icon` | Iconify 图标封装 | `@iconify/vue` |
105
- | `C_Code` | 代码高亮显示 | `highlight.js` |
106
- | `C_Barcode` | 条形码生成器 | `@chenfengyuan/vue-barcode` |
107
- | `C_Captcha` | 拼图验证码 | `vue3-puzzle-vcode` |
108
- | `C_Cascade` | 级联面板选择器 | - |
109
- | `C_Guide` | 新手引导 | `driver.js` |
110
- | `C_Progress` | 增强进度条 | - |
111
- | `C_Steps` | 步骤条 | - |
112
- | `C_ActionBar` | 操作按钮栏 | - |
113
- | `C_Theme` | 主题切换器 | - |
114
- | `C_Language` | 语言切换器 | - |
115
- | `C_Date` | 日期选择器增强 | - |
116
- | `C_City` | 省市区三级联动 | - |
117
- | `C_Breadcrumb` | 面包屑导航 | - |
118
- | `C_Menu` | 导航菜单 | - |
119
- | `C_TagsView` | 标签页导航 | - |
120
- | `C_GlobalSearch` | 全局搜索面板 | - |
121
- | `C_AvatarGroup` | 头像组合展示 | - |
122
- | `C_OrgChart` | 组织架构图 | - |
123
- | `C_Skeleton` | 骨架屏占位组件 | - |
124
-
125
- #### 内容 & 编辑组件
126
-
127
- | 组件 | 说明 | 外部依赖 |
128
- | ----------------- | -------------------- | -------------------- |
129
- | `C_Editor` | 富文本编辑器 | `@wangeditor/editor` |
130
- | `C_Markdown` | Markdown 编辑器/预览 | `@kangc/v-md-editor` |
131
- | `C_FormulaEditor` | 公式编辑器 | `expr-eval` |
132
- | `C_Signature` | 电子签名 | - |
133
- | `C_QRCode` | 二维码生成器 | `qrcode` |
134
- | `C_ImageCropper` | 图片裁剪器 | `vue-cropper` |
135
-
136
- #### 数据展示组件
137
-
138
- | 组件 | 说明 | 外部依赖 |
139
- | ---------------- | ----------------------------------------- | ------------------------------------ |
140
- | `C_Table` | 高级数据表格(CRUD/行列编辑/动态行/打印) | `print-js`、`html2canvas` |
141
- | `C_Map` | 地图组件(OSM/高德) | `leaflet` |
142
- | `C_VtableGantt` | 甘特图 | `@visactor/vtable-gantt` |
143
- | `C_AntV` | 图编辑器(ER/BPMN/UML) | `@antv/x6`、`html2canvas` |
144
- | `C_WaterFall` | 瀑布流布局 | - |
145
- | `C_FullCalendar` | 日历事件 | `@fullcalendar/*` |
146
- | `C_VideoPlayer` | 视频播放器(HLS/字幕/书签/章节) | `xgplayer`、`xgplayer-hls` |
147
- | `C_AudioPlayer` | 音频播放器(波形/进度/播放列表) | - |
148
- | `C_FilePreview` | 文件预览(PDF/Word/Excel) | `xlsx`、`mammoth`、`@tato30/vue-pdf` |
149
- | `C_Timeline` | 时间线(垂直/水平/可折叠) | - |
150
-
151
- #### 表单 & 布局组件
152
-
153
- | 组件 | 说明 | 外部依赖 |
154
- | ----------------- | ------------------------------------------------- | ---------------------------- |
155
- | `C_Form` | 动态表单引擎(Grid/Tabs/Steps/Card/Dynamic 布局) | `@robot-admin/form-validate` |
156
- | `C_FormSearch` | 搜索表单 | - |
157
- | `C_CollapsePanel` | 折叠面板 | - |
158
- | `C_SplitPane` | 分割面板 | - |
159
- | `C_Draggable` | 拖拽排序 | `vue-draggable-plus` |
160
- | `C_Tree` | 高级树形控件 | - |
161
- | `C_Time` | 时间选择器增强 | - |
162
- | `C_Cron` | Cron 表达式编辑器 | - |
163
- | `C_Transfer` | 穿梭框(搜索/全选/批量操作) | - |
164
-
165
- #### 交互 & 业务组件
166
-
167
- | 组件 | 说明 | 外部依赖 |
168
- | --------------- | -------------------------------------- | -------- |
169
- | `C_Chat` | 聊天组件(联系人/消息气泡/输入框) | - |
170
- | `C_ContextMenu` | 右键菜单(嵌套子菜单/快捷键/危险操作) | - |
171
- | `C_Login` | 登录组件(5种模式/验证码/记住密码) | - |
172
-
173
- #### 流程 & 通知组件
174
-
175
- | 组件 | 说明 | 外部依赖 |
176
- | ---------------------- | ------------------------------------ | ---------------- |
177
- | `C_WorkFlow` | 工作流编辑器(审批/抄送/条件节点) | `@vue-flow/core` |
178
- | `C_NotificationCenter` | 通知中心(WebSocket/轮询) | - |
179
- | `C_Upload` | 大文件上传(分片/断点续传/哈希校验) | `spark-md5` |
180
-
181
- ### 🔌 可选依赖
182
-
183
- 包含外部依赖的组件以 `optionalDependencies` 声明。**按需安装**:
184
-
185
- ```bash
186
- # 视频播放器
187
- bun add xgplayer xgplayer-hls
188
-
189
- # 图编辑器
190
- bun add @antv/x6
191
-
192
- # 工作流
193
- bun add @vue-flow/core
194
-
195
- # 文件预览
196
- bun add xlsx mammoth @tato30/vue-pdf
197
-
198
- # 表格打印
199
- bun add print-js html2canvas
200
-
201
- # 公式编辑器
202
- bun add expr-eval
203
- ```
204
-
205
- ### 🏗️ 构建架构
206
-
207
- #### 五阶段构建流水线
208
-
209
- ```
210
- bun run build
211
- ├── 1. tsdown → 多入口打包(51 组件 ESM/CJS/DTS)
212
- ├── 2. sass CLI → 编译 global.scss → global-scss.css
213
- ├── 3. merge-css.js → 合并 SFC CSS + global SCSS → style.css
214
- ├── 4. gen-exports.js → 自动生成 package.json exports 映射
215
- └── 5. check:dist → 校验根入口、子路径及 DTS 公共导出
216
- ```
217
-
218
- #### 技术要点
219
-
220
- - **构建引擎**:[tsdown](https://github.com/rolldown/tsdown)(基于 Rolldown),51 个独立入口并行编译
221
- - **SCSS 处理**:自定义 `scssTransformPlugin` 在 Rolldown 管线内编译 SFC SCSS,独立 Sass CLI 编译全局样式
222
- - **CSS 合并**:构建后将分散的 per-chunk CSS 与 `global-scss.css` 合并为单一 `style.css`
223
- - **类型导出**:统一 `export *` barrel 模式,自动生成完整 `.d.ts`
224
- - **子路径导出**:`gen-exports.js` 自动扫描 `dist/` 并写入 `package.json` 的 `exports` 字段
225
- - **导出冲突检测**:`check-export-conflicts.js` 确保组件间无命名冲突
226
- - **产物入口校验**:`check-dist-entries.js` 防止内部 chunk 覆盖根声明,并保证组件工具的子路径类型完整
227
-
228
- #### 输出产物
229
-
230
- ```
231
- dist/
232
- ├── index.js / index.cjs / index.d.ts # 主入口
233
- ├── C_Form.js / C_Form.cjs / C_Form.d.ts # 子路径入口(51 组件)
234
- ├── style.css # 合并后的全量样式
235
- └── [chunk].js # 共享代码块
236
- ```
237
-
238
- ### 🔧 开发
239
-
240
- ```bash
241
- bun install # 安装依赖
242
- bun run dev # 开发模式(SCSS watch + tsdown watch)
243
- bun run build # 完整构建
244
- bun run build:scss # 仅编译全局 SCSS
245
- bun run build:css # 仅合并 CSS
246
- bun run build:exports # 仅生成 exports 映射
247
- bun run check:exports # 检测导出命名冲突
248
- bun run check:dist # 校验构建后的 JS / DTS 公共入口
249
- bun run type-check # TypeScript 类型检查
250
- bun run test # 运行 Bun 单元测试
251
- bun run lint:check # 强制 Oxlint 正确性检查
252
- bun run lint:eslint # ESLint 存量规则审计
253
- bun run verify # 类型、测试、导出和构建全量验证
254
- ```
255
-
256
- #### 项目结构
257
-
258
- ```
259
- naive-ui-components/
260
- ├── src/
261
- │ ├── index.ts # 库入口(全量注册 + export * barrel)
262
- │ ├── styles/
263
- │ │ ├── variables.scss # CSS 变量 (--c-*)
264
- │ │ └── global.scss # 自动生成的全局样式聚合(@forward barrel)
265
- │ ├── components/
266
- │ │ └── C_[Name]/
267
- │ │ ├── index.vue # 组件主文件
268
- │ │ ├── index.ts # Barrel 导出
269
- │ │ ├── index.scss # 组件样式
270
- │ │ ├── types.ts # 类型定义
271
- │ │ ├── constants.ts # 常量
272
- │ │ ├── data.ts # 静态数据
273
- │ │ ├── composables/ # 组合式函数
274
- │ │ ├── components/ # 子组件
275
- │ │ └── layouts/ # 布局变体(C_Form/C_AntV)
276
- │ ├── plugins/ # highlight.js 等插件
277
- │ └── utils/ # 工具函数
278
- ├── scripts/
279
- │ ├── gen-global-scss.js # 生成 global.scss(@forward barrel)
280
- │ ├── watch-global-scss.js # 开发模式 SCSS 监听
281
- │ ├── merge-css.js # 合并 CSS 产物
282
- │ ├── gen-exports.js # 自动生成 package.json exports
283
- │ └── check-export-conflicts.js # 导出命名冲突检测
284
- ├── types/
285
- │ └── env.d.ts # .vue / .scss 模块声明
286
- ├── tsdown.config.ts # 构建配置(多入口 + SCSS 插件 + Vue 插件)
287
- └── tsconfig.json
288
- ```
289
-
290
- #### 添加新组件
291
-
292
- 1. 创建 `src/components/C_NewComponent/` 目录
293
- 2. 编写 `index.vue`、`index.ts`(barrel)、`types.ts`
294
- 3. 在 `src/index.ts` 中添加 `export * from './components/C_NewComponent'`
295
- 4. 运行 `bun run build`—构建脚本会自动生成子路径入口和 exports 映射
296
-
297
- #### 发布
298
-
299
- ```bash
300
- bun run changeset # 记录变更及版本级别
301
- bun run version # 更新版本号与 CHANGELOG
302
- bun run verify # 发布前完整验证
303
- bun run release # 发布 Changesets 中待发布版本
304
- ```
305
-
306
- ## 📄 许可证
307
-
308
- MIT License
309
-
310
- ---
311
-
312
- ## 🔗 链接
313
-
314
- - [组件在线文档(含交互演示)](https://www.tzagileteam.com/robot/components/preface)
315
- - [Robot Admin 主项目](https://github.com/ChenyCHENYU/robot_admin)
316
- - [Robot Admin 在线体验](https://www.robotadmin.cn)
317
- - [GitHub](https://github.com/ChenyCHENYU/naive-ui-components)
318
- - [NPM](https://www.npmjs.com/package/@robot-admin/naive-ui-components)
1
+ <div align="center">
2
+
3
+ # @robot-admin/naive-ui-components
4
+
5
+ **基于 Naive UI 的 Vue 3 企业级组件库**
6
+
7
+ 从 Robot Admin 中提炼的 51 个高质量业务组件,支持全量注册、按需导入(Tree-Shaking)和子路径独立导入。
8
+
9
+ [![NPM Version](https://img.shields.io/npm/v/@robot-admin/naive-ui-components)](https://www.npmjs.com/package/@robot-admin/naive-ui-components)
10
+ [![License](https://img.shields.io/npm/l/@robot-admin/naive-ui-components)](./LICENSE)
11
+
12
+ [在线文档](https://www.tzagileteam.com/robot/components/preface) · [GitHub](https://github.com/ChenyCHENYU/naive-ui-components) · [NPM](https://www.npmjs.com/package/@robot-admin/naive-ui-components)
13
+
14
+ [English](./README_EN.md)
15
+
16
+ </div>
17
+
18
+ ---
19
+
20
+ ## 📦 安装
21
+
22
+ ```bash
23
+ bun add @robot-admin/naive-ui-components
24
+ ```
25
+
26
+ 必需的对等依赖:
27
+
28
+ ```bash
29
+ bun add vue@^3.5.0 naive-ui@^2.35.0
30
+ ```
31
+
32
+ ### 🚀 快速开始
33
+
34
+ #### 全局注册
35
+
36
+ ```typescript
37
+ import { createApp } from 'vue'
38
+ import NaiveUIComponents from '@robot-admin/naive-ui-components'
39
+ import '@robot-admin/naive-ui-components/style.css'
40
+
41
+ const app = createApp(App)
42
+ app.use(NaiveUIComponents)
43
+ app.mount('#app')
44
+ ```
45
+
46
+ #### 按需导入(主入口 Tree-Shaking)
47
+
48
+ ```vue
49
+ <script setup lang="ts">
50
+ import { C_Icon, C_Table, C_Form } from '@robot-admin/naive-ui-components'
51
+ import '@robot-admin/naive-ui-components/style.css'
52
+ </script>
53
+ ```
54
+
55
+ #### 子路径独立导入(推荐,最小打包体积)
56
+
57
+ 每个组件都提供独立的子路径入口,仅加载目标组件的代码和类型:
58
+
59
+ ```vue
60
+ <script setup lang="ts">
61
+ import { C_Form } from '@robot-admin/naive-ui-components/C_Form'
62
+ import { C_Table } from '@robot-admin/naive-ui-components/C_Table'
63
+ import { C_Icon } from '@robot-admin/naive-ui-components/C_Icon'
64
+ import { createMenuOptions } from '@robot-admin/naive-ui-components/C_Menu'
65
+ import '@robot-admin/naive-ui-components/style.css'
66
+ </script>
67
+ ```
68
+
69
+ > 子路径导入提供完整的 TypeScript 类型支持(`.d.ts`),IDE 可自动补全 props / emits / slots。组件相关工具函数(如 `createMenuOptions`)也从对应组件子路径导出,避免为了单个工具加载组件库根入口。
70
+
71
+ #### Composables 单独使用
72
+
73
+ ```typescript
74
+ import {
75
+ useTableManager,
76
+ useFormState,
77
+ usePlayerCore,
78
+ } from '@robot-admin/naive-ui-components'
79
+ ```
80
+
81
+ #### 自动按需导入(推荐)
82
+
83
+ Resolver 默认从组件子路径加载,避免只使用少量组件时把整个组件库及重型运行依赖带入首屏:
84
+
85
+ ```typescript
86
+ import Components from 'unplugin-vue-components/vite'
87
+ import { RobotNaiveUiResolver } from '@robot-admin/naive-ui-components/resolver'
88
+
89
+ Components({
90
+ resolvers: [RobotNaiveUiResolver({ importStyle: true })],
91
+ })
92
+ ```
93
+
94
+ `importStyle: true`(等价于 `'full'`)保持原有完整样式行为。只使用 C_Form/C_Table 基础字段、不使用内置富文本编辑器时,可设置 `importStyle: 'base'`,避免带入编辑器样式;其他组件会安全回退到标准样式入口。如需兼容旧项目的主入口导入,可显式设置 `importOnDemand: false`。
95
+
96
+ 也可以手动选择样式层级:
97
+
98
+ ```typescript
99
+ import '@robot-admin/naive-ui-components/C_Form/base.css'
100
+ import '@robot-admin/naive-ui-components/C_Table/base.css'
101
+ // 完整模式也可显式使用 C_Form/full.css、C_Table/full.css
102
+ ```
103
+
104
+ ### C_Form / C_Table 推荐用法
105
+
106
+ 推荐使用类型助手和绑定助手:业务模型只声明一次,字段路径、字段值、列 key、保存回调和实例方法即可保持同一套类型推导。字段支持 `profile.name`、`contacts.0.email` 这类嵌套路径。
107
+
108
+ ```vue
109
+ <script setup lang="ts">
110
+ import {
111
+ C_Form,
112
+ defineFormConfig,
113
+ defineFormOptions,
114
+ useCForm,
115
+ } from '@robot-admin/naive-ui-components/C_Form'
116
+
117
+ interface UserForm {
118
+ name: string
119
+ departmentId: number | null
120
+ profile: { email: string }
121
+ }
122
+
123
+ const fields = defineFormOptions<UserForm>([
124
+ {
125
+ type: 'input',
126
+ prop: 'name',
127
+ label: '名称',
128
+ required: true,
129
+ },
130
+ {
131
+ type: 'select',
132
+ prop: 'departmentId',
133
+ label: '部门',
134
+ asyncOptions: async (_model, context) =>
135
+ fetch('/api/departments', { signal: context?.signal }).then(response =>
136
+ response.json()
137
+ ),
138
+ },
139
+ { type: 'input', prop: 'profile.email', label: '邮箱' },
140
+ ])
141
+ const config = defineFormConfig<UserForm>({
142
+ mode: 'edit',
143
+ validateOnChange: true,
144
+ onSubmit: async ({ model: validatedModel }) => save(validatedModel),
145
+ onError: (error, context) => reportError(error, context),
146
+ })
147
+ const { model, formRef, bindings } = useCForm<UserForm>({
148
+ initialValues: {
149
+ name: '',
150
+ departmentId: null,
151
+ profile: { email: '' },
152
+ },
153
+ options: fields,
154
+ config,
155
+ })
156
+ </script>
157
+
158
+ <template>
159
+ <C_Form
160
+ ref="formRef"
161
+ v-bind="bindings"
162
+ />
163
+ </template>
164
+ ```
165
+
166
+ 远程表格推荐交给 `useTableQuery` 管理请求取消、竞态、分页和 loading;只需把 `bindings` 绑定给组件。`rowKey` 必须稳定且唯一,默认会检测缺失和重复键。
167
+
168
+ ```vue
169
+ <script setup lang="ts">
170
+ import {
171
+ C_Table,
172
+ defineTableColumns,
173
+ defineTableConfig,
174
+ useTableQuery,
175
+ } from '@robot-admin/naive-ui-components/C_Table'
176
+
177
+ interface UserRow {
178
+ id: string
179
+ name: string
180
+ }
181
+
182
+ const columns = defineTableColumns<UserRow>([
183
+ { key: 'name', title: '名称', editable: true },
184
+ ])
185
+ const config = defineTableConfig<UserRow>({
186
+ selection: { enabled: true },
187
+ edit: {
188
+ enabled: true,
189
+ mode: 'row',
190
+ onSave: row => saveRow(row),
191
+ onError: error => reportError(error),
192
+ },
193
+ })
194
+ const { bindings } = useTableQuery<UserRow, { keyword: string }>({
195
+ initialQuery: { keyword: '' },
196
+ columns,
197
+ config,
198
+ rowKey: 'id',
199
+ request: async ({ page, pageSize, query, signal }) => {
200
+ const response = await fetch('/api/users', {
201
+ method: 'POST',
202
+ body: JSON.stringify({ page, pageSize, ...query }),
203
+ signal,
204
+ })
205
+ return response.json() as Promise<{ data: UserRow[]; total: number }>
206
+ },
207
+ })
208
+ </script>
209
+
210
+ <template>
211
+ <C_Table v-bind="bindings" />
212
+ </template>
213
+ ```
214
+
215
+ `C_Date`、`C_Time`、`C_Menu`、`C_FormSearch` 均支持标准 `v-model`。组件可直接放在没有 `NMessageProvider` / `NDialogProvider` 的页面;如需统一提示、确认和文案,可在安装时传入 `feedback`、`locale`、`form` 与 `table.defaults`。
216
+
217
+ ### C_Captcha 服务端校验
218
+
219
+ 默认本地模式仅证明浏览器内的拼图交互已经完成,不能作为登录、支付等敏感操作的安全凭证。生产场景应传入 `verifier`,并开启 `require-server-verification`;组件会处理超时、取消和竞态,只在独立的服务端/验证码提供商确认后发出 `success`。请求中的 `token`、`timestamp` 都由客户端生成,只能用于关联和日志,服务端绝不能把它们本身当作可信证明。
220
+
221
+ ```vue
222
+ <C_Captcha
223
+ require-server-verification
224
+ :verification-timeout="8000"
225
+ :verifier="
226
+ async ({ signal }) => {
227
+ // providerProof 必须来自服务端或可信验证码提供商,不能由本地拼图结果伪造。
228
+ const providerProof = await obtainTrustedCaptchaProof({ signal })
229
+ const response = await fetch('/api/captcha/verify', {
230
+ method: 'POST',
231
+ headers: { 'content-type': 'application/json' },
232
+ body: JSON.stringify({ providerProof }),
233
+ signal,
234
+ })
235
+ return response.json() // { valid: boolean, token: 'server-issued-token' }
236
+ }
237
+ "
238
+ @verify-error="reportError"
239
+ />
240
+ ```
241
+
242
+ 开启 `require-server-verification` 后,成功响应必须包含服务端 token。该 token 应短期、一次性使用,并绑定当前会话或业务请求。`C_Login` 可通过 `captchaVerifier`、`requireCaptchaServerVerification` 和 `captchaVerificationTimeout` 透传同一安全策略,并在 `submit` 数据中通过 `captchaVerifiedBy` 标识验证来源。更多边界说明见 [SECURITY.md](./SECURITY.md)。
243
+
244
+ ### 📋 组件清单(51 个)
245
+
246
+ > 💡 所有组件均提供 **在线交互演示**,访问 [组件文档](https://www.tzagileteam.com/robot/components/preface) 可直接在页面中体验真实效果(通过 iframe 嵌入 Robot Admin 生产环境)。
247
+
248
+ #### 基础组件
249
+
250
+ | 组件 | 说明 | 外部依赖 |
251
+ | ---------------- | ---------------- | --------------------------- |
252
+ | `C_Icon` | Iconify 图标封装 | `@iconify/vue` |
253
+ | `C_Code` | 代码高亮显示 | `highlight.js` |
254
+ | `C_Barcode` | 条形码生成器 | `@chenfengyuan/vue-barcode` |
255
+ | `C_Captcha` | 拼图验证码 | `vue3-puzzle-vcode` |
256
+ | `C_Cascade` | 级联面板选择器 | - |
257
+ | `C_Guide` | 新手引导 | `driver.js` |
258
+ | `C_Progress` | 增强进度条 | - |
259
+ | `C_Steps` | 步骤条 | - |
260
+ | `C_ActionBar` | 操作按钮栏 | - |
261
+ | `C_Theme` | 主题切换器 | - |
262
+ | `C_Language` | 语言切换器 | - |
263
+ | `C_Date` | 日期选择器增强 | - |
264
+ | `C_City` | 省市区三级联动 | - |
265
+ | `C_Breadcrumb` | 面包屑导航 | - |
266
+ | `C_Menu` | 导航菜单 | - |
267
+ | `C_TagsView` | 标签页导航 | - |
268
+ | `C_GlobalSearch` | 全局搜索面板 | - |
269
+ | `C_AvatarGroup` | 头像组合展示 | - |
270
+ | `C_OrgChart` | 组织架构图 | - |
271
+ | `C_Skeleton` | 骨架屏占位组件 | - |
272
+
273
+ #### 内容 & 编辑组件
274
+
275
+ | 组件 | 说明 | 外部依赖 |
276
+ | ----------------- | ---------------------------- | ------------------------- |
277
+ | `C_Editor` | 富文本编辑器 | `@wangeditor-next/editor` |
278
+ | `C_Markdown` | Markdown 编辑器/预览 | `md-editor-v3` |
279
+ | `C_FormulaEditor` | 公式编辑器(安全表达式引擎) | 内置 |
280
+ | `C_Signature` | 电子签名 | - |
281
+ | `C_QRCode` | 二维码生成器 | `qrcode` |
282
+ | `C_ImageCropper` | 图片裁剪器 | `vue-cropper` |
283
+
284
+ #### 数据展示组件
285
+
286
+ | 组件 | 说明 | 外部依赖 |
287
+ | ---------------- | ----------------------------------------- | -------------------------- |
288
+ | `C_Table` | 高级数据表格(CRUD/行列编辑/动态行/打印) | `print-js`、`html2canvas` |
289
+ | `C_Map` | 地图组件(OSM/高德) | `leaflet` |
290
+ | `C_VtableGantt` | 甘特图 | `@visactor/vtable-gantt` |
291
+ | `C_AntV` | 图编辑器(ER/BPMN/UML) | `@antv/x6`、`html2canvas` |
292
+ | `C_WaterFall` | 瀑布流布局 | - |
293
+ | `C_FullCalendar` | 日历事件 | `@fullcalendar/*` |
294
+ | `C_VideoPlayer` | 视频播放器(HLS/字幕/书签/章节) | `xgplayer`、`xgplayer-hls` |
295
+ | `C_AudioPlayer` | 音频播放器(波形/进度/播放列表) | - |
296
+ | `C_FilePreview` | 文件预览(PDF/Word/Excel) | `xlsx`、`mammoth` |
297
+ | `C_Timeline` | 时间线(垂直/水平/可折叠) | - |
298
+
299
+ #### 表单 & 布局组件
300
+
301
+ | 组件 | 说明 | 外部依赖 |
302
+ | ----------------- | ------------------------------------------------- | -------------------- |
303
+ | `C_Form` | 动态表单引擎(Grid/Tabs/Steps/Card/Dynamic 布局) | - |
304
+ | `C_FormSearch` | 搜索表单 | - |
305
+ | `C_CollapsePanel` | 折叠面板 | - |
306
+ | `C_SplitPane` | 分割面板 | - |
307
+ | `C_Draggable` | 拖拽排序 | `vue-draggable-plus` |
308
+ | `C_Tree` | 高级树形控件 | - |
309
+ | `C_Time` | 时间选择器增强 | - |
310
+ | `C_Cron` | Cron 表达式编辑器 | - |
311
+ | `C_Transfer` | 穿梭框(搜索/全选/批量操作) | - |
312
+
313
+ #### 交互 & 业务组件
314
+
315
+ | 组件 | 说明 | 外部依赖 |
316
+ | --------------- | -------------------------------------- | -------- |
317
+ | `C_Chat` | 聊天组件(联系人/消息气泡/输入框) | - |
318
+ | `C_ContextMenu` | 右键菜单(嵌套子菜单/快捷键/危险操作) | - |
319
+ | `C_Login` | 登录组件(5种模式/验证码/记住密码) | - |
320
+
321
+ #### 流程 & 通知组件
322
+
323
+ | 组件 | 说明 | 外部依赖 |
324
+ | ---------------------- | ------------------------------------ | ---------------- |
325
+ | `C_WorkFlow` | 工作流编辑器(审批/抄送/条件节点) | `@vue-flow/core` |
326
+ | `C_NotificationCenter` | 通知中心(WebSocket/轮询) | - |
327
+ | `C_Upload` | 大文件上传(分片/断点续传/哈希校验) | `spark-md5` |
328
+
329
+ ### 🔌 依赖说明
330
+
331
+ 组件运行依赖已由本包声明,安装组件库时会自动解析。所有场景都需要:
332
+
333
+ ```bash
334
+ bun add vue naive-ui
335
+ ```
336
+
337
+ 按功能安装可选 peer:使用 `C_Breadcrumb`/`C_TagsView` 时安装 `vue-router`;启用 C_Table 行/列拖拽时安装 `sortablejs`。子路径导入不会要求无关的可选 peer。公式编辑器使用组件库内置的受限表达式解析器,不执行动态 JavaScript。
338
+
339
+ ### 🏗️ 构建架构
340
+
341
+ #### 六阶段构建流水线
342
+
343
+ ```
344
+ bun run build
345
+ ├── 1. tsdown → 多入口打包(51 组件 ESM/CJS/DTS)
346
+ ├── 2. sass CLI → 编译共享变量入口 → global-scss.css
347
+ ├── 3. merge-css.js → 合并 Vue 编译后的 SFC CSS + 全局变量 → style.css
348
+ ├── 4. gen-exports.js → 自动生成 package.json exports 映射
349
+ ├── 5. check:dist → 校验根入口、子路径、SSR 及 DTS 公共导出
350
+ └── 6. check:size → 校验全量/基础样式与发布包体积预算
351
+ ```
352
+
353
+ #### 技术要点
354
+
355
+ - **构建引擎**:[tsdown](https://github.com/rolldown/tsdown)(基于 Rolldown),51 个独立入口并行编译
356
+ - **SCSS 处理**:自定义 `scssTransformPlugin` 在 Rolldown 管线内编译 SFC SCSS,独立 Sass CLI 仅编译共享变量入口
357
+ - **CSS 合并**:构建后将 Vue 已完成 scoped 转换的 per-chunk CSS 与共享变量合并为单一 `style.css`,避免重复样式和原始 `:deep()` 选择器泄漏
358
+ - **类型导出**:统一 `export *` barrel 模式,自动生成完整 `.d.ts`
359
+ - **子路径导出**:`gen-exports.js` 自动扫描 `dist/` 并写入 `package.json` 的 `exports` 字段
360
+ - **导出冲突检测**:`check-export-conflicts.js` 确保组件间无命名冲突
361
+ - **产物入口校验**:`check-dist-entries.js` 防止内部 chunk 覆盖根声明,并保证组件工具的子路径类型完整
362
+ - **包契约校验**:禁止 Naive UI 内部类型路径、隐式可选依赖和插件控制台副作用
363
+ - **体积预算**:`check-size-budget.js` 阻止全量样式、C_Form/C_Table 样式和 dist 总量意外膨胀
364
+
365
+ #### 输出产物
366
+
367
+ ```
368
+ dist/
369
+ ├── index.js / index.cjs / index.d.ts # 主入口
370
+ ├── C_Form.js / C_Form.cjs / C_Form.d.ts # 子路径入口(51 组件)
371
+ ├── C_Form.base.css / C_Form.full.css # 基础/完整样式层级
372
+ ├── C_Table.base.css / C_Table.full.css # 基础/完整样式层级
373
+ ├── style.css # 合并后的全量样式
374
+ └── [chunk].js # 共享代码块
375
+ ```
376
+
377
+ ### 🔧 开发
378
+
379
+ 环境基线为 Node.js 20.19.0+ 与 Bun 1.3.14;仓库通过 `.node-version`、`packageManager`、`engines` 和冻结锁文件保持本地/CI 一致。
380
+
381
+ ```bash
382
+ bun install --frozen-lockfile # 严格按锁文件安装依赖
383
+ bun run dev # 开发模式(SCSS watch + tsdown watch)
384
+ bun run build # 完整构建
385
+ bun run build:scss # 仅编译全局 SCSS
386
+ bun run build:css # 合并 tsdown 刚生成的 CSS chunk;已完成的 dist 会安全跳过
387
+ bun run build:exports # 仅生成 exports 映射
388
+ bun run check:exports # 检测导出命名冲突
389
+ bun run check:dist # 校验构建后的 JS / DTS 公共入口
390
+ bun run check:package # 校验依赖、导出和源码公共边界
391
+ bun run check:quality # 防止 any、console 与类型抑制债务反弹
392
+ bun run check:audit # 审计直接与传递依赖漏洞
393
+ bun run check:size # 校验发布产物体积预算
394
+ bun run type-check # TypeScript 类型检查
395
+ bun run test # 运行 Bun 单元测试
396
+ bun run lint:check # 强制 Oxlint 正确性检查
397
+ bun run lint:eslint # ESLint 存量规则审计
398
+ bun run verify # 类型、测试、导出和构建全量验证
399
+ ```
400
+
401
+ #### 项目结构
402
+
403
+ ```
404
+ naive-ui-components/
405
+ ├── src/
406
+ │ ├── index.ts # 库入口(全量注册 + export * barrel)
407
+ │ ├── styles/
408
+ │ │ ├── variables.scss # CSS 变量 (--c-*)
409
+ │ │ └── global.scss # 自动生成的共享变量入口
410
+ │ ├── components/
411
+ │ │ └── C_[Name]/
412
+ │ │ ├── index.vue # 组件主文件
413
+ │ │ ├── index.ts # Barrel 导出
414
+ │ │ ├── index.scss # 组件样式
415
+ │ │ ├── types.ts # 类型定义
416
+ │ │ ├── constants.ts # 常量
417
+ │ │ ├── data.ts # 静态数据
418
+ │ │ ├── composables/ # 组合式函数
419
+ │ │ ├── components/ # 子组件
420
+ │ │ └── layouts/ # 布局变体(C_Form/C_AntV)
421
+ │ ├── plugins/ # highlight.js 等插件
422
+ │ └── utils/ # 工具函数
423
+ ├── scripts/
424
+ │ ├── gen-global-scss.js # 生成 global.scss(仅共享变量)
425
+ │ ├── watch-global-scss.js # 开发模式 SCSS 监听
426
+ │ ├── merge-css.js # 合并 CSS 产物
427
+ │ ├── gen-exports.js # 自动生成 package.json exports
428
+ │ └── check-export-conflicts.js # 导出命名冲突检测
429
+ ├── types/
430
+ │ └── env.d.ts # .vue / .scss 模块声明
431
+ ├── tsdown.config.ts # 构建配置(多入口 + SCSS 插件 + Vue 插件)
432
+ └── tsconfig.json
433
+ ```
434
+
435
+ #### 添加新组件
436
+
437
+ 1. 创建 `src/components/C_NewComponent/` 目录
438
+ 2. 编写 `index.vue`、`index.ts`(barrel)、`types.ts`
439
+ 3. 在 `src/index.ts` 中添加 `export * from './components/C_NewComponent'`
440
+ 4. 运行 `bun run build`—构建脚本会自动生成子路径入口和 exports 映射
441
+
442
+ #### 发布
443
+
444
+ ```bash
445
+ bun run changeset # 记录变更及版本级别
446
+ bun run version # 更新版本号与 CHANGELOG
447
+ bun run verify # 发布前完整验证
448
+ bun run release # 发布 Changesets 中待发布版本
449
+ ```
450
+
451
+ ## 📄 许可证
452
+
453
+ MIT License
454
+
455
+ ---
456
+
457
+ ## 🔗 链接
458
+
459
+ - [组件在线文档(含交互演示)](https://www.tzagileteam.com/robot/components/preface)
460
+ - [Robot Admin 主项目](https://github.com/ChenyCHENYU/robot_admin)
461
+ - [Robot Admin 在线体验](https://www.robotadmin.cn)
462
+ - [GitHub](https://github.com/ChenyCHENYU/naive-ui-components)
463
+ - [NPM](https://www.npmjs.com/package/@robot-admin/naive-ui-components)