@robot-admin/naive-ui-components 0.9.1 → 0.9.3

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 (327) hide show
  1. package/dist/C_ActionBar-BAcfOfRw.css.map +1 -0
  2. package/dist/C_ActionBar-DG2HW7t5.css.map +1 -0
  3. package/dist/C_ActionBar.css +47 -47
  4. package/dist/C_ActionBar.js.map +1 -1
  5. package/dist/C_ActionBar2.js +1 -1
  6. package/dist/C_ActionBar2.js.map +1 -1
  7. package/dist/{C_AntV-BY8jqqmi.css.map → C_AntV-D_jTK8oZ.css.map} +1 -1
  8. package/dist/{C_AntV-BbkHc-_a.css.map → C_AntV-DanTAq22.css.map} +1 -1
  9. package/dist/C_AntV.css +79 -79
  10. package/dist/C_AntV.js.map +1 -1
  11. package/dist/C_AntV2.js +3 -3
  12. package/dist/C_AntV2.js.map +1 -1
  13. package/dist/{C_AudioPlayer-DKRIGhi7.css.map → C_AudioPlayer-BnYIJXPD.css.map} +1 -1
  14. package/dist/{C_AudioPlayer-DlB6eNsa.css.map → C_AudioPlayer-ldTy9Y34.css.map} +1 -1
  15. package/dist/C_AudioPlayer.css +47 -47
  16. package/dist/C_AudioPlayer.js.map +1 -1
  17. package/dist/C_AudioPlayer2.js +1 -1
  18. package/dist/C_AudioPlayer2.js.map +1 -1
  19. package/dist/{C_AvatarGroup-D02zci-i.css.map → C_AvatarGroup-B9d-GJ9c.css.map} +1 -1
  20. package/dist/{C_AvatarGroup-DatHaUlY.css.map → C_AvatarGroup-SIzxuuZr.css.map} +1 -1
  21. package/dist/C_AvatarGroup.css +21 -21
  22. package/dist/C_AvatarGroup.js.map +1 -1
  23. package/dist/C_AvatarGroup2.js +1 -1
  24. package/dist/C_AvatarGroup2.js.map +1 -1
  25. package/dist/{C_Barcode-DYDRDe2O.css.map → C_Barcode-CAU2mFcx.css.map} +1 -1
  26. package/dist/{C_Barcode-muJdc_O4.css.map → C_Barcode-D2oJaEg3.css.map} +1 -1
  27. package/dist/C_Barcode.css +7 -7
  28. package/dist/C_Barcode.js.map +1 -1
  29. package/dist/C_Barcode2.js +1 -1
  30. package/dist/C_Barcode2.js.map +1 -1
  31. package/dist/C_Breadcrumb.js.map +1 -1
  32. package/dist/C_Breadcrumb2.js +1 -1
  33. package/dist/C_Breadcrumb2.js.map +1 -1
  34. package/dist/{C_Captcha-9_hk6VmY.css.map → C_Captcha-B3yrtG7t.css.map} +1 -1
  35. package/dist/{C_Captcha-MtASlJ0f.css.map → C_Captcha-D4hDdWDu.css.map} +1 -1
  36. package/dist/C_Captcha.css +19 -19
  37. package/dist/C_Captcha.js.map +1 -1
  38. package/dist/C_Captcha2.js +1 -1
  39. package/dist/C_Captcha2.js.map +1 -1
  40. package/dist/C_Cascade-BE7t1OX5.css.map +1 -0
  41. package/dist/C_Cascade-CpDiau1y.css.map +1 -0
  42. package/dist/C_Cascade.css +3 -3
  43. package/dist/C_Cascade.js.map +1 -1
  44. package/dist/C_Cascade2.js +1 -1
  45. package/dist/C_Cascade2.js.map +1 -1
  46. package/dist/{C_Chat-Csjz_BFw.css.map → C_Chat-CF1SU7mc.css.map} +1 -1
  47. package/dist/{C_Chat-DO1ZBA_0.css.map → C_Chat-DeUv6uuI.css.map} +1 -1
  48. package/dist/C_Chat.css +65 -65
  49. package/dist/C_Chat.js.map +1 -1
  50. package/dist/C_Chat2.js +1 -1
  51. package/dist/C_Chat2.js.map +1 -1
  52. package/dist/{C_City-Bam08Qv3.css.map → C_City-DdkX6u64.css.map} +1 -1
  53. package/dist/{C_City-Bb3W-KaN.css.map → C_City-iP-dIvui.css.map} +1 -1
  54. package/dist/C_City.css +29 -29
  55. package/dist/C_City.js.map +1 -1
  56. package/dist/C_City2.js +1 -1
  57. package/dist/C_City2.js.map +1 -1
  58. package/dist/C_Code-BWmJMNS7.css.map +1 -0
  59. package/dist/C_Code-k14vjgVl.css.map +1 -0
  60. package/dist/C_Code.css +3 -3
  61. package/dist/C_Code.js.map +1 -1
  62. package/dist/C_Code2.js +1 -1
  63. package/dist/C_Code2.js.map +1 -1
  64. package/dist/{C_CollapsePanel-CWkFCqNQ.css.map → C_CollapsePanel-BSKcWSmY.css.map} +1 -1
  65. package/dist/{C_CollapsePanel-pcVJA_4z.css.map → C_CollapsePanel-DRvRq8tB.css.map} +1 -1
  66. package/dist/C_CollapsePanel.css +35 -35
  67. package/dist/C_CollapsePanel.js.map +1 -1
  68. package/dist/C_CollapsePanel2.js +1 -1
  69. package/dist/C_CollapsePanel2.js.map +1 -1
  70. package/dist/{C_ContextMenu-B3Cgz_wJ.css.map → C_ContextMenu-Bn_uhJSo.css.map} +1 -1
  71. package/dist/{C_ContextMenu-u1LixF3_.css.map → C_ContextMenu-C9iuxG2n.css.map} +1 -1
  72. package/dist/C_ContextMenu.css +17 -17
  73. package/dist/C_ContextMenu.js.map +1 -1
  74. package/dist/C_ContextMenu2.js +1 -1
  75. package/dist/C_ContextMenu2.js.map +1 -1
  76. package/dist/{C_Cron-Civir5-I.css.map → C_Cron-BIQ2By9v.css.map} +1 -1
  77. package/dist/{C_Cron-iw3qpMsy.css.map → C_Cron-BNSAGD6A.css.map} +1 -1
  78. package/dist/C_Cron.css +57 -57
  79. package/dist/C_Cron.js.map +1 -1
  80. package/dist/C_Cron2.js +1 -1
  81. package/dist/C_Cron2.js.map +1 -1
  82. package/dist/C_Date.js.map +1 -1
  83. package/dist/C_Date2.js +1 -1
  84. package/dist/C_Date2.js.map +1 -1
  85. package/dist/{C_Draggable-BCjIvIwT.css.map → C_Draggable-BDAbk4s5.css.map} +1 -1
  86. package/dist/{C_Draggable-DwkSlCOS.css.map → C_Draggable-UhfDLXop.css.map} +1 -1
  87. package/dist/C_Draggable.css +46 -46
  88. package/dist/C_Draggable.js.map +1 -1
  89. package/dist/C_Draggable2.js +1 -1
  90. package/dist/C_Draggable2.js.map +1 -1
  91. package/dist/{C_Editor-BfjjYQ9B.css.map → C_Editor-CZOaChru.css.map} +1 -1
  92. package/dist/{C_Editor-Do2StvoJ.css.map → C_Editor-kJAQq5z6.css.map} +1 -1
  93. package/dist/C_Editor.css +14 -14
  94. package/dist/C_Editor.js.map +1 -1
  95. package/dist/C_Editor2.js +1 -1
  96. package/dist/C_Editor2.js.map +1 -1
  97. package/dist/{C_FilePreview-BhcbiXsV.css.map → C_FilePreview-Bs_omgJS.css.map} +1 -1
  98. package/dist/{C_FilePreview-DJudcIbW.css.map → C_FilePreview-DbwoyF2j.css.map} +1 -1
  99. package/dist/C_FilePreview.css +91 -91
  100. package/dist/C_FilePreview.js.map +1 -1
  101. package/dist/C_FilePreview2.js +1 -1
  102. package/dist/C_FilePreview2.js.map +1 -1
  103. package/dist/{C_Form-BtcAPIRi.css.map → C_Form-SCq-DZaZ.css.map} +1 -1
  104. package/dist/{C_Form-D_gwQ7hC.css.map → C_Form-mcd1nKvF.css.map} +1 -1
  105. package/dist/C_Form.css +223 -223
  106. package/dist/C_Form.js.map +1 -1
  107. package/dist/C_Form2.js +1 -1
  108. package/dist/C_Form2.js.map +1 -1
  109. package/dist/{C_FormSearch-Bi4XYjjk.css.map → C_FormSearch-C3F8peAY.css.map} +1 -1
  110. package/dist/{C_FormSearch-DUGOoX0u.css.map → C_FormSearch-qW56bJPo.css.map} +1 -1
  111. package/dist/C_FormSearch.css +45 -45
  112. package/dist/C_FormSearch.js.map +1 -1
  113. package/dist/C_FormSearch2.js +1 -1
  114. package/dist/C_FormSearch2.js.map +1 -1
  115. package/dist/{C_FormulaEditor-CJk3SSUJ.css.map → C_FormulaEditor-ChOvDbsZ.css.map} +1 -1
  116. package/dist/{C_FormulaEditor-Cy7mjfVO.css.map → C_FormulaEditor-mfiIUDY4.css.map} +1 -1
  117. package/dist/C_FormulaEditor.css +78 -78
  118. package/dist/C_FormulaEditor.js.map +1 -1
  119. package/dist/C_FormulaEditor2.js +1 -1
  120. package/dist/C_FormulaEditor2.js.map +1 -1
  121. package/dist/C_FullCalendar-C2nsqrgS.css.map +1 -0
  122. package/dist/C_FullCalendar-DdFtXVhy.css.map +1 -0
  123. package/dist/C_FullCalendar.css +2 -2
  124. package/dist/C_FullCalendar.js.map +1 -1
  125. package/dist/C_FullCalendar2.js +1 -1
  126. package/dist/C_FullCalendar2.js.map +1 -1
  127. package/dist/{C_GlobalSearch-B6wK3m3k.css.map → C_GlobalSearch-Dq4Wo01K.css.map} +1 -1
  128. package/dist/{C_GlobalSearch-DoPjldFm.css.map → C_GlobalSearch-RB7J43gu.css.map} +1 -1
  129. package/dist/C_GlobalSearch.css +112 -112
  130. package/dist/C_GlobalSearch.js.map +1 -1
  131. package/dist/C_GlobalSearch2.js +1 -1
  132. package/dist/C_GlobalSearch2.js.map +1 -1
  133. package/dist/C_Guide.js.map +1 -1
  134. package/dist/C_Guide2.js +1 -1
  135. package/dist/C_Guide2.js.map +1 -1
  136. package/dist/C_Icon.js.map +1 -1
  137. package/dist/C_Icon2.js.map +1 -1
  138. package/dist/{C_ImageCropper-BqZpkZfU.css.map → C_ImageCropper-CdTX2nxU.css.map} +1 -1
  139. package/dist/{C_ImageCropper-CylwGuzS.css.map → C_ImageCropper-ilOqPklJ.css.map} +1 -1
  140. package/dist/C_ImageCropper.css +23 -23
  141. package/dist/C_ImageCropper.js.map +1 -1
  142. package/dist/C_ImageCropper2.js +1 -1
  143. package/dist/C_ImageCropper2.js.map +1 -1
  144. package/dist/C_Language.js.map +1 -1
  145. package/dist/C_Language2.js +1 -1
  146. package/dist/C_Language2.js.map +1 -1
  147. package/dist/{C_Login-BkdnkBKX.css.map → C_Login-B3qYkLrN.css.map} +1 -1
  148. package/dist/{C_Login-VkMM6OJ2.css.map → C_Login-xMI1_ojE.css.map} +1 -1
  149. package/dist/C_Login.css +72 -72
  150. package/dist/C_Login.js.map +1 -1
  151. package/dist/C_Login2.js +1 -1
  152. package/dist/C_Login2.js.map +1 -1
  153. package/dist/{C_Map-DNnBcY70.css.map → C_Map-CWMMN58_.css.map} +1 -1
  154. package/dist/{C_Map-LEXIx6zM.css.map → C_Map-xSR2H-9o.css.map} +1 -1
  155. package/dist/C_Map.css +4 -4
  156. package/dist/C_Map.js.map +1 -1
  157. package/dist/C_Map2.js +1 -1
  158. package/dist/C_Map2.js.map +1 -1
  159. package/dist/{C_Markdown-DwmI0_0Q.css.map → C_Markdown-C7lTVJ1S.css.map} +1 -1
  160. package/dist/{C_Markdown-k0794RW0.css.map → C_Markdown-CZDm_baQ.css.map} +1 -1
  161. package/dist/C_Markdown.css +33 -33
  162. package/dist/C_Markdown.js.map +1 -1
  163. package/dist/C_Markdown2.js +1 -1
  164. package/dist/C_Markdown2.js.map +1 -1
  165. package/dist/C_Menu.js.map +1 -1
  166. package/dist/C_Menu2.js +1 -1
  167. package/dist/C_Menu2.js.map +1 -1
  168. package/dist/{C_NotificationCenter-DT6fQ79O.css.map → C_NotificationCenter-D7GGGWg7.css.map} +1 -1
  169. package/dist/{C_NotificationCenter-DbgBiyqB.css.map → C_NotificationCenter-SSmeHA45.css.map} +1 -1
  170. package/dist/C_NotificationCenter.css +89 -89
  171. package/dist/C_NotificationCenter.js.map +1 -1
  172. package/dist/C_NotificationCenter2.js +1 -1
  173. package/dist/C_NotificationCenter2.js.map +1 -1
  174. package/dist/C_OrgChart.js.map +1 -1
  175. package/dist/C_OrgChart2.js.map +1 -1
  176. package/dist/C_Progress.js.map +1 -1
  177. package/dist/C_Progress2.js +1 -1
  178. package/dist/C_Progress2.js.map +1 -1
  179. package/dist/{C_QRCode-CFNTda_1.css.map → C_QRCode-B_1lHUdx.css.map} +1 -1
  180. package/dist/{C_QRCode-CmWr9lK-.css.map → C_QRCode-CuQRYu0s.css.map} +1 -1
  181. package/dist/C_QRCode.css +9 -9
  182. package/dist/C_QRCode.js.map +1 -1
  183. package/dist/C_QRCode2.js +1 -1
  184. package/dist/C_QRCode2.js.map +1 -1
  185. package/dist/{C_Signature-BDx4ctsE.css.map → C_Signature-Bp-RBpAl.css.map} +1 -1
  186. package/dist/{C_Signature-Bz_uNbwv.css.map → C_Signature-Cb2VW1ok.css.map} +1 -1
  187. package/dist/C_Signature.css +15 -15
  188. package/dist/C_Signature.js.map +1 -1
  189. package/dist/C_Signature2.js +1 -1
  190. package/dist/C_Signature2.js.map +1 -1
  191. package/dist/C_Skeleton.js.map +1 -1
  192. package/dist/C_Skeleton2.js.map +1 -1
  193. package/dist/{C_SplitPane-BOwr1C7K.css.map → C_SplitPane-CgGWYsRE.css.map} +1 -1
  194. package/dist/{C_SplitPane-N-a_D-7F.css.map → C_SplitPane-DGf6WEeR.css.map} +1 -1
  195. package/dist/C_SplitPane.css +31 -31
  196. package/dist/C_SplitPane.js.map +1 -1
  197. package/dist/C_SplitPane2.js +1 -1
  198. package/dist/C_SplitPane2.js.map +1 -1
  199. package/dist/C_Steps-Buyg7Axn.css.map +1 -0
  200. package/dist/C_Steps-DNY91VbQ.css.map +1 -0
  201. package/dist/C_Steps.css +38 -38
  202. package/dist/C_Steps.js.map +1 -1
  203. package/dist/C_Steps2.js +1 -1
  204. package/dist/C_Steps2.js.map +1 -1
  205. package/dist/{C_Table-BcM5LqAM.css.map → C_Table--kbQaaBv.css.map} +1 -1
  206. package/dist/{C_Table-HATVoq1F.css.map → C_Table-D631kdXC.css.map} +1 -1
  207. package/dist/C_Table.css +104 -104
  208. package/dist/C_Table.js.map +1 -1
  209. package/dist/C_Table2.js +2 -2
  210. package/dist/C_Table2.js.map +1 -1
  211. package/dist/{C_TagsView-DX3LecK1.css.map → C_TagsView-COjGNM9h.css.map} +1 -1
  212. package/dist/{C_TagsView-DqOTa8bL.css.map → C_TagsView-zUDj9S06.css.map} +1 -1
  213. package/dist/C_TagsView.css +36 -36
  214. package/dist/C_TagsView.js.map +1 -1
  215. package/dist/C_TagsView2.js +1 -1
  216. package/dist/C_TagsView2.js.map +1 -1
  217. package/dist/C_Theme.js.map +1 -1
  218. package/dist/C_Theme2.js +1 -1
  219. package/dist/C_Theme2.js.map +1 -1
  220. package/dist/C_Time-BQ9PGy8B.css.map +1 -0
  221. package/dist/C_Time-CO73krC6.css.map +1 -0
  222. package/dist/C_Time.css +5 -5
  223. package/dist/C_Time.js.map +1 -1
  224. package/dist/C_Time2.js +1 -1
  225. package/dist/C_Time2.js.map +1 -1
  226. package/dist/{C_Timeline-BKkimrZx.css.map → C_Timeline-4rk0Dzgn.css.map} +1 -1
  227. package/dist/{C_Timeline-DTuSCX6p.css.map → C_Timeline-DdESmqwL.css.map} +1 -1
  228. package/dist/C_Timeline.css +45 -45
  229. package/dist/C_Timeline.js.map +1 -1
  230. package/dist/C_Timeline2.js +1 -1
  231. package/dist/C_Timeline2.js.map +1 -1
  232. package/dist/{C_Transfer-BOB6OBqS.css.map → C_Transfer-B-vjvhjI.css.map} +1 -1
  233. package/dist/{C_Transfer-Dpq7ezWC.css.map → C_Transfer-EzdHzZNv.css.map} +1 -1
  234. package/dist/C_Transfer.css +31 -31
  235. package/dist/C_Transfer.js.map +1 -1
  236. package/dist/C_Transfer2.js +1 -1
  237. package/dist/C_Transfer2.js.map +1 -1
  238. package/dist/{C_Tree-D98nX9qT.css.map → C_Tree-CsXgGfhn.css.map} +1 -1
  239. package/dist/{C_Tree-ulfm7b-P.css.map → C_Tree-P7eRpnOa.css.map} +1 -1
  240. package/dist/C_Tree.css +33 -33
  241. package/dist/C_Tree.js.map +1 -1
  242. package/dist/C_Tree2.js +1 -1
  243. package/dist/C_Tree2.js.map +1 -1
  244. package/dist/{C_Upload-BR9fg5r4.css.map → C_Upload-CHjiVVh7.css.map} +1 -1
  245. package/dist/{C_Upload-CPqf74Ea.css.map → C_Upload-DE3OLsZD.css.map} +1 -1
  246. package/dist/C_Upload.css +50 -50
  247. package/dist/C_Upload.js.map +1 -1
  248. package/dist/C_Upload2.js +2 -2
  249. package/dist/C_Upload2.js.map +1 -1
  250. package/dist/{C_VideoPlayer-4J96tKfK.css.map → C_VideoPlayer-CnaNOFtW.css.map} +1 -1
  251. package/dist/{C_VideoPlayer-D35seHkm.css.map → C_VideoPlayer-cnP88zNV.css.map} +1 -1
  252. package/dist/C_VideoPlayer.css +68 -68
  253. package/dist/C_VideoPlayer.js.map +1 -1
  254. package/dist/C_VideoPlayer2.js +3 -3
  255. package/dist/C_VideoPlayer2.js.map +1 -1
  256. package/dist/{C_VtableGantt-C2lxFmWg.css.map → C_VtableGantt-CZlJgvpC.css.map} +1 -1
  257. package/dist/{C_VtableGantt-Dwnkw_WL.css.map → C_VtableGantt-DKfQkql0.css.map} +1 -1
  258. package/dist/C_VtableGantt.css +15 -15
  259. package/dist/C_VtableGantt.js.map +1 -1
  260. package/dist/C_VtableGantt2.js +1 -1
  261. package/dist/C_VtableGantt2.js.map +1 -1
  262. package/dist/{C_WaterFall-C4HDqf-a.css.map → C_WaterFall-BJ_39ext.css.map} +1 -1
  263. package/dist/{C_WaterFall-HWB-gPON.css.map → C_WaterFall-cYc1vntE.css.map} +1 -1
  264. package/dist/C_WaterFall.css +16 -16
  265. package/dist/C_WaterFall.js.map +1 -1
  266. package/dist/C_WaterFall2.js +1 -1
  267. package/dist/C_WaterFall2.js.map +1 -1
  268. package/dist/{C_WorkFlow-2hJfvvTK.css.map → C_WorkFlow-BFzRGGhJ.css.map} +1 -1
  269. package/dist/{C_WorkFlow-DHoNjl8-.css.map → C_WorkFlow-DSyCOvRp.css.map} +1 -1
  270. package/dist/C_WorkFlow.css +193 -193
  271. package/dist/C_WorkFlow.js.map +1 -1
  272. package/dist/C_WorkFlow2.js +1 -1
  273. package/dist/C_WorkFlow2.js.map +1 -1
  274. package/dist/constants.d.ts +1 -1
  275. package/dist/constants2.d.ts +2 -2
  276. package/dist/constants3.d.ts +1 -1
  277. package/dist/constants4.d.ts +1 -1
  278. package/dist/constants5.d.ts +2 -2
  279. package/dist/data.d.ts +1 -1
  280. package/dist/index.vue.d.ts +2 -2
  281. package/dist/index11.vue.d.ts +2 -2
  282. package/dist/index12.vue.d.ts +1 -1
  283. package/dist/index13.vue.d.ts +2 -2
  284. package/dist/index14.vue.d.ts +3 -3
  285. package/dist/index15.vue.d.ts +6 -6
  286. package/dist/index17.vue.d.ts +1 -1
  287. package/dist/index18.vue.d.ts +2 -2
  288. package/dist/index2.vue.d.ts +6 -6
  289. package/dist/index20.vue.d.ts +1 -1
  290. package/dist/index21.vue.d.ts +2 -2
  291. package/dist/index22.vue.d.ts +2 -2
  292. package/dist/index24.vue.d.ts +1 -1
  293. package/dist/index26.vue.d.ts +3 -3
  294. package/dist/index27.vue.d.ts +1 -1
  295. package/dist/index28.vue.d.ts +2 -2
  296. package/dist/index3.vue.d.ts +2 -2
  297. package/dist/index4.vue.d.ts +2 -2
  298. package/dist/index6.vue.d.ts +3 -3
  299. package/dist/style.css +1991 -1991
  300. package/dist/useCalendarEvents.d.ts +1 -1
  301. package/dist/useCollapsePanel.d.ts +3 -3
  302. package/dist/useCropperCore.d.ts +4 -4
  303. package/dist/useDraggableLayout.d.ts +2 -2
  304. package/dist/useDynamicFormState.d.ts +13 -13
  305. package/dist/useEdgeInteraction.d.ts +1 -1
  306. package/dist/useInfiniteScroll.d.ts +3 -3
  307. package/dist/useModalEdit.d.ts +3 -3
  308. package/dist/useQRCode.d.ts +3 -3
  309. package/dist/useSignatureHistory.d.ts +1 -1
  310. package/dist/useSplitResize.d.ts +5 -5
  311. package/dist/useTimeSelection.d.ts +2 -2
  312. package/dist/useTreeOperations.d.ts +4 -4
  313. package/dist/useWorkflowValidation.d.ts +4 -4
  314. package/package.json +4 -7
  315. package/dist/C_ActionBar-DYG0Yf3A.css.map +0 -1
  316. package/dist/C_ActionBar-MAjRhqcI.css.map +0 -1
  317. package/dist/C_Cascade-Dq0S5Jkm.css.map +0 -1
  318. package/dist/C_Cascade-IUUHIh7r.css.map +0 -1
  319. package/dist/C_Code-BFi5xxnM.css.map +0 -1
  320. package/dist/C_Code-CZ7yfnri.css.map +0 -1
  321. package/dist/C_FullCalendar-BQA0OjGB.css.map +0 -1
  322. package/dist/C_FullCalendar-ChJUosAi.css.map +0 -1
  323. package/dist/C_Steps-Bk1krgiR.css.map +0 -1
  324. package/dist/C_Steps-Dn2CMpy1.css.map +0 -1
  325. package/dist/C_Time-BzyQVvTS.css.map +0 -1
  326. package/dist/C_Time-DmpKLQHc.css.map +0 -1
  327. package/dist/themes/glass-morphism.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"C_Tree2.js","names":["C_Icon"],"sources":["../src/components/C_Tree/data.ts","../src/components/C_Tree/composables/useTreeOperations.ts","../src/components/C_Tree/index.vue"],"sourcesContent":["import type { TreeMode, TreeProps } from \"./types\";\r\n\r\nexport const presetConfigs: Record<TreeMode, Partial<TreeProps>> = {\r\n menu: {\r\n draggable: true,\r\n showLine: true,\r\n iconConfig: {\r\n typeMap: {\r\n directory: \"mdi:folder\",\r\n menu: \"mdi:file-document\",\r\n button: \"mdi:button-cursor\",\r\n },\r\n },\r\n actions: [\r\n { key: \"add\", text: \"新增子菜单\", icon: \"mdi:plus\", type: \"primary\" },\r\n { key: \"edit\", text: \"编辑\", icon: \"mdi:pencil\", type: \"info\" },\r\n {\r\n key: \"delete\",\r\n text: \"删除\",\r\n icon: \"mdi:delete\",\r\n type: \"error\",\r\n confirm: \"确认删除该菜单吗?\",\r\n },\r\n ],\r\n },\r\n file: {\r\n draggable: false,\r\n showLine: false,\r\n iconConfig: {\r\n typeMap: {\r\n folder: \"mdi:folder\",\r\n file: \"mdi:file-document\",\r\n image: \"mdi:file-image\",\r\n video: \"mdi:file-video\",\r\n audio: \"mdi:file-music\",\r\n },\r\n },\r\n actions: [\r\n { key: \"open\", text: \"打开\", icon: \"mdi:folder-open\", type: \"primary\" },\r\n { key: \"rename\", text: \"重命名\", icon: \"mdi:rename-box\", type: \"info\" },\r\n {\r\n key: \"delete\",\r\n text: \"删除\",\r\n icon: \"mdi:delete\",\r\n type: \"error\",\r\n confirm: \"确认删除该文件吗?\",\r\n },\r\n ],\r\n },\r\n org: {\r\n draggable: false,\r\n showLine: true,\r\n iconConfig: {\r\n typeMap: {\r\n department: \"mdi:domain\",\r\n user: \"mdi:account\",\r\n manager: \"mdi:account-tie\",\r\n },\r\n },\r\n actions: [\r\n { key: \"add\", text: \"新增下级\", icon: \"mdi:plus\", type: \"primary\" },\r\n { key: \"edit\", text: \"编辑\", icon: \"mdi:pencil\", type: \"info\" },\r\n ],\r\n },\r\n custom: {},\r\n};\r\n","import { ref, computed, h } from \"vue\";\r\nimport { NTag, NButton, NPopconfirm, NSpace } from \"naive-ui\";\r\nimport C_Icon from \"../../C_Icon/index.vue\";\r\nimport { presetConfigs } from \"../data\";\r\nimport type {\r\n TreeOption,\r\n TreeNodeData,\r\n TreeProps,\r\n TreeExpose,\r\n DropInfo,\r\n} from \"../types\";\r\n\r\ntype EmitFn = {\r\n (\r\n event: \"node-select\",\r\n node: TreeNodeData | null,\r\n selectedKeys: (string | number)[],\r\n ): void;\r\n (event: \"node-action\", action: string, node: TreeNodeData): void;\r\n (event: \"node-drop\", info: DropInfo): void;\r\n (event: \"add\", parentNode?: TreeNodeData): void;\r\n (event: \"refresh\"): void;\r\n};\r\n\r\nexport function useTreeOperations(props: TreeProps, emit: EmitFn) {\r\n const internalSearchPattern = ref(\"\");\r\n const expandedKeys = ref<(string | number)[]>(\r\n props.defaultExpandedKeys ?? [],\r\n );\r\n const selectedKeys = ref<(string | number)[]>(\r\n props.defaultSelectedKeys ?? [],\r\n );\r\n const isAllExpanded = ref(props.defaultExpandAll ?? false);\r\n\r\n const keyField = computed(() => props.keyField ?? \"id\");\r\n const labelField = computed(() => props.labelField ?? \"name\");\r\n const childrenField = computed(() => props.childrenField ?? \"children\");\r\n const iconField = computed(() => props.iconField ?? \"icon\");\r\n\r\n const mergedConfig = computed(() => {\r\n const preset = presetConfigs[props.mode ?? \"custom\"] || {};\r\n return {\r\n ...preset,\r\n ...props,\r\n iconConfig: { ...preset.iconConfig, ...props.iconConfig },\r\n actions: props.actions?.length ? props.actions : preset.actions || [],\r\n };\r\n });\r\n\r\n const treeData = computed((): TreeOption[] => props.data as TreeOption[]);\r\n\r\n const currentSearchPattern = computed(\r\n () => props.searchPattern || internalSearchPattern.value,\r\n );\r\n\r\n const selectedNode = computed((): TreeNodeData | null => {\r\n if (selectedKeys.value.length === 0) return null;\r\n const findNode = (\r\n nodes: TreeNodeData[],\r\n id: string | number,\r\n ): TreeNodeData | null => {\r\n for (const node of nodes) {\r\n if (node[keyField.value] === id) return node;\r\n if (node[childrenField.value]) {\r\n const found = findNode(node[childrenField.value], id);\r\n if (found) return found;\r\n }\r\n }\r\n return null;\r\n };\r\n return findNode(props.data, selectedKeys.value[0]);\r\n });\r\n\r\n const getAllKeys = (nodes: TreeNodeData[]): (string | number)[] => {\r\n const keys: (string | number)[] = [];\r\n nodes.forEach((node) => {\r\n keys.push(node[keyField.value]);\r\n if (node[childrenField.value]) {\r\n keys.push(...getAllKeys(node[childrenField.value]));\r\n }\r\n });\r\n return keys;\r\n };\r\n\r\n const getNodeIcon = (node: TreeNodeData): string => {\r\n const config = mergedConfig.value.iconConfig!;\r\n if (node[iconField.value]) return node[iconField.value];\r\n if (node.type && config.typeMap?.[node.type])\r\n return config.typeMap[node.type];\r\n return config.default || \"mdi:circle-outline\";\r\n };\r\n\r\n const getNodeIconColor = (node: TreeNodeData): string => {\r\n const config = mergedConfig.value.iconConfig!;\r\n if (node.type && config.colorMap?.[node.type])\r\n return config.colorMap[node.type];\r\n return \"currentColor\";\r\n };\r\n\r\n const renderPrefix = ({ option }: { option: TreeOption }) => {\r\n const node = option as TreeNodeData;\r\n return h(C_Icon, {\r\n name: getNodeIcon(node),\r\n size: 18,\r\n color: getNodeIconColor(node),\r\n class: \"mr-3 flex-shrink-0\",\r\n });\r\n };\r\n\r\n const renderLabel = ({ option }: { option: TreeOption }) => {\r\n const node = option as TreeNodeData;\r\n const statusTags =\r\n props.statusConfigs\r\n ?.map((config) => {\r\n const value = node[config.field];\r\n const statusConfig = config.values[value];\r\n if (!statusConfig?.text) return null;\r\n return h(\r\n NTag,\r\n {\r\n type: statusConfig.type,\r\n size: \"small\",\r\n class: \"ml-2\",\r\n style: { fontSize: \"12px\" },\r\n },\r\n { default: () => statusConfig.text },\r\n );\r\n })\r\n .filter(Boolean) || [];\r\n\r\n return h(\r\n \"div\",\r\n {\r\n class: \"flex items-center flex-1 min-w-0 py-1\",\r\n style: { lineHeight: \"1.5\" },\r\n },\r\n [\r\n h(\r\n \"span\",\r\n { class: \"mr-3 font-medium text-sm\" },\r\n node[labelField.value],\r\n ),\r\n ...statusTags,\r\n ],\r\n );\r\n };\r\n\r\n const renderSuffix = ({ option }: { option: TreeOption }) => {\r\n const node = option as TreeNodeData;\r\n const actions = mergedConfig.value.actions || [];\r\n\r\n const actionButtons = actions\r\n .filter((action) => !action.show || action.show(node))\r\n .map((action) => {\r\n const buttonProps = {\r\n size: \"tiny\" as const,\r\n type: action.type || (\"default\" as const),\r\n secondary: true,\r\n style: { padding: \"4px 6px\", minWidth: \"24px\", height: \"24px\" },\r\n onClick: (e: Event) => {\r\n e.stopPropagation();\r\n handleNodeAction(action.key, node);\r\n },\r\n };\r\n const iconEl = h(C_Icon, {\r\n name: action.icon,\r\n size: 12,\r\n title: action.text,\r\n });\r\n\r\n if (action.confirm) {\r\n return h(\r\n NPopconfirm,\r\n { onPositiveClick: () => handleNodeAction(action.key, node) },\r\n {\r\n trigger: () =>\r\n h(\r\n NButton,\r\n {\r\n ...buttonProps,\r\n onClick: (e: Event) => e.stopPropagation(),\r\n },\r\n { icon: () => iconEl },\r\n ),\r\n default: () => action.confirm,\r\n },\r\n );\r\n }\r\n return h(NButton, buttonProps, { icon: () => iconEl });\r\n });\r\n\r\n return h(\r\n \"div\",\r\n {\r\n class: \"tree-actions\",\r\n style: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n marginLeft: \"8px\",\r\n opacity: \"0\",\r\n transition: \"opacity 0.2s ease\",\r\n },\r\n },\r\n [h(NSpace, { size: 4 }, { default: () => actionButtons })],\r\n );\r\n };\r\n\r\n const toggleExpandAll = (): void => {\r\n if (isAllExpanded.value) {\r\n expandedKeys.value = [];\r\n isAllExpanded.value = false;\r\n } else {\r\n expandedKeys.value = getAllKeys(props.data);\r\n isAllExpanded.value = true;\r\n }\r\n };\r\n\r\n const handleExpandedKeysChange = (keys: (string | number)[]): void => {\r\n expandedKeys.value = keys;\r\n isAllExpanded.value = keys.length === getAllKeys(props.data).length;\r\n };\r\n\r\n const handleSelectedKeysChange = (keys: (string | number)[]): void => {\r\n selectedKeys.value = keys;\r\n emit(\"node-select\", selectedNode.value, keys);\r\n };\r\n\r\n const handleDrop = (info: DropInfo): void => emit(\"node-drop\", info);\r\n\r\n const handleNodeAction = (action: string, node: TreeNodeData): void => {\r\n if (action === \"add\") {\r\n emit(\"add\", node);\r\n } else {\r\n emit(\"node-action\", action, node);\r\n }\r\n };\r\n\r\n const handleAdd = (): void => emit(\"add\");\r\n const handleRefresh = (): void => emit(\"refresh\");\r\n\r\n const expose: TreeExpose = {\r\n expandAll: () => {\r\n expandedKeys.value = getAllKeys(props.data);\r\n isAllExpanded.value = true;\r\n },\r\n collapseAll: () => {\r\n expandedKeys.value = [];\r\n isAllExpanded.value = false;\r\n },\r\n selectNode: (key: string | number) => {\r\n selectedKeys.value = [key];\r\n },\r\n getSelectedNode: () => selectedNode.value,\r\n expandedKeys,\r\n selectedKeys,\r\n };\r\n\r\n return {\r\n internalSearchPattern,\r\n expandedKeys,\r\n selectedKeys,\r\n isAllExpanded,\r\n treeData,\r\n currentSearchPattern,\r\n renderPrefix,\r\n renderLabel,\r\n renderSuffix,\r\n toggleExpandAll,\r\n handleExpandedKeysChange,\r\n handleSelectedKeysChange,\r\n handleDrop,\r\n handleAdd,\r\n handleRefresh,\r\n expose,\r\n };\r\n}\r\n","<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2025-06-27\n * @Description: 树型组件 — 薄 UI 壳,逻辑由 useTreeOperations 驱动\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-tree\">\n <div v-if=\"showToolbar\" class=\"c-tree-toolbar\">\n <div class=\"toolbar-left\">\n <NInput\n v-if=\"searchable\"\n v-model:value=\"internalSearchPattern\"\n :placeholder=\"searchPlaceholder\"\n clearable\n class=\"search-input\"\n >\n <template #prefix>\n <C_Icon name=\"mdi:magnify\" :size=\"16\" />\n </template>\n </NInput>\n </div>\n <div class=\"toolbar-right\">\n <slot name=\"toolbar-actions\">\n <NButton v-if=\"addable\" type=\"primary\" @click=\"handleAdd()\">\n <template #icon>\n <C_Icon name=\"mdi:plus\" :size=\"16\" />\n </template>\n {{ addText }}\n </NButton>\n <NButton @click=\"toggleExpandAll\">\n <template #icon>\n <C_Icon name=\"mdi:file-tree\" :size=\"16\" />\n </template>\n {{ isAllExpanded ? \"收起全部\" : \"展开全部\" }}\n </NButton>\n <NButton v-if=\"refreshable\" @click=\"handleRefresh\">\n <template #icon>\n <C_Icon name=\"mdi:refresh\" :size=\"16\" />\n </template>\n 刷新\n </NButton>\n </slot>\n </div>\n </div>\n\n <div class=\"c-tree-container\">\n <NTree\n :data=\"treeData\"\n :pattern=\"currentSearchPattern\"\n :expanded-keys=\"expandedKeys\"\n :selected-keys=\"selectedKeys\"\n :draggable=\"draggable\"\n :show-line=\"showLine\"\n :render-prefix=\"renderPrefix\"\n :render-suffix=\"renderSuffix\"\n :render-label=\"renderLabel\"\n :key-field=\"keyField\"\n :label-field=\"labelField\"\n :children-field=\"childrenField\"\n @update:expanded-keys=\"handleExpandedKeysChange\"\n @update:selected-keys=\"handleSelectedKeysChange\"\n @drop=\"handleDrop\"\n class=\"tree-instance\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { NInput, NButton, NTree } from \"naive-ui\";\nimport C_Icon from \"../C_Icon/index.vue\";\nimport { useTreeOperations } from \"./composables/useTreeOperations\";\nimport type { TreeProps, TreeEmits, TreeExpose } from \"./types\";\n\ndefineOptions({ name: \"C_Tree\" });\n\nconst props = withDefaults(defineProps<TreeProps>(), {\n mode: \"custom\",\n keyField: \"id\",\n labelField: \"name\",\n childrenField: \"children\",\n searchPattern: \"\",\n searchable: true,\n searchPlaceholder: \"搜索...\",\n draggable: false,\n showLine: true,\n showToolbar: true,\n addable: true,\n addText: \"新增\",\n refreshable: true,\n iconField: \"icon\",\n iconConfig: () => ({\n default: \"mdi:circle-outline\",\n typeMap: {},\n colorMap: {},\n }),\n statusConfigs: () => [],\n actions: () => [],\n defaultExpandAll: false,\n defaultExpandedKeys: () => [],\n defaultSelectedKeys: () => [],\n});\n\nconst emit = defineEmits<TreeEmits>();\n\nconst {\n internalSearchPattern,\n expandedKeys,\n selectedKeys,\n isAllExpanded,\n treeData,\n currentSearchPattern,\n renderPrefix,\n renderLabel,\n renderSuffix,\n toggleExpandAll,\n handleExpandedKeysChange,\n handleSelectedKeysChange,\n handleDrop,\n handleAdd,\n handleRefresh,\n expose,\n} = useTreeOperations(props, emit);\n\ndefineExpose<TreeExpose>(expose);\n</script>\n\n<style lang=\"scss\" scoped>\n@use \"./index.scss\";\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"C_Tree2.js","names":["C_Icon","showToolbar","searchable","searchPlaceholder","addable","addText","refreshable","draggable","showLine","keyField","labelField","childrenField"],"sources":["../src/components/C_Tree/data.ts","../src/components/C_Tree/composables/useTreeOperations.ts","../src/components/C_Tree/index.vue","../src/components/C_Tree/index.vue"],"sourcesContent":["import type { TreeMode, TreeProps } from \"./types\";\r\n\r\nexport const presetConfigs: Record<TreeMode, Partial<TreeProps>> = {\r\n menu: {\r\n draggable: true,\r\n showLine: true,\r\n iconConfig: {\r\n typeMap: {\r\n directory: \"mdi:folder\",\r\n menu: \"mdi:file-document\",\r\n button: \"mdi:button-cursor\",\r\n },\r\n },\r\n actions: [\r\n { key: \"add\", text: \"新增子菜单\", icon: \"mdi:plus\", type: \"primary\" },\r\n { key: \"edit\", text: \"编辑\", icon: \"mdi:pencil\", type: \"info\" },\r\n {\r\n key: \"delete\",\r\n text: \"删除\",\r\n icon: \"mdi:delete\",\r\n type: \"error\",\r\n confirm: \"确认删除该菜单吗?\",\r\n },\r\n ],\r\n },\r\n file: {\r\n draggable: false,\r\n showLine: false,\r\n iconConfig: {\r\n typeMap: {\r\n folder: \"mdi:folder\",\r\n file: \"mdi:file-document\",\r\n image: \"mdi:file-image\",\r\n video: \"mdi:file-video\",\r\n audio: \"mdi:file-music\",\r\n },\r\n },\r\n actions: [\r\n { key: \"open\", text: \"打开\", icon: \"mdi:folder-open\", type: \"primary\" },\r\n { key: \"rename\", text: \"重命名\", icon: \"mdi:rename-box\", type: \"info\" },\r\n {\r\n key: \"delete\",\r\n text: \"删除\",\r\n icon: \"mdi:delete\",\r\n type: \"error\",\r\n confirm: \"确认删除该文件吗?\",\r\n },\r\n ],\r\n },\r\n org: {\r\n draggable: false,\r\n showLine: true,\r\n iconConfig: {\r\n typeMap: {\r\n department: \"mdi:domain\",\r\n user: \"mdi:account\",\r\n manager: \"mdi:account-tie\",\r\n },\r\n },\r\n actions: [\r\n { key: \"add\", text: \"新增下级\", icon: \"mdi:plus\", type: \"primary\" },\r\n { key: \"edit\", text: \"编辑\", icon: \"mdi:pencil\", type: \"info\" },\r\n ],\r\n },\r\n custom: {},\r\n};\r\n","import { ref, computed, h } from \"vue\";\r\nimport { NTag, NButton, NPopconfirm, NSpace } from \"naive-ui\";\r\nimport C_Icon from \"../../C_Icon/index.vue\";\r\nimport { presetConfigs } from \"../data\";\r\nimport type {\r\n TreeOption,\r\n TreeNodeData,\r\n TreeProps,\r\n TreeExpose,\r\n DropInfo,\r\n} from \"../types\";\r\n\r\ntype EmitFn = {\r\n (\r\n event: \"node-select\",\r\n node: TreeNodeData | null,\r\n selectedKeys: (string | number)[],\r\n ): void;\r\n (event: \"node-action\", action: string, node: TreeNodeData): void;\r\n (event: \"node-drop\", info: DropInfo): void;\r\n (event: \"add\", parentNode?: TreeNodeData): void;\r\n (event: \"refresh\"): void;\r\n};\r\n\r\nexport function useTreeOperations(props: TreeProps, emit: EmitFn) {\r\n const internalSearchPattern = ref(\"\");\r\n const expandedKeys = ref<(string | number)[]>(\r\n props.defaultExpandedKeys ?? [],\r\n );\r\n const selectedKeys = ref<(string | number)[]>(\r\n props.defaultSelectedKeys ?? [],\r\n );\r\n const isAllExpanded = ref(props.defaultExpandAll ?? false);\r\n\r\n const keyField = computed(() => props.keyField ?? \"id\");\r\n const labelField = computed(() => props.labelField ?? \"name\");\r\n const childrenField = computed(() => props.childrenField ?? \"children\");\r\n const iconField = computed(() => props.iconField ?? \"icon\");\r\n\r\n const mergedConfig = computed(() => {\r\n const preset = presetConfigs[props.mode ?? \"custom\"] || {};\r\n return {\r\n ...preset,\r\n ...props,\r\n iconConfig: { ...preset.iconConfig, ...props.iconConfig },\r\n actions: props.actions?.length ? props.actions : preset.actions || [],\r\n };\r\n });\r\n\r\n const treeData = computed((): TreeOption[] => props.data as TreeOption[]);\r\n\r\n const currentSearchPattern = computed(\r\n () => props.searchPattern || internalSearchPattern.value,\r\n );\r\n\r\n const selectedNode = computed((): TreeNodeData | null => {\r\n if (selectedKeys.value.length === 0) return null;\r\n const findNode = (\r\n nodes: TreeNodeData[],\r\n id: string | number,\r\n ): TreeNodeData | null => {\r\n for (const node of nodes) {\r\n if (node[keyField.value] === id) return node;\r\n if (node[childrenField.value]) {\r\n const found = findNode(node[childrenField.value], id);\r\n if (found) return found;\r\n }\r\n }\r\n return null;\r\n };\r\n return findNode(props.data, selectedKeys.value[0]);\r\n });\r\n\r\n const getAllKeys = (nodes: TreeNodeData[]): (string | number)[] => {\r\n const keys: (string | number)[] = [];\r\n nodes.forEach((node) => {\r\n keys.push(node[keyField.value]);\r\n if (node[childrenField.value]) {\r\n keys.push(...getAllKeys(node[childrenField.value]));\r\n }\r\n });\r\n return keys;\r\n };\r\n\r\n const getNodeIcon = (node: TreeNodeData): string => {\r\n const config = mergedConfig.value.iconConfig!;\r\n if (node[iconField.value]) return node[iconField.value];\r\n if (node.type && config.typeMap?.[node.type])\r\n return config.typeMap[node.type];\r\n return config.default || \"mdi:circle-outline\";\r\n };\r\n\r\n const getNodeIconColor = (node: TreeNodeData): string => {\r\n const config = mergedConfig.value.iconConfig!;\r\n if (node.type && config.colorMap?.[node.type])\r\n return config.colorMap[node.type];\r\n return \"currentColor\";\r\n };\r\n\r\n const renderPrefix = ({ option }: { option: TreeOption }) => {\r\n const node = option as TreeNodeData;\r\n return h(C_Icon, {\r\n name: getNodeIcon(node),\r\n size: 18,\r\n color: getNodeIconColor(node),\r\n class: \"mr-3 flex-shrink-0\",\r\n });\r\n };\r\n\r\n const renderLabel = ({ option }: { option: TreeOption }) => {\r\n const node = option as TreeNodeData;\r\n const statusTags =\r\n props.statusConfigs\r\n ?.map((config) => {\r\n const value = node[config.field];\r\n const statusConfig = config.values[value];\r\n if (!statusConfig?.text) return null;\r\n return h(\r\n NTag,\r\n {\r\n type: statusConfig.type,\r\n size: \"small\",\r\n class: \"ml-2\",\r\n style: { fontSize: \"12px\" },\r\n },\r\n { default: () => statusConfig.text },\r\n );\r\n })\r\n .filter(Boolean) || [];\r\n\r\n return h(\r\n \"div\",\r\n {\r\n class: \"flex items-center flex-1 min-w-0 py-1\",\r\n style: { lineHeight: \"1.5\" },\r\n },\r\n [\r\n h(\r\n \"span\",\r\n { class: \"mr-3 font-medium text-sm\" },\r\n node[labelField.value],\r\n ),\r\n ...statusTags,\r\n ],\r\n );\r\n };\r\n\r\n const renderSuffix = ({ option }: { option: TreeOption }) => {\r\n const node = option as TreeNodeData;\r\n const actions = mergedConfig.value.actions || [];\r\n\r\n const actionButtons = actions\r\n .filter((action) => !action.show || action.show(node))\r\n .map((action) => {\r\n const buttonProps = {\r\n size: \"tiny\" as const,\r\n type: action.type || (\"default\" as const),\r\n secondary: true,\r\n style: { padding: \"4px 6px\", minWidth: \"24px\", height: \"24px\" },\r\n onClick: (e: Event) => {\r\n e.stopPropagation();\r\n handleNodeAction(action.key, node);\r\n },\r\n };\r\n const iconEl = h(C_Icon, {\r\n name: action.icon,\r\n size: 12,\r\n title: action.text,\r\n });\r\n\r\n if (action.confirm) {\r\n return h(\r\n NPopconfirm,\r\n { onPositiveClick: () => handleNodeAction(action.key, node) },\r\n {\r\n trigger: () =>\r\n h(\r\n NButton,\r\n {\r\n ...buttonProps,\r\n onClick: (e: Event) => e.stopPropagation(),\r\n },\r\n { icon: () => iconEl },\r\n ),\r\n default: () => action.confirm,\r\n },\r\n );\r\n }\r\n return h(NButton, buttonProps, { icon: () => iconEl });\r\n });\r\n\r\n return h(\r\n \"div\",\r\n {\r\n class: \"tree-actions\",\r\n style: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n marginLeft: \"8px\",\r\n opacity: \"0\",\r\n transition: \"opacity 0.2s ease\",\r\n },\r\n },\r\n [h(NSpace, { size: 4 }, { default: () => actionButtons })],\r\n );\r\n };\r\n\r\n const toggleExpandAll = (): void => {\r\n if (isAllExpanded.value) {\r\n expandedKeys.value = [];\r\n isAllExpanded.value = false;\r\n } else {\r\n expandedKeys.value = getAllKeys(props.data);\r\n isAllExpanded.value = true;\r\n }\r\n };\r\n\r\n const handleExpandedKeysChange = (keys: (string | number)[]): void => {\r\n expandedKeys.value = keys;\r\n isAllExpanded.value = keys.length === getAllKeys(props.data).length;\r\n };\r\n\r\n const handleSelectedKeysChange = (keys: (string | number)[]): void => {\r\n selectedKeys.value = keys;\r\n emit(\"node-select\", selectedNode.value, keys);\r\n };\r\n\r\n const handleDrop = (info: DropInfo): void => emit(\"node-drop\", info);\r\n\r\n const handleNodeAction = (action: string, node: TreeNodeData): void => {\r\n if (action === \"add\") {\r\n emit(\"add\", node);\r\n } else {\r\n emit(\"node-action\", action, node);\r\n }\r\n };\r\n\r\n const handleAdd = (): void => emit(\"add\");\r\n const handleRefresh = (): void => emit(\"refresh\");\r\n\r\n const expose: TreeExpose = {\r\n expandAll: () => {\r\n expandedKeys.value = getAllKeys(props.data);\r\n isAllExpanded.value = true;\r\n },\r\n collapseAll: () => {\r\n expandedKeys.value = [];\r\n isAllExpanded.value = false;\r\n },\r\n selectNode: (key: string | number) => {\r\n selectedKeys.value = [key];\r\n },\r\n getSelectedNode: () => selectedNode.value,\r\n expandedKeys,\r\n selectedKeys,\r\n };\r\n\r\n return {\r\n internalSearchPattern,\r\n expandedKeys,\r\n selectedKeys,\r\n isAllExpanded,\r\n treeData,\r\n currentSearchPattern,\r\n renderPrefix,\r\n renderLabel,\r\n renderSuffix,\r\n toggleExpandAll,\r\n handleExpandedKeysChange,\r\n handleSelectedKeysChange,\r\n handleDrop,\r\n handleAdd,\r\n handleRefresh,\r\n expose,\r\n };\r\n}\r\n","<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2025-06-27\n * @Description: 树型组件 — 薄 UI 壳,逻辑由 useTreeOperations 驱动\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-tree\">\n <div v-if=\"showToolbar\" class=\"c-tree-toolbar\">\n <div class=\"toolbar-left\">\n <NInput\n v-if=\"searchable\"\n v-model:value=\"internalSearchPattern\"\n :placeholder=\"searchPlaceholder\"\n clearable\n class=\"search-input\"\n >\n <template #prefix>\n <C_Icon name=\"mdi:magnify\" :size=\"16\" />\n </template>\n </NInput>\n </div>\n <div class=\"toolbar-right\">\n <slot name=\"toolbar-actions\">\n <NButton v-if=\"addable\" type=\"primary\" @click=\"handleAdd()\">\n <template #icon>\n <C_Icon name=\"mdi:plus\" :size=\"16\" />\n </template>\n {{ addText }}\n </NButton>\n <NButton @click=\"toggleExpandAll\">\n <template #icon>\n <C_Icon name=\"mdi:file-tree\" :size=\"16\" />\n </template>\n {{ isAllExpanded ? \"收起全部\" : \"展开全部\" }}\n </NButton>\n <NButton v-if=\"refreshable\" @click=\"handleRefresh\">\n <template #icon>\n <C_Icon name=\"mdi:refresh\" :size=\"16\" />\n </template>\n 刷新\n </NButton>\n </slot>\n </div>\n </div>\n\n <div class=\"c-tree-container\">\n <NTree\n :data=\"treeData\"\n :pattern=\"currentSearchPattern\"\n :expanded-keys=\"expandedKeys\"\n :selected-keys=\"selectedKeys\"\n :draggable=\"draggable\"\n :show-line=\"showLine\"\n :render-prefix=\"renderPrefix\"\n :render-suffix=\"renderSuffix\"\n :render-label=\"renderLabel\"\n :key-field=\"keyField\"\n :label-field=\"labelField\"\n :children-field=\"childrenField\"\n @update:expanded-keys=\"handleExpandedKeysChange\"\n @update:selected-keys=\"handleSelectedKeysChange\"\n @drop=\"handleDrop\"\n class=\"tree-instance\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { NInput, NButton, NTree } from \"naive-ui\";\nimport C_Icon from \"../C_Icon/index.vue\";\nimport { useTreeOperations } from \"./composables/useTreeOperations\";\nimport type { TreeProps, TreeEmits, TreeExpose } from \"./types\";\n\ndefineOptions({ name: \"C_Tree\" });\n\nconst props = withDefaults(defineProps<TreeProps>(), {\n mode: \"custom\",\n keyField: \"id\",\n labelField: \"name\",\n childrenField: \"children\",\n searchPattern: \"\",\n searchable: true,\n searchPlaceholder: \"搜索...\",\n draggable: false,\n showLine: true,\n showToolbar: true,\n addable: true,\n addText: \"新增\",\n refreshable: true,\n iconField: \"icon\",\n iconConfig: () => ({\n default: \"mdi:circle-outline\",\n typeMap: {},\n colorMap: {},\n }),\n statusConfigs: () => [],\n actions: () => [],\n defaultExpandAll: false,\n defaultExpandedKeys: () => [],\n defaultSelectedKeys: () => [],\n});\n\nconst emit = defineEmits<TreeEmits>();\n\nconst {\n internalSearchPattern,\n expandedKeys,\n selectedKeys,\n isAllExpanded,\n treeData,\n currentSearchPattern,\n renderPrefix,\n renderLabel,\n renderSuffix,\n toggleExpandAll,\n handleExpandedKeysChange,\n handleSelectedKeysChange,\n handleDrop,\n handleAdd,\n handleRefresh,\n expose,\n} = useTreeOperations(props, emit);\n\ndefineExpose<TreeExpose>(expose);\n</script>\n\n<style lang=\"scss\" scoped>\n@use \"./index.scss\";\n</style>\n","<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2025-06-27\n * @Description: 树型组件 — 薄 UI 壳,逻辑由 useTreeOperations 驱动\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-tree\">\n <div v-if=\"showToolbar\" class=\"c-tree-toolbar\">\n <div class=\"toolbar-left\">\n <NInput\n v-if=\"searchable\"\n v-model:value=\"internalSearchPattern\"\n :placeholder=\"searchPlaceholder\"\n clearable\n class=\"search-input\"\n >\n <template #prefix>\n <C_Icon name=\"mdi:magnify\" :size=\"16\" />\n </template>\n </NInput>\n </div>\n <div class=\"toolbar-right\">\n <slot name=\"toolbar-actions\">\n <NButton v-if=\"addable\" type=\"primary\" @click=\"handleAdd()\">\n <template #icon>\n <C_Icon name=\"mdi:plus\" :size=\"16\" />\n </template>\n {{ addText }}\n </NButton>\n <NButton @click=\"toggleExpandAll\">\n <template #icon>\n <C_Icon name=\"mdi:file-tree\" :size=\"16\" />\n </template>\n {{ isAllExpanded ? \"收起全部\" : \"展开全部\" }}\n </NButton>\n <NButton v-if=\"refreshable\" @click=\"handleRefresh\">\n <template #icon>\n <C_Icon name=\"mdi:refresh\" :size=\"16\" />\n </template>\n 刷新\n </NButton>\n </slot>\n </div>\n </div>\n\n <div class=\"c-tree-container\">\n <NTree\n :data=\"treeData\"\n :pattern=\"currentSearchPattern\"\n :expanded-keys=\"expandedKeys\"\n :selected-keys=\"selectedKeys\"\n :draggable=\"draggable\"\n :show-line=\"showLine\"\n :render-prefix=\"renderPrefix\"\n :render-suffix=\"renderSuffix\"\n :render-label=\"renderLabel\"\n :key-field=\"keyField\"\n :label-field=\"labelField\"\n :children-field=\"childrenField\"\n @update:expanded-keys=\"handleExpandedKeysChange\"\n @update:selected-keys=\"handleSelectedKeysChange\"\n @drop=\"handleDrop\"\n class=\"tree-instance\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { NInput, NButton, NTree } from \"naive-ui\";\nimport C_Icon from \"../C_Icon/index.vue\";\nimport { useTreeOperations } from \"./composables/useTreeOperations\";\nimport type { TreeProps, TreeEmits, TreeExpose } from \"./types\";\n\ndefineOptions({ name: \"C_Tree\" });\n\nconst props = withDefaults(defineProps<TreeProps>(), {\n mode: \"custom\",\n keyField: \"id\",\n labelField: \"name\",\n childrenField: \"children\",\n searchPattern: \"\",\n searchable: true,\n searchPlaceholder: \"搜索...\",\n draggable: false,\n showLine: true,\n showToolbar: true,\n addable: true,\n addText: \"新增\",\n refreshable: true,\n iconField: \"icon\",\n iconConfig: () => ({\n default: \"mdi:circle-outline\",\n typeMap: {},\n colorMap: {},\n }),\n statusConfigs: () => [],\n actions: () => [],\n defaultExpandAll: false,\n defaultExpandedKeys: () => [],\n defaultSelectedKeys: () => [],\n});\n\nconst emit = defineEmits<TreeEmits>();\n\nconst {\n internalSearchPattern,\n expandedKeys,\n selectedKeys,\n isAllExpanded,\n treeData,\n currentSearchPattern,\n renderPrefix,\n renderLabel,\n renderSuffix,\n toggleExpandAll,\n handleExpandedKeysChange,\n handleSelectedKeysChange,\n handleDrop,\n handleAdd,\n handleRefresh,\n expose,\n} = useTreeOperations(props, emit);\n\ndefineExpose<TreeExpose>(expose);\n</script>\n\n<style lang=\"scss\" scoped>\n@use \"./index.scss\";\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"C_Upload-BR9fg5r4.css","names":[],"sources":["../src/components/C_Upload/components/UploadArea.vue?vue&type=style&index=0&scoped=f5040f9e&lang.scss","../src/components/C_Upload/components/FileList.vue?vue&type=style&index=0&scoped=09e1ee73&lang.scss","../src/components/C_Upload/components/ImagePreview.vue?vue&type=style&index=0&scoped=f6e701f9&lang.scss","../src/components/C_Upload/index.vue?vue&type=style&index=0&scoped=9ccc53a0&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.upload-area[data-v-f5040f9e] {\n position: relative;\n box-sizing: border-box;\n padding: 32px 24px;\n border: 2px dashed var(--border-color);\n border-radius: 10px;\n cursor: pointer;\n background: var(--card-color);\n transition: all 0.25s ease;\n text-align: center;\n}\n.upload-area[data-v-f5040f9e]:hover:not(.upload-area--disabled) {\n border-color: var(--primary-color);\n background: color-mix(in srgb, var(--primary-color) 4%, var(--card-color));\n}\n.upload-area--drag-over[data-v-f5040f9e] {\n border-color: var(--primary-color);\n border-style: solid;\n background: color-mix(in srgb, var(--primary-color) 8%, var(--card-color));\n}\n.upload-area--drag-over .upload-area__icon[data-v-f5040f9e] {\n color: var(--primary-color);\n transform: scale(1.1);\n}\n.upload-area--disabled[data-v-f5040f9e] {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.upload-area__input[data-v-f5040f9e] {\n display: none;\n}\n.upload-area__default[data-v-f5040f9e] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n align-items: center;\n}\n.upload-area__icon[data-v-f5040f9e] {\n font-size: 48px;\n color: var(--text-color-3);\n transition: all 0.25s ease;\n}\n.upload-area__text[data-v-f5040f9e] {\n font-size: 14px;\n color: var(--text-color-2);\n line-height: 1.6;\n}\n.upload-area__text kbd[data-v-f5040f9e] {\n padding: 1px 5px;\n font-size: 12px;\n border: 1px solid var(--border-color);\n border-radius: 3px;\n background: var(--body-color);\n}\n.upload-area__tip[data-v-f5040f9e] {\n font-size: 12px;\n color: var(--text-color-4);\n}","/* unplugin-vue-components disabled */.file-list[data-v-09e1ee73] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 12px;\n}\n.file-list__item[data-v-09e1ee73] {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n padding: 10px 12px;\n border-radius: 8px;\n border: 1px solid var(--border-color);\n background: var(--card-color);\n transition: all 0.25s ease;\n}\n.file-list__item[data-v-09e1ee73]:hover {\n border-color: color-mix(in srgb, var(--primary-color) 40%, var(--border-color));\n box-shadow: 0 1px 6px rgba(0, 0, 0, 0.04);\n}\n.file-list__item--error[data-v-09e1ee73] {\n border-color: var(--error-color);\n background: color-mix(in srgb, var(--error-color) 4%, var(--card-color));\n}\n.file-list__item--success[data-v-09e1ee73], .file-list__item--instant[data-v-09e1ee73] {\n border-color: color-mix(in srgb, var(--success-color) 30%, var(--border-color));\n}\n.file-list__thumb[data-v-09e1ee73] {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n border-radius: 6px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--body-color);\n}\n.file-list__thumb-img[data-v-09e1ee73] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.file-list__thumb-icon[data-v-09e1ee73] {\n font-size: 22px;\n color: var(--text-color-3);\n}\n.file-list__info[data-v-09e1ee73] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.file-list__name[data-v-09e1ee73] {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-color-1);\n}\n.file-list__meta[data-v-09e1ee73] {\n display: flex;\n gap: 8px;\n align-items: center;\n font-size: 12px;\n}\n.file-list__size[data-v-09e1ee73] {\n color: var(--text-color-3);\n}\n.file-list__instant[data-v-09e1ee73] {\n font-size: 14px;\n}\n.file-list__chunk-info[data-v-09e1ee73] {\n font-size: 11px;\n color: var(--text-color-4);\n}\n.file-list__error[data-v-09e1ee73] {\n font-size: 12px;\n color: var(--error-color);\n}\n.file-list__actions[data-v-09e1ee73] {\n flex-shrink: 0;\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n/* ─── 过渡动画 ─────────────────────────────── */\n.file-list-enter-active[data-v-09e1ee73],\n.file-list-leave-active[data-v-09e1ee73] {\n transition: all 0.3s ease;\n}\n.file-list-enter-from[data-v-09e1ee73] {\n opacity: 0;\n transform: translateX(-20px);\n}\n.file-list-leave-to[data-v-09e1ee73] {\n opacity: 0;\n transform: translateX(20px);\n}\n.file-list-move[data-v-09e1ee73] {\n transition: transform 0.3s ease;\n}","/* unplugin-vue-components disabled */.image-preview[data-v-f6e701f9] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));\n gap: 10px;\n margin-top: 12px;\n /* 上传中始终显示遮罩 */\n}\n.image-preview__item[data-v-f6e701f9] {\n position: relative;\n aspect-ratio: 1;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--border-color);\n background: var(--body-color);\n}\n.image-preview__item--error[data-v-f6e701f9] {\n border-color: var(--error-color);\n}\n.image-preview__item--success[data-v-f6e701f9], .image-preview__item--instant[data-v-f6e701f9] {\n border-color: color-mix(in srgb, var(--success-color) 30%, var(--border-color));\n}\n.image-preview__item:hover .image-preview__overlay[data-v-f6e701f9] {\n opacity: 1;\n}\n.image-preview__img[data-v-f6e701f9] {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.image-preview__overlay[data-v-f6e701f9] {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n background: rgba(0, 0, 0, 0.45);\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.image-preview__item--uploading .image-preview__overlay[data-v-f6e701f9], .image-preview__item--hashing .image-preview__overlay[data-v-f6e701f9], .image-preview__item--error .image-preview__overlay[data-v-f6e701f9] {\n opacity: 1;\n}\n.image-preview__progress[data-v-f6e701f9] .n-progress {\n --n-fill-color: #fff;\n}\n.image-preview__status-icon[data-v-f6e701f9] {\n font-size: 28px;\n}\n.image-preview__status-icon--success[data-v-f6e701f9] {\n color: var(--success-color);\n}\n.image-preview__status-icon--error[data-v-f6e701f9] {\n color: var(--error-color);\n}\n.image-preview__actions[data-v-f6e701f9] {\n display: flex;\n gap: 6px;\n}\n.image-preview__name[data-v-f6e701f9] {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 2px 6px;\n font-size: 11px;\n color: #fff;\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));\n text-align: center;\n}","/* unplugin-vue-components disabled */.c-upload[data-v-9ccc53a0] {\n --c-upload-progress-bg: var(--body-color, #fff);\n --c-upload-progress-border: var(--border-color, #e5e7eb);\n --c-upload-progress-radius: 8px;\n --c-upload-label-color: var(--text-color-3, #999);\n --c-upload-label-size: 12px;\n width: 100%;\n}\n.c-upload__total-progress[data-v-9ccc53a0] {\n margin-top: 12px;\n padding: 8px 12px;\n border-radius: var(--c-upload-progress-radius);\n background: var(--c-upload-progress-bg);\n border: 1px solid var(--c-upload-progress-border);\n}\n.c-upload__total-label[data-v-9ccc53a0] {\n display: flex;\n justify-content: space-between;\n margin-bottom: 6px;\n font-size: var(--c-upload-label-size);\n color: var(--c-upload-label-color);\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_Upload-CHjiVVh7.css","names":[],"sources":["../src/components/C_Upload/components/UploadArea.vue?vue&type=style&index=0&scoped=2e419e04&lang.scss","../src/components/C_Upload/components/FileList.vue?vue&type=style&index=0&scoped=8e4ad054&lang.scss","../src/components/C_Upload/components/ImagePreview.vue?vue&type=style&index=0&scoped=76efbe9c&lang.scss","../src/components/C_Upload/index.vue?vue&type=style&index=0&scoped=ec48178d&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.upload-area[data-v-2e419e04] {\n position: relative;\n box-sizing: border-box;\n padding: 32px 24px;\n border: 2px dashed var(--border-color);\n border-radius: 10px;\n cursor: pointer;\n background: var(--card-color);\n transition: all 0.25s ease;\n text-align: center;\n}\n.upload-area[data-v-2e419e04]:hover:not(.upload-area--disabled) {\n border-color: var(--primary-color);\n background: color-mix(in srgb, var(--primary-color) 4%, var(--card-color));\n}\n.upload-area--drag-over[data-v-2e419e04] {\n border-color: var(--primary-color);\n border-style: solid;\n background: color-mix(in srgb, var(--primary-color) 8%, var(--card-color));\n}\n.upload-area--drag-over .upload-area__icon[data-v-2e419e04] {\n color: var(--primary-color);\n transform: scale(1.1);\n}\n.upload-area--disabled[data-v-2e419e04] {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.upload-area__input[data-v-2e419e04] {\n display: none;\n}\n.upload-area__default[data-v-2e419e04] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n align-items: center;\n}\n.upload-area__icon[data-v-2e419e04] {\n font-size: 48px;\n color: var(--text-color-3);\n transition: all 0.25s ease;\n}\n.upload-area__text[data-v-2e419e04] {\n font-size: 14px;\n color: var(--text-color-2);\n line-height: 1.6;\n}\n.upload-area__text kbd[data-v-2e419e04] {\n padding: 1px 5px;\n font-size: 12px;\n border: 1px solid var(--border-color);\n border-radius: 3px;\n background: var(--body-color);\n}\n.upload-area__tip[data-v-2e419e04] {\n font-size: 12px;\n color: var(--text-color-4);\n}","/* unplugin-vue-components disabled */.file-list[data-v-8e4ad054] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 12px;\n}\n.file-list__item[data-v-8e4ad054] {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n padding: 10px 12px;\n border-radius: 8px;\n border: 1px solid var(--border-color);\n background: var(--card-color);\n transition: all 0.25s ease;\n}\n.file-list__item[data-v-8e4ad054]:hover {\n border-color: color-mix(in srgb, var(--primary-color) 40%, var(--border-color));\n box-shadow: 0 1px 6px rgba(0, 0, 0, 0.04);\n}\n.file-list__item--error[data-v-8e4ad054] {\n border-color: var(--error-color);\n background: color-mix(in srgb, var(--error-color) 4%, var(--card-color));\n}\n.file-list__item--success[data-v-8e4ad054], .file-list__item--instant[data-v-8e4ad054] {\n border-color: color-mix(in srgb, var(--success-color) 30%, var(--border-color));\n}\n.file-list__thumb[data-v-8e4ad054] {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n border-radius: 6px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--body-color);\n}\n.file-list__thumb-img[data-v-8e4ad054] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.file-list__thumb-icon[data-v-8e4ad054] {\n font-size: 22px;\n color: var(--text-color-3);\n}\n.file-list__info[data-v-8e4ad054] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.file-list__name[data-v-8e4ad054] {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-color-1);\n}\n.file-list__meta[data-v-8e4ad054] {\n display: flex;\n gap: 8px;\n align-items: center;\n font-size: 12px;\n}\n.file-list__size[data-v-8e4ad054] {\n color: var(--text-color-3);\n}\n.file-list__instant[data-v-8e4ad054] {\n font-size: 14px;\n}\n.file-list__chunk-info[data-v-8e4ad054] {\n font-size: 11px;\n color: var(--text-color-4);\n}\n.file-list__error[data-v-8e4ad054] {\n font-size: 12px;\n color: var(--error-color);\n}\n.file-list__actions[data-v-8e4ad054] {\n flex-shrink: 0;\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n/* ─── 过渡动画 ─────────────────────────────── */\n.file-list-enter-active[data-v-8e4ad054],\n.file-list-leave-active[data-v-8e4ad054] {\n transition: all 0.3s ease;\n}\n.file-list-enter-from[data-v-8e4ad054] {\n opacity: 0;\n transform: translateX(-20px);\n}\n.file-list-leave-to[data-v-8e4ad054] {\n opacity: 0;\n transform: translateX(20px);\n}\n.file-list-move[data-v-8e4ad054] {\n transition: transform 0.3s ease;\n}","/* unplugin-vue-components disabled */.image-preview[data-v-76efbe9c] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));\n gap: 10px;\n margin-top: 12px;\n /* 上传中始终显示遮罩 */\n}\n.image-preview__item[data-v-76efbe9c] {\n position: relative;\n aspect-ratio: 1;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--border-color);\n background: var(--body-color);\n}\n.image-preview__item--error[data-v-76efbe9c] {\n border-color: var(--error-color);\n}\n.image-preview__item--success[data-v-76efbe9c], .image-preview__item--instant[data-v-76efbe9c] {\n border-color: color-mix(in srgb, var(--success-color) 30%, var(--border-color));\n}\n.image-preview__item:hover .image-preview__overlay[data-v-76efbe9c] {\n opacity: 1;\n}\n.image-preview__img[data-v-76efbe9c] {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.image-preview__overlay[data-v-76efbe9c] {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n background: rgba(0, 0, 0, 0.45);\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.image-preview__item--uploading .image-preview__overlay[data-v-76efbe9c], .image-preview__item--hashing .image-preview__overlay[data-v-76efbe9c], .image-preview__item--error .image-preview__overlay[data-v-76efbe9c] {\n opacity: 1;\n}\n.image-preview__progress[data-v-76efbe9c] .n-progress {\n --n-fill-color: #fff;\n}\n.image-preview__status-icon[data-v-76efbe9c] {\n font-size: 28px;\n}\n.image-preview__status-icon--success[data-v-76efbe9c] {\n color: var(--success-color);\n}\n.image-preview__status-icon--error[data-v-76efbe9c] {\n color: var(--error-color);\n}\n.image-preview__actions[data-v-76efbe9c] {\n display: flex;\n gap: 6px;\n}\n.image-preview__name[data-v-76efbe9c] {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 2px 6px;\n font-size: 11px;\n color: #fff;\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));\n text-align: center;\n}","/* unplugin-vue-components disabled */.c-upload[data-v-ec48178d] {\n --c-upload-progress-bg: var(--body-color, #fff);\n --c-upload-progress-border: var(--border-color, #e5e7eb);\n --c-upload-progress-radius: 8px;\n --c-upload-label-color: var(--text-color-3, #999);\n --c-upload-label-size: 12px;\n width: 100%;\n}\n.c-upload__total-progress[data-v-ec48178d] {\n margin-top: 12px;\n padding: 8px 12px;\n border-radius: var(--c-upload-progress-radius);\n background: var(--c-upload-progress-bg);\n border: 1px solid var(--c-upload-progress-border);\n}\n.c-upload__total-label[data-v-ec48178d] {\n display: flex;\n justify-content: space-between;\n margin-bottom: 6px;\n font-size: var(--c-upload-label-size);\n color: var(--c-upload-label-color);\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"C_Upload-CPqf74Ea.css","names":[],"sources":["../src/components/C_Upload/components/UploadArea.vue?vue&type=style&index=0&scoped=f5040f9e&lang.scss","../src/components/C_Upload/components/FileList.vue?vue&type=style&index=0&scoped=09e1ee73&lang.scss","../src/components/C_Upload/components/ImagePreview.vue?vue&type=style&index=0&scoped=f6e701f9&lang.scss","../src/components/C_Upload/index.vue?vue&type=style&index=0&scoped=9ccc53a0&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.upload-area[data-v-f5040f9e] {\n position: relative;\n box-sizing: border-box;\n padding: 32px 24px;\n border: 2px dashed var(--border-color);\n border-radius: 10px;\n cursor: pointer;\n background: var(--card-color);\n transition: all 0.25s ease;\n text-align: center;\n}\n.upload-area[data-v-f5040f9e]:hover:not(.upload-area--disabled) {\n border-color: var(--primary-color);\n background: color-mix(in srgb, var(--primary-color) 4%, var(--card-color));\n}\n.upload-area--drag-over[data-v-f5040f9e] {\n border-color: var(--primary-color);\n border-style: solid;\n background: color-mix(in srgb, var(--primary-color) 8%, var(--card-color));\n}\n.upload-area--drag-over .upload-area__icon[data-v-f5040f9e] {\n color: var(--primary-color);\n transform: scale(1.1);\n}\n.upload-area--disabled[data-v-f5040f9e] {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.upload-area__input[data-v-f5040f9e] {\n display: none;\n}\n.upload-area__default[data-v-f5040f9e] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n align-items: center;\n}\n.upload-area__icon[data-v-f5040f9e] {\n font-size: 48px;\n color: var(--text-color-3);\n transition: all 0.25s ease;\n}\n.upload-area__text[data-v-f5040f9e] {\n font-size: 14px;\n color: var(--text-color-2);\n line-height: 1.6;\n}\n.upload-area__text kbd[data-v-f5040f9e] {\n padding: 1px 5px;\n font-size: 12px;\n border: 1px solid var(--border-color);\n border-radius: 3px;\n background: var(--body-color);\n}\n.upload-area__tip[data-v-f5040f9e] {\n font-size: 12px;\n color: var(--text-color-4);\n}","/* unplugin-vue-components disabled */.file-list[data-v-09e1ee73] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 12px;\n}\n.file-list__item[data-v-09e1ee73] {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n padding: 10px 12px;\n border-radius: 8px;\n border: 1px solid var(--border-color);\n background: var(--card-color);\n transition: all 0.25s ease;\n}\n.file-list__item[data-v-09e1ee73]:hover {\n border-color: color-mix(in srgb, var(--primary-color) 40%, var(--border-color));\n box-shadow: 0 1px 6px rgba(0, 0, 0, 0.04);\n}\n.file-list__item--error[data-v-09e1ee73] {\n border-color: var(--error-color);\n background: color-mix(in srgb, var(--error-color) 4%, var(--card-color));\n}\n.file-list__item--success[data-v-09e1ee73], .file-list__item--instant[data-v-09e1ee73] {\n border-color: color-mix(in srgb, var(--success-color) 30%, var(--border-color));\n}\n.file-list__thumb[data-v-09e1ee73] {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n border-radius: 6px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--body-color);\n}\n.file-list__thumb-img[data-v-09e1ee73] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.file-list__thumb-icon[data-v-09e1ee73] {\n font-size: 22px;\n color: var(--text-color-3);\n}\n.file-list__info[data-v-09e1ee73] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.file-list__name[data-v-09e1ee73] {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-color-1);\n}\n.file-list__meta[data-v-09e1ee73] {\n display: flex;\n gap: 8px;\n align-items: center;\n font-size: 12px;\n}\n.file-list__size[data-v-09e1ee73] {\n color: var(--text-color-3);\n}\n.file-list__instant[data-v-09e1ee73] {\n font-size: 14px;\n}\n.file-list__chunk-info[data-v-09e1ee73] {\n font-size: 11px;\n color: var(--text-color-4);\n}\n.file-list__error[data-v-09e1ee73] {\n font-size: 12px;\n color: var(--error-color);\n}\n.file-list__actions[data-v-09e1ee73] {\n flex-shrink: 0;\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n/* ─── 过渡动画 ─────────────────────────────── */\n.file-list-enter-active[data-v-09e1ee73],\n.file-list-leave-active[data-v-09e1ee73] {\n transition: all 0.3s ease;\n}\n.file-list-enter-from[data-v-09e1ee73] {\n opacity: 0;\n transform: translateX(-20px);\n}\n.file-list-leave-to[data-v-09e1ee73] {\n opacity: 0;\n transform: translateX(20px);\n}\n.file-list-move[data-v-09e1ee73] {\n transition: transform 0.3s ease;\n}","/* unplugin-vue-components disabled */.image-preview[data-v-f6e701f9] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));\n gap: 10px;\n margin-top: 12px;\n /* 上传中始终显示遮罩 */\n}\n.image-preview__item[data-v-f6e701f9] {\n position: relative;\n aspect-ratio: 1;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--border-color);\n background: var(--body-color);\n}\n.image-preview__item--error[data-v-f6e701f9] {\n border-color: var(--error-color);\n}\n.image-preview__item--success[data-v-f6e701f9], .image-preview__item--instant[data-v-f6e701f9] {\n border-color: color-mix(in srgb, var(--success-color) 30%, var(--border-color));\n}\n.image-preview__item:hover .image-preview__overlay[data-v-f6e701f9] {\n opacity: 1;\n}\n.image-preview__img[data-v-f6e701f9] {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.image-preview__overlay[data-v-f6e701f9] {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n background: rgba(0, 0, 0, 0.45);\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.image-preview__item--uploading .image-preview__overlay[data-v-f6e701f9], .image-preview__item--hashing .image-preview__overlay[data-v-f6e701f9], .image-preview__item--error .image-preview__overlay[data-v-f6e701f9] {\n opacity: 1;\n}\n.image-preview__progress[data-v-f6e701f9] .n-progress {\n --n-fill-color: #fff;\n}\n.image-preview__status-icon[data-v-f6e701f9] {\n font-size: 28px;\n}\n.image-preview__status-icon--success[data-v-f6e701f9] {\n color: var(--success-color);\n}\n.image-preview__status-icon--error[data-v-f6e701f9] {\n color: var(--error-color);\n}\n.image-preview__actions[data-v-f6e701f9] {\n display: flex;\n gap: 6px;\n}\n.image-preview__name[data-v-f6e701f9] {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 2px 6px;\n font-size: 11px;\n color: #fff;\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));\n text-align: center;\n}","/* unplugin-vue-components disabled */.c-upload[data-v-9ccc53a0] {\n --c-upload-progress-bg: var(--body-color, #fff);\n --c-upload-progress-border: var(--border-color, #e5e7eb);\n --c-upload-progress-radius: 8px;\n --c-upload-label-color: var(--text-color-3, #999);\n --c-upload-label-size: 12px;\n width: 100%;\n}\n.c-upload__total-progress[data-v-9ccc53a0] {\n margin-top: 12px;\n padding: 8px 12px;\n border-radius: var(--c-upload-progress-radius);\n background: var(--c-upload-progress-bg);\n border: 1px solid var(--c-upload-progress-border);\n}\n.c-upload__total-label[data-v-9ccc53a0] {\n display: flex;\n justify-content: space-between;\n margin-bottom: 6px;\n font-size: var(--c-upload-label-size);\n color: var(--c-upload-label-color);\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_Upload-DE3OLsZD.css","names":[],"sources":["../src/components/C_Upload/components/UploadArea.vue?vue&type=style&index=0&scoped=2e419e04&lang.scss","../src/components/C_Upload/components/FileList.vue?vue&type=style&index=0&scoped=8e4ad054&lang.scss","../src/components/C_Upload/components/ImagePreview.vue?vue&type=style&index=0&scoped=76efbe9c&lang.scss","../src/components/C_Upload/index.vue?vue&type=style&index=0&scoped=ec48178d&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.upload-area[data-v-2e419e04] {\n position: relative;\n box-sizing: border-box;\n padding: 32px 24px;\n border: 2px dashed var(--border-color);\n border-radius: 10px;\n cursor: pointer;\n background: var(--card-color);\n transition: all 0.25s ease;\n text-align: center;\n}\n.upload-area[data-v-2e419e04]:hover:not(.upload-area--disabled) {\n border-color: var(--primary-color);\n background: color-mix(in srgb, var(--primary-color) 4%, var(--card-color));\n}\n.upload-area--drag-over[data-v-2e419e04] {\n border-color: var(--primary-color);\n border-style: solid;\n background: color-mix(in srgb, var(--primary-color) 8%, var(--card-color));\n}\n.upload-area--drag-over .upload-area__icon[data-v-2e419e04] {\n color: var(--primary-color);\n transform: scale(1.1);\n}\n.upload-area--disabled[data-v-2e419e04] {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.upload-area__input[data-v-2e419e04] {\n display: none;\n}\n.upload-area__default[data-v-2e419e04] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n align-items: center;\n}\n.upload-area__icon[data-v-2e419e04] {\n font-size: 48px;\n color: var(--text-color-3);\n transition: all 0.25s ease;\n}\n.upload-area__text[data-v-2e419e04] {\n font-size: 14px;\n color: var(--text-color-2);\n line-height: 1.6;\n}\n.upload-area__text kbd[data-v-2e419e04] {\n padding: 1px 5px;\n font-size: 12px;\n border: 1px solid var(--border-color);\n border-radius: 3px;\n background: var(--body-color);\n}\n.upload-area__tip[data-v-2e419e04] {\n font-size: 12px;\n color: var(--text-color-4);\n}","/* unplugin-vue-components disabled */.file-list[data-v-8e4ad054] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 12px;\n}\n.file-list__item[data-v-8e4ad054] {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n padding: 10px 12px;\n border-radius: 8px;\n border: 1px solid var(--border-color);\n background: var(--card-color);\n transition: all 0.25s ease;\n}\n.file-list__item[data-v-8e4ad054]:hover {\n border-color: color-mix(in srgb, var(--primary-color) 40%, var(--border-color));\n box-shadow: 0 1px 6px rgba(0, 0, 0, 0.04);\n}\n.file-list__item--error[data-v-8e4ad054] {\n border-color: var(--error-color);\n background: color-mix(in srgb, var(--error-color) 4%, var(--card-color));\n}\n.file-list__item--success[data-v-8e4ad054], .file-list__item--instant[data-v-8e4ad054] {\n border-color: color-mix(in srgb, var(--success-color) 30%, var(--border-color));\n}\n.file-list__thumb[data-v-8e4ad054] {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n border-radius: 6px;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--body-color);\n}\n.file-list__thumb-img[data-v-8e4ad054] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.file-list__thumb-icon[data-v-8e4ad054] {\n font-size: 22px;\n color: var(--text-color-3);\n}\n.file-list__info[data-v-8e4ad054] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.file-list__name[data-v-8e4ad054] {\n font-size: 13px;\n font-weight: 500;\n color: var(--text-color-1);\n}\n.file-list__meta[data-v-8e4ad054] {\n display: flex;\n gap: 8px;\n align-items: center;\n font-size: 12px;\n}\n.file-list__size[data-v-8e4ad054] {\n color: var(--text-color-3);\n}\n.file-list__instant[data-v-8e4ad054] {\n font-size: 14px;\n}\n.file-list__chunk-info[data-v-8e4ad054] {\n font-size: 11px;\n color: var(--text-color-4);\n}\n.file-list__error[data-v-8e4ad054] {\n font-size: 12px;\n color: var(--error-color);\n}\n.file-list__actions[data-v-8e4ad054] {\n flex-shrink: 0;\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n/* ─── 过渡动画 ─────────────────────────────── */\n.file-list-enter-active[data-v-8e4ad054],\n.file-list-leave-active[data-v-8e4ad054] {\n transition: all 0.3s ease;\n}\n.file-list-enter-from[data-v-8e4ad054] {\n opacity: 0;\n transform: translateX(-20px);\n}\n.file-list-leave-to[data-v-8e4ad054] {\n opacity: 0;\n transform: translateX(20px);\n}\n.file-list-move[data-v-8e4ad054] {\n transition: transform 0.3s ease;\n}","/* unplugin-vue-components disabled */.image-preview[data-v-76efbe9c] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));\n gap: 10px;\n margin-top: 12px;\n /* 上传中始终显示遮罩 */\n}\n.image-preview__item[data-v-76efbe9c] {\n position: relative;\n aspect-ratio: 1;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--border-color);\n background: var(--body-color);\n}\n.image-preview__item--error[data-v-76efbe9c] {\n border-color: var(--error-color);\n}\n.image-preview__item--success[data-v-76efbe9c], .image-preview__item--instant[data-v-76efbe9c] {\n border-color: color-mix(in srgb, var(--success-color) 30%, var(--border-color));\n}\n.image-preview__item:hover .image-preview__overlay[data-v-76efbe9c] {\n opacity: 1;\n}\n.image-preview__img[data-v-76efbe9c] {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.image-preview__overlay[data-v-76efbe9c] {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n background: rgba(0, 0, 0, 0.45);\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.image-preview__item--uploading .image-preview__overlay[data-v-76efbe9c], .image-preview__item--hashing .image-preview__overlay[data-v-76efbe9c], .image-preview__item--error .image-preview__overlay[data-v-76efbe9c] {\n opacity: 1;\n}\n.image-preview__progress[data-v-76efbe9c] .n-progress {\n --n-fill-color: #fff;\n}\n.image-preview__status-icon[data-v-76efbe9c] {\n font-size: 28px;\n}\n.image-preview__status-icon--success[data-v-76efbe9c] {\n color: var(--success-color);\n}\n.image-preview__status-icon--error[data-v-76efbe9c] {\n color: var(--error-color);\n}\n.image-preview__actions[data-v-76efbe9c] {\n display: flex;\n gap: 6px;\n}\n.image-preview__name[data-v-76efbe9c] {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 2px 6px;\n font-size: 11px;\n color: #fff;\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));\n text-align: center;\n}","/* unplugin-vue-components disabled */.c-upload[data-v-ec48178d] {\n --c-upload-progress-bg: var(--body-color, #fff);\n --c-upload-progress-border: var(--border-color, #e5e7eb);\n --c-upload-progress-radius: 8px;\n --c-upload-label-color: var(--text-color-3, #999);\n --c-upload-label-size: 12px;\n width: 100%;\n}\n.c-upload__total-progress[data-v-ec48178d] {\n margin-top: 12px;\n padding: 8px 12px;\n border-radius: var(--c-upload-progress-radius);\n background: var(--c-upload-progress-bg);\n border: 1px solid var(--c-upload-progress-border);\n}\n.c-upload__total-label[data-v-ec48178d] {\n display: flex;\n justify-content: space-between;\n margin-bottom: 6px;\n font-size: var(--c-upload-label-size);\n color: var(--c-upload-label-color);\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
package/dist/C_Upload.css CHANGED
@@ -1,4 +1,4 @@
1
- /* unplugin-vue-components disabled */.upload-area[data-v-f5040f9e] {
1
+ /* unplugin-vue-components disabled */.upload-area[data-v-2e419e04] {
2
2
  position: relative;
3
3
  box-sizing: border-box;
4
4
  padding: 32px 24px;
@@ -9,60 +9,60 @@
9
9
  transition: all 0.25s ease;
10
10
  text-align: center;
11
11
  }
12
- .upload-area[data-v-f5040f9e]:hover:not(.upload-area--disabled) {
12
+ .upload-area[data-v-2e419e04]:hover:not(.upload-area--disabled) {
13
13
  border-color: var(--primary-color);
14
14
  background: color-mix(in srgb, var(--primary-color) 4%, var(--card-color));
15
15
  }
16
- .upload-area--drag-over[data-v-f5040f9e] {
16
+ .upload-area--drag-over[data-v-2e419e04] {
17
17
  border-color: var(--primary-color);
18
18
  border-style: solid;
19
19
  background: color-mix(in srgb, var(--primary-color) 8%, var(--card-color));
20
20
  }
21
- .upload-area--drag-over .upload-area__icon[data-v-f5040f9e] {
21
+ .upload-area--drag-over .upload-area__icon[data-v-2e419e04] {
22
22
  color: var(--primary-color);
23
23
  transform: scale(1.1);
24
24
  }
25
- .upload-area--disabled[data-v-f5040f9e] {
25
+ .upload-area--disabled[data-v-2e419e04] {
26
26
  cursor: not-allowed;
27
27
  opacity: 0.5;
28
28
  }
29
- .upload-area__input[data-v-f5040f9e] {
29
+ .upload-area__input[data-v-2e419e04] {
30
30
  display: none;
31
31
  }
32
- .upload-area__default[data-v-f5040f9e] {
32
+ .upload-area__default[data-v-2e419e04] {
33
33
  display: flex;
34
34
  flex-direction: column;
35
35
  gap: 8px;
36
36
  align-items: center;
37
37
  }
38
- .upload-area__icon[data-v-f5040f9e] {
38
+ .upload-area__icon[data-v-2e419e04] {
39
39
  font-size: 48px;
40
40
  color: var(--text-color-3);
41
41
  transition: all 0.25s ease;
42
42
  }
43
- .upload-area__text[data-v-f5040f9e] {
43
+ .upload-area__text[data-v-2e419e04] {
44
44
  font-size: 14px;
45
45
  color: var(--text-color-2);
46
46
  line-height: 1.6;
47
47
  }
48
- .upload-area__text kbd[data-v-f5040f9e] {
48
+ .upload-area__text kbd[data-v-2e419e04] {
49
49
  padding: 1px 5px;
50
50
  font-size: 12px;
51
51
  border: 1px solid var(--border-color);
52
52
  border-radius: 3px;
53
53
  background: var(--body-color);
54
54
  }
55
- .upload-area__tip[data-v-f5040f9e] {
55
+ .upload-area__tip[data-v-2e419e04] {
56
56
  font-size: 12px;
57
57
  color: var(--text-color-4);
58
58
  }
59
- /* unplugin-vue-components disabled */.file-list[data-v-09e1ee73] {
59
+ /* unplugin-vue-components disabled */.file-list[data-v-8e4ad054] {
60
60
  display: flex;
61
61
  flex-direction: column;
62
62
  gap: 8px;
63
63
  margin-top: 12px;
64
64
  }
65
- .file-list__item[data-v-09e1ee73] {
65
+ .file-list__item[data-v-8e4ad054] {
66
66
  display: flex;
67
67
  gap: 12px;
68
68
  align-items: flex-start;
@@ -72,18 +72,18 @@
72
72
  background: var(--card-color);
73
73
  transition: all 0.25s ease;
74
74
  }
75
- .file-list__item[data-v-09e1ee73]:hover {
75
+ .file-list__item[data-v-8e4ad054]:hover {
76
76
  border-color: color-mix(in srgb, var(--primary-color) 40%, var(--border-color));
77
77
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.04);
78
78
  }
79
- .file-list__item--error[data-v-09e1ee73] {
79
+ .file-list__item--error[data-v-8e4ad054] {
80
80
  border-color: var(--error-color);
81
81
  background: color-mix(in srgb, var(--error-color) 4%, var(--card-color));
82
82
  }
83
- .file-list__item--success[data-v-09e1ee73], .file-list__item--instant[data-v-09e1ee73] {
83
+ .file-list__item--success[data-v-8e4ad054], .file-list__item--instant[data-v-8e4ad054] {
84
84
  border-color: color-mix(in srgb, var(--success-color) 30%, var(--border-color));
85
85
  }
86
- .file-list__thumb[data-v-09e1ee73] {
86
+ .file-list__thumb[data-v-8e4ad054] {
87
87
  flex-shrink: 0;
88
88
  width: 40px;
89
89
  height: 40px;
@@ -94,48 +94,48 @@
94
94
  justify-content: center;
95
95
  background: var(--body-color);
96
96
  }
97
- .file-list__thumb-img[data-v-09e1ee73] {
97
+ .file-list__thumb-img[data-v-8e4ad054] {
98
98
  width: 100%;
99
99
  height: 100%;
100
100
  object-fit: cover;
101
101
  }
102
- .file-list__thumb-icon[data-v-09e1ee73] {
102
+ .file-list__thumb-icon[data-v-8e4ad054] {
103
103
  font-size: 22px;
104
104
  color: var(--text-color-3);
105
105
  }
106
- .file-list__info[data-v-09e1ee73] {
106
+ .file-list__info[data-v-8e4ad054] {
107
107
  flex: 1;
108
108
  min-width: 0;
109
109
  display: flex;
110
110
  flex-direction: column;
111
111
  gap: 4px;
112
112
  }
113
- .file-list__name[data-v-09e1ee73] {
113
+ .file-list__name[data-v-8e4ad054] {
114
114
  font-size: 13px;
115
115
  font-weight: 500;
116
116
  color: var(--text-color-1);
117
117
  }
118
- .file-list__meta[data-v-09e1ee73] {
118
+ .file-list__meta[data-v-8e4ad054] {
119
119
  display: flex;
120
120
  gap: 8px;
121
121
  align-items: center;
122
122
  font-size: 12px;
123
123
  }
124
- .file-list__size[data-v-09e1ee73] {
124
+ .file-list__size[data-v-8e4ad054] {
125
125
  color: var(--text-color-3);
126
126
  }
127
- .file-list__instant[data-v-09e1ee73] {
127
+ .file-list__instant[data-v-8e4ad054] {
128
128
  font-size: 14px;
129
129
  }
130
- .file-list__chunk-info[data-v-09e1ee73] {
130
+ .file-list__chunk-info[data-v-8e4ad054] {
131
131
  font-size: 11px;
132
132
  color: var(--text-color-4);
133
133
  }
134
- .file-list__error[data-v-09e1ee73] {
134
+ .file-list__error[data-v-8e4ad054] {
135
135
  font-size: 12px;
136
136
  color: var(--error-color);
137
137
  }
138
- .file-list__actions[data-v-09e1ee73] {
138
+ .file-list__actions[data-v-8e4ad054] {
139
139
  flex-shrink: 0;
140
140
  display: flex;
141
141
  gap: 4px;
@@ -143,29 +143,29 @@
143
143
  }
144
144
 
145
145
  /* ─── 过渡动画 ─────────────────────────────── */
146
- .file-list-enter-active[data-v-09e1ee73],
147
- .file-list-leave-active[data-v-09e1ee73] {
146
+ .file-list-enter-active[data-v-8e4ad054],
147
+ .file-list-leave-active[data-v-8e4ad054] {
148
148
  transition: all 0.3s ease;
149
149
  }
150
- .file-list-enter-from[data-v-09e1ee73] {
150
+ .file-list-enter-from[data-v-8e4ad054] {
151
151
  opacity: 0;
152
152
  transform: translateX(-20px);
153
153
  }
154
- .file-list-leave-to[data-v-09e1ee73] {
154
+ .file-list-leave-to[data-v-8e4ad054] {
155
155
  opacity: 0;
156
156
  transform: translateX(20px);
157
157
  }
158
- .file-list-move[data-v-09e1ee73] {
158
+ .file-list-move[data-v-8e4ad054] {
159
159
  transition: transform 0.3s ease;
160
160
  }
161
- /* unplugin-vue-components disabled */.image-preview[data-v-f6e701f9] {
161
+ /* unplugin-vue-components disabled */.image-preview[data-v-76efbe9c] {
162
162
  display: grid;
163
163
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
164
164
  gap: 10px;
165
165
  margin-top: 12px;
166
166
  /* 上传中始终显示遮罩 */
167
167
  }
168
- .image-preview__item[data-v-f6e701f9] {
168
+ .image-preview__item[data-v-76efbe9c] {
169
169
  position: relative;
170
170
  aspect-ratio: 1;
171
171
  border-radius: 8px;
@@ -173,22 +173,22 @@
173
173
  border: 1px solid var(--border-color);
174
174
  background: var(--body-color);
175
175
  }
176
- .image-preview__item--error[data-v-f6e701f9] {
176
+ .image-preview__item--error[data-v-76efbe9c] {
177
177
  border-color: var(--error-color);
178
178
  }
179
- .image-preview__item--success[data-v-f6e701f9], .image-preview__item--instant[data-v-f6e701f9] {
179
+ .image-preview__item--success[data-v-76efbe9c], .image-preview__item--instant[data-v-76efbe9c] {
180
180
  border-color: color-mix(in srgb, var(--success-color) 30%, var(--border-color));
181
181
  }
182
- .image-preview__item:hover .image-preview__overlay[data-v-f6e701f9] {
182
+ .image-preview__item:hover .image-preview__overlay[data-v-76efbe9c] {
183
183
  opacity: 1;
184
184
  }
185
- .image-preview__img[data-v-f6e701f9] {
185
+ .image-preview__img[data-v-76efbe9c] {
186
186
  display: block;
187
187
  width: 100%;
188
188
  height: 100%;
189
189
  object-fit: cover;
190
190
  }
191
- .image-preview__overlay[data-v-f6e701f9] {
191
+ .image-preview__overlay[data-v-76efbe9c] {
192
192
  position: absolute;
193
193
  inset: 0;
194
194
  display: flex;
@@ -200,26 +200,26 @@
200
200
  opacity: 0;
201
201
  transition: opacity 0.2s ease;
202
202
  }
203
- .image-preview__item--uploading .image-preview__overlay[data-v-f6e701f9], .image-preview__item--hashing .image-preview__overlay[data-v-f6e701f9], .image-preview__item--error .image-preview__overlay[data-v-f6e701f9] {
203
+ .image-preview__item--uploading .image-preview__overlay[data-v-76efbe9c], .image-preview__item--hashing .image-preview__overlay[data-v-76efbe9c], .image-preview__item--error .image-preview__overlay[data-v-76efbe9c] {
204
204
  opacity: 1;
205
205
  }
206
- .image-preview__progress[data-v-f6e701f9] .n-progress {
206
+ .image-preview__progress[data-v-76efbe9c] .n-progress {
207
207
  --n-fill-color: #fff;
208
208
  }
209
- .image-preview__status-icon[data-v-f6e701f9] {
209
+ .image-preview__status-icon[data-v-76efbe9c] {
210
210
  font-size: 28px;
211
211
  }
212
- .image-preview__status-icon--success[data-v-f6e701f9] {
212
+ .image-preview__status-icon--success[data-v-76efbe9c] {
213
213
  color: var(--success-color);
214
214
  }
215
- .image-preview__status-icon--error[data-v-f6e701f9] {
215
+ .image-preview__status-icon--error[data-v-76efbe9c] {
216
216
  color: var(--error-color);
217
217
  }
218
- .image-preview__actions[data-v-f6e701f9] {
218
+ .image-preview__actions[data-v-76efbe9c] {
219
219
  display: flex;
220
220
  gap: 6px;
221
221
  }
222
- .image-preview__name[data-v-f6e701f9] {
222
+ .image-preview__name[data-v-76efbe9c] {
223
223
  position: absolute;
224
224
  bottom: 0;
225
225
  left: 0;
@@ -230,7 +230,7 @@
230
230
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));
231
231
  text-align: center;
232
232
  }
233
- /* unplugin-vue-components disabled */.c-upload[data-v-9ccc53a0] {
233
+ /* unplugin-vue-components disabled */.c-upload[data-v-ec48178d] {
234
234
  --c-upload-progress-bg: var(--body-color, #fff);
235
235
  --c-upload-progress-border: var(--border-color, #e5e7eb);
236
236
  --c-upload-progress-radius: 8px;
@@ -238,14 +238,14 @@
238
238
  --c-upload-label-size: 12px;
239
239
  width: 100%;
240
240
  }
241
- .c-upload__total-progress[data-v-9ccc53a0] {
241
+ .c-upload__total-progress[data-v-ec48178d] {
242
242
  margin-top: 12px;
243
243
  padding: 8px 12px;
244
244
  border-radius: var(--c-upload-progress-radius);
245
245
  background: var(--c-upload-progress-bg);
246
246
  border: 1px solid var(--c-upload-progress-border);
247
247
  }
248
- .c-upload__total-label[data-v-9ccc53a0] {
248
+ .c-upload__total-label[data-v-ec48178d] {
249
249
  display: flex;
250
250
  justify-content: space-between;
251
251
  margin-bottom: 6px;
@@ -253,4 +253,4 @@
253
253
  color: var(--c-upload-label-color);
254
254
  }
255
255
 
256
- /*# sourceMappingURL=C_Upload-BR9fg5r4.css.map*/
256
+ /*# sourceMappingURL=C_Upload-CHjiVVh7.css.map*/