@robot-admin/naive-ui-components 0.8.1 → 0.9.0

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 (381) hide show
  1. package/README.md +294 -279
  2. package/dist/C_ActionBar-DYG0Yf3A.css.map +1 -0
  3. package/dist/C_ActionBar-MAjRhqcI.css.map +1 -0
  4. package/dist/C_ActionBar.cjs +1 -1
  5. package/dist/C_ActionBar.css +47 -47
  6. package/dist/C_ActionBar.js +1 -1
  7. package/dist/C_ActionBar.js.map +1 -1
  8. package/dist/C_ActionBar2.js +1 -1
  9. package/dist/C_ActionBar2.js.map +1 -1
  10. package/dist/{C_AntV-A3NXx_sF.css.map → C_AntV-BY8jqqmi.css.map} +1 -1
  11. package/dist/{C_AntV-D2Zp2qQF.css.map → C_AntV-BbkHc-_a.css.map} +1 -1
  12. package/dist/C_AntV.cjs +1 -1
  13. package/dist/C_AntV.css +78 -78
  14. package/dist/C_AntV.js +1 -1
  15. package/dist/C_AntV.js.map +1 -1
  16. package/dist/C_AntV2.js +3 -3
  17. package/dist/C_AntV2.js.map +1 -1
  18. package/dist/{C_AudioPlayer-CXl4yP_m.css.map → C_AudioPlayer-DKRIGhi7.css.map} +1 -1
  19. package/dist/{C_AudioPlayer-CcBtt71m.css.map → C_AudioPlayer-DlB6eNsa.css.map} +1 -1
  20. package/dist/C_AudioPlayer.cjs +1 -1
  21. package/dist/C_AudioPlayer.css +47 -47
  22. package/dist/C_AudioPlayer.js +1 -1
  23. package/dist/C_AudioPlayer.js.map +1 -1
  24. package/dist/C_AudioPlayer2.js +1 -1
  25. package/dist/C_AudioPlayer2.js.map +1 -1
  26. package/dist/{C_AvatarGroup-CtPhfH9h.css.map → C_AvatarGroup-D02zci-i.css.map} +1 -1
  27. package/dist/{C_AvatarGroup-M1dNPH3E.css.map → C_AvatarGroup-DatHaUlY.css.map} +1 -1
  28. package/dist/C_AvatarGroup.css +21 -21
  29. package/dist/C_AvatarGroup.js.map +1 -1
  30. package/dist/C_AvatarGroup2.js +1 -1
  31. package/dist/C_AvatarGroup2.js.map +1 -1
  32. package/dist/{C_Barcode-DjTmDkbQ.css.map → C_Barcode-DYDRDe2O.css.map} +1 -1
  33. package/dist/{C_Barcode-Do1Ozsmh.css.map → C_Barcode-muJdc_O4.css.map} +1 -1
  34. package/dist/C_Barcode.css +7 -7
  35. package/dist/C_Barcode.js.map +1 -1
  36. package/dist/C_Barcode2.js +1 -1
  37. package/dist/C_Barcode2.js.map +1 -1
  38. package/dist/C_Breadcrumb.cjs +1 -1
  39. package/dist/C_Breadcrumb.js +1 -1
  40. package/dist/C_Breadcrumb.js.map +1 -1
  41. package/dist/C_Breadcrumb2.js +1 -1
  42. package/dist/C_Breadcrumb2.js.map +1 -1
  43. package/dist/{C_Captcha-CZmAETly.css.map → C_Captcha-9_hk6VmY.css.map} +1 -1
  44. package/dist/{C_Captcha-Ccq3DMrR.css.map → C_Captcha-MtASlJ0f.css.map} +1 -1
  45. package/dist/C_Captcha.css +19 -19
  46. package/dist/C_Captcha.js.map +1 -1
  47. package/dist/C_Captcha2.js +1 -1
  48. package/dist/C_Captcha2.js.map +1 -1
  49. package/dist/C_Cascade.js.map +1 -1
  50. package/dist/C_Cascade2.js +1 -1
  51. package/dist/C_Cascade2.js.map +1 -1
  52. package/dist/{C_Chat-CJ8KESTM.css.map → C_Chat-Csjz_BFw.css.map} +1 -1
  53. package/dist/{C_Chat-DzV4AFLd.css.map → C_Chat-DO1ZBA_0.css.map} +1 -1
  54. package/dist/C_Chat.cjs +1 -1
  55. package/dist/C_Chat.css +65 -65
  56. package/dist/C_Chat.js +1 -1
  57. package/dist/C_Chat.js.map +1 -1
  58. package/dist/C_Chat2.js +1 -1
  59. package/dist/C_Chat2.js.map +1 -1
  60. package/dist/{C_City-Cv5BESaN.css.map → C_City-Bam08Qv3.css.map} +1 -1
  61. package/dist/{C_City-DNKv4MpH.css.map → C_City-Bb3W-KaN.css.map} +1 -1
  62. package/dist/C_City.css +29 -29
  63. package/dist/C_City.js.map +1 -1
  64. package/dist/C_City2.js +1 -1
  65. package/dist/C_City2.js.map +1 -1
  66. package/dist/C_Code-BFi5xxnM.css.map +1 -0
  67. package/dist/C_Code-CZ7yfnri.css.map +1 -0
  68. package/dist/C_Code.cjs +1 -1
  69. package/dist/C_Code.css +3 -3
  70. package/dist/C_Code.js +1 -1
  71. package/dist/C_Code.js.map +1 -1
  72. package/dist/C_Code2.js +1 -1
  73. package/dist/C_Code2.js.map +1 -1
  74. package/dist/{C_CollapsePanel-CedsEM0N.css.map → C_CollapsePanel-CWkFCqNQ.css.map} +1 -1
  75. package/dist/{C_CollapsePanel-BkOivqn3.css.map → C_CollapsePanel-pcVJA_4z.css.map} +1 -1
  76. package/dist/C_CollapsePanel.cjs +1 -1
  77. package/dist/C_CollapsePanel.css +35 -35
  78. package/dist/C_CollapsePanel.js +1 -1
  79. package/dist/C_CollapsePanel.js.map +1 -1
  80. package/dist/C_CollapsePanel2.js +1 -1
  81. package/dist/C_CollapsePanel2.js.map +1 -1
  82. package/dist/{C_ContextMenu-CCsCeI39.css.map → C_ContextMenu-B3Cgz_wJ.css.map} +1 -1
  83. package/dist/{C_ContextMenu-DOTBeltf.css.map → C_ContextMenu-u1LixF3_.css.map} +1 -1
  84. package/dist/C_ContextMenu.cjs +1 -1
  85. package/dist/C_ContextMenu.css +17 -17
  86. package/dist/C_ContextMenu.js +1 -1
  87. package/dist/C_ContextMenu.js.map +1 -1
  88. package/dist/C_ContextMenu2.js +1 -1
  89. package/dist/C_ContextMenu2.js.map +1 -1
  90. package/dist/{C_Cron-C0-8b5af.css.map → C_Cron-Civir5-I.css.map} +1 -1
  91. package/dist/{C_Cron-DqHQ92LN.css.map → C_Cron-iw3qpMsy.css.map} +1 -1
  92. package/dist/C_Cron.cjs +1 -1
  93. package/dist/C_Cron.css +37 -37
  94. package/dist/C_Cron.js +1 -1
  95. package/dist/C_Cron.js.map +1 -1
  96. package/dist/C_Cron2.js +1 -1
  97. package/dist/C_Cron2.js.map +1 -1
  98. package/dist/C_Date.js.map +1 -1
  99. package/dist/C_Date2.js +1 -1
  100. package/dist/C_Date2.js.map +1 -1
  101. package/dist/{C_Draggable-Bq6o0qXn.css.map → C_Draggable-BCjIvIwT.css.map} +1 -1
  102. package/dist/{C_Draggable-r6nhx3yM.css.map → C_Draggable-DwkSlCOS.css.map} +1 -1
  103. package/dist/C_Draggable.css +46 -46
  104. package/dist/C_Draggable.js.map +1 -1
  105. package/dist/C_Draggable2.js +1 -1
  106. package/dist/C_Draggable2.js.map +1 -1
  107. package/dist/C_Editor-BfjjYQ9B.css.map +1 -0
  108. package/dist/C_Editor-Do2StvoJ.css.map +1 -0
  109. package/dist/C_Editor.css +55 -55
  110. package/dist/C_Editor.js.map +1 -1
  111. package/dist/C_Editor2.js +1 -1
  112. package/dist/C_Editor2.js.map +1 -1
  113. package/dist/{C_FilePreview-BVarVvnD.css.map → C_FilePreview-BhcbiXsV.css.map} +1 -1
  114. package/dist/{C_FilePreview-DHGlV4OR.css.map → C_FilePreview-DJudcIbW.css.map} +1 -1
  115. package/dist/C_FilePreview.cjs +1 -1
  116. package/dist/C_FilePreview.css +91 -91
  117. package/dist/C_FilePreview.js +1 -1
  118. package/dist/C_FilePreview.js.map +1 -1
  119. package/dist/C_FilePreview2.js +1 -1
  120. package/dist/C_FilePreview2.js.map +1 -1
  121. package/dist/{C_Form-BciQUPpS.css.map → C_Form-BtcAPIRi.css.map} +1 -1
  122. package/dist/{C_Form-CKHvXL3O.css.map → C_Form-D_gwQ7hC.css.map} +1 -1
  123. package/dist/C_Form.cjs +1 -1
  124. package/dist/C_Form.css +222 -222
  125. package/dist/C_Form.js +1 -1
  126. package/dist/C_Form.js.map +1 -1
  127. package/dist/C_Form2.js +1 -1
  128. package/dist/C_Form2.js.map +1 -1
  129. package/dist/{C_FormSearch-Bmd2CmG6.css.map → C_FormSearch-Bi4XYjjk.css.map} +1 -1
  130. package/dist/{C_FormSearch-DBNtnjaL.css.map → C_FormSearch-DUGOoX0u.css.map} +1 -1
  131. package/dist/C_FormSearch.css +45 -45
  132. package/dist/C_FormSearch.js.map +1 -1
  133. package/dist/C_FormSearch2.js +1 -1
  134. package/dist/C_FormSearch2.js.map +1 -1
  135. package/dist/{C_FormulaEditor-3WG2vtQl.css.map → C_FormulaEditor-CJk3SSUJ.css.map} +1 -1
  136. package/dist/{C_FormulaEditor-Cm0CokN5.css.map → C_FormulaEditor-Cy7mjfVO.css.map} +1 -1
  137. package/dist/C_FormulaEditor.cjs +1 -1
  138. package/dist/C_FormulaEditor.css +78 -78
  139. package/dist/C_FormulaEditor.js +1 -1
  140. package/dist/C_FormulaEditor.js.map +1 -1
  141. package/dist/C_FormulaEditor2.js +1 -1
  142. package/dist/C_FormulaEditor2.js.map +1 -1
  143. package/dist/C_FullCalendar-BQA0OjGB.css.map +1 -0
  144. package/dist/C_FullCalendar-ChJUosAi.css.map +1 -0
  145. package/dist/C_FullCalendar.css +3 -3
  146. package/dist/C_FullCalendar.js.map +1 -1
  147. package/dist/C_FullCalendar2.js +1 -1
  148. package/dist/C_FullCalendar2.js.map +1 -1
  149. package/dist/C_GlobalSearch.js.map +1 -1
  150. package/dist/C_GlobalSearch2.js.map +1 -1
  151. package/dist/C_Guide.cjs +1 -1
  152. package/dist/C_Guide.js +1 -1
  153. package/dist/C_Guide.js.map +1 -1
  154. package/dist/C_Guide2.js +1 -1
  155. package/dist/C_Guide2.js.map +1 -1
  156. package/dist/C_Icon.js.map +1 -1
  157. package/dist/C_Icon2.js +1 -1
  158. package/dist/C_Icon2.js.map +1 -1
  159. package/dist/{C_ImageCropper-D3L2-J_J.css.map → C_ImageCropper-BqZpkZfU.css.map} +1 -1
  160. package/dist/{C_ImageCropper-DrmUlaLi.css.map → C_ImageCropper-CylwGuzS.css.map} +1 -1
  161. package/dist/C_ImageCropper.cjs +1 -1
  162. package/dist/C_ImageCropper.css +10 -10
  163. package/dist/C_ImageCropper.js +1 -1
  164. package/dist/C_ImageCropper.js.map +1 -1
  165. package/dist/C_ImageCropper2.js +1 -1
  166. package/dist/C_ImageCropper2.js.map +1 -1
  167. package/dist/C_Language.cjs +1 -1
  168. package/dist/C_Language.js +1 -1
  169. package/dist/C_Language.js.map +1 -1
  170. package/dist/C_Language2.js +1 -1
  171. package/dist/C_Language2.js.map +1 -1
  172. package/dist/{C_Login-Cst_W1XC.css.map → C_Login-BkdnkBKX.css.map} +1 -1
  173. package/dist/{C_Login-DWZ_6K1x.css.map → C_Login-VkMM6OJ2.css.map} +1 -1
  174. package/dist/C_Login.cjs +1 -1
  175. package/dist/C_Login.css +72 -72
  176. package/dist/C_Login.js +1 -1
  177. package/dist/C_Login.js.map +1 -1
  178. package/dist/C_Login2.js +1 -1
  179. package/dist/C_Login2.js.map +1 -1
  180. package/dist/{C_Map-BCJmDnJT.css.map → C_Map-DNnBcY70.css.map} +1 -1
  181. package/dist/{C_Map-WUMXSAfy.css.map → C_Map-LEXIx6zM.css.map} +1 -1
  182. package/dist/C_Map.css +4 -4
  183. package/dist/C_Map.js.map +1 -1
  184. package/dist/C_Map2.js +1 -1
  185. package/dist/C_Map2.js.map +1 -1
  186. package/dist/{C_Markdown-7J0uPEuk.css.map → C_Markdown-DwmI0_0Q.css.map} +1 -1
  187. package/dist/{C_Markdown-C7Lg0_9z.css.map → C_Markdown-k0794RW0.css.map} +1 -1
  188. package/dist/C_Markdown.css +33 -33
  189. package/dist/C_Markdown.js.map +1 -1
  190. package/dist/C_Markdown2.js +1 -1
  191. package/dist/C_Markdown2.js.map +1 -1
  192. package/dist/C_Menu.js.map +1 -1
  193. package/dist/C_Menu2.js +1 -1
  194. package/dist/C_Menu2.js.map +1 -1
  195. package/dist/C_NotificationCenter.cjs +1 -1
  196. package/dist/C_NotificationCenter.js +1 -1
  197. package/dist/C_NotificationCenter.js.map +1 -1
  198. package/dist/C_NotificationCenter2.js +1 -1
  199. package/dist/C_NotificationCenter2.js.map +1 -1
  200. package/dist/C_OrgChart.js.map +1 -1
  201. package/dist/C_OrgChart2.js +1 -1
  202. package/dist/C_OrgChart2.js.map +1 -1
  203. package/dist/C_Progress.js.map +1 -1
  204. package/dist/C_Progress2.js +1 -1
  205. package/dist/C_Progress2.js.map +1 -1
  206. package/dist/{C_QRCode-DMxSyogU.css.map → C_QRCode-CFNTda_1.css.map} +1 -1
  207. package/dist/{C_QRCode-G7fiAkm4.css.map → C_QRCode-CmWr9lK-.css.map} +1 -1
  208. package/dist/C_QRCode.css +9 -9
  209. package/dist/C_QRCode.js.map +1 -1
  210. package/dist/C_QRCode2.js +1 -1
  211. package/dist/C_QRCode2.js.map +1 -1
  212. package/dist/{C_Signature-BJMvVPWT.css.map → C_Signature-BDx4ctsE.css.map} +1 -1
  213. package/dist/{C_Signature-BJUHx2BF.css.map → C_Signature-Bz_uNbwv.css.map} +1 -1
  214. package/dist/C_Signature.cjs +1 -1
  215. package/dist/C_Signature.css +15 -15
  216. package/dist/C_Signature.js +1 -1
  217. package/dist/C_Signature.js.map +1 -1
  218. package/dist/C_Signature2.js +1 -1
  219. package/dist/C_Signature2.js.map +1 -1
  220. package/dist/C_Skeleton.js.map +1 -1
  221. package/dist/C_Skeleton2.js +1 -1
  222. package/dist/C_Skeleton2.js.map +1 -1
  223. package/dist/{C_SplitPane-Br2eK8IG.css.map → C_SplitPane-BOwr1C7K.css.map} +1 -1
  224. package/dist/{C_SplitPane-DuyzUhKB.css.map → C_SplitPane-N-a_D-7F.css.map} +1 -1
  225. package/dist/C_SplitPane.cjs +1 -1
  226. package/dist/C_SplitPane.css +31 -31
  227. package/dist/C_SplitPane.js +1 -1
  228. package/dist/C_SplitPane.js.map +1 -1
  229. package/dist/C_SplitPane2.js +1 -1
  230. package/dist/C_SplitPane2.js.map +1 -1
  231. package/dist/C_Steps-Bk1krgiR.css.map +1 -0
  232. package/dist/C_Steps-Dn2CMpy1.css.map +1 -0
  233. package/dist/C_Steps.css +38 -38
  234. package/dist/C_Steps.js.map +1 -1
  235. package/dist/C_Steps2.js +1 -1
  236. package/dist/C_Steps2.js.map +1 -1
  237. package/dist/C_Table.cjs +1 -1
  238. package/dist/C_Table.js +1 -1
  239. package/dist/C_Table.js.map +1 -1
  240. package/dist/C_Table2.js +2 -2
  241. package/dist/C_Table2.js.map +1 -1
  242. package/dist/{C_TagsView-BsutyC3U.css.map → C_TagsView-DX3LecK1.css.map} +1 -1
  243. package/dist/{C_TagsView-Crm7yWg9.css.map → C_TagsView-DqOTa8bL.css.map} +1 -1
  244. package/dist/C_TagsView.cjs +1 -1
  245. package/dist/C_TagsView.css +36 -36
  246. package/dist/C_TagsView.js +1 -1
  247. package/dist/C_TagsView.js.map +1 -1
  248. package/dist/C_TagsView2.js +1 -1
  249. package/dist/C_TagsView2.js.map +1 -1
  250. package/dist/C_Theme.cjs +1 -1
  251. package/dist/C_Theme.js +1 -1
  252. package/dist/C_Theme.js.map +1 -1
  253. package/dist/C_Theme2.js +1 -1
  254. package/dist/C_Theme2.js.map +1 -1
  255. package/dist/C_Time-BzyQVvTS.css.map +1 -0
  256. package/dist/C_Time-DmpKLQHc.css.map +1 -0
  257. package/dist/C_Time.css +5 -5
  258. package/dist/C_Time.js.map +1 -1
  259. package/dist/C_Time2.js +1 -1
  260. package/dist/C_Time2.js.map +1 -1
  261. package/dist/{C_Timeline-DG70WtJP.css.map → C_Timeline-BKkimrZx.css.map} +1 -1
  262. package/dist/{C_Timeline-Dzxmmdjg.css.map → C_Timeline-DTuSCX6p.css.map} +1 -1
  263. package/dist/C_Timeline.cjs +1 -1
  264. package/dist/C_Timeline.css +45 -45
  265. package/dist/C_Timeline.js +1 -1
  266. package/dist/C_Timeline.js.map +1 -1
  267. package/dist/C_Timeline2.js +1 -1
  268. package/dist/C_Timeline2.js.map +1 -1
  269. package/dist/{C_Transfer-CCEqnC-v.css.map → C_Transfer-BOB6OBqS.css.map} +1 -1
  270. package/dist/{C_Transfer-CStPm4NP.css.map → C_Transfer-Dpq7ezWC.css.map} +1 -1
  271. package/dist/C_Transfer.cjs +1 -1
  272. package/dist/C_Transfer.css +31 -31
  273. package/dist/C_Transfer.js +1 -1
  274. package/dist/C_Transfer.js.map +1 -1
  275. package/dist/C_Transfer2.js +1 -1
  276. package/dist/C_Transfer2.js.map +1 -1
  277. package/dist/{C_Tree-B-Le4hjQ.css.map → C_Tree-D98nX9qT.css.map} +1 -1
  278. package/dist/{C_Tree-DnGc_MPb.css.map → C_Tree-ulfm7b-P.css.map} +1 -1
  279. package/dist/C_Tree.cjs +1 -1
  280. package/dist/C_Tree.css +33 -33
  281. package/dist/C_Tree.js +1 -1
  282. package/dist/C_Tree.js.map +1 -1
  283. package/dist/C_Tree2.js +1 -1
  284. package/dist/C_Tree2.js.map +1 -1
  285. package/dist/{C_Upload-CFAxVGVz.css.map → C_Upload-BR9fg5r4.css.map} +1 -1
  286. package/dist/{C_Upload-D8_QeSV0.css.map → C_Upload-CPqf74Ea.css.map} +1 -1
  287. package/dist/C_Upload.cjs +1 -1
  288. package/dist/C_Upload.css +4 -4
  289. package/dist/C_Upload.js +1 -1
  290. package/dist/C_Upload.js.map +1 -1
  291. package/dist/C_Upload2.js +2 -2
  292. package/dist/C_Upload2.js.map +1 -1
  293. package/dist/{C_VideoPlayer-Cdgv4Zq0.css.map → C_VideoPlayer-4J96tKfK.css.map} +1 -1
  294. package/dist/{C_VideoPlayer-rm0MODUv.css.map → C_VideoPlayer-D35seHkm.css.map} +1 -1
  295. package/dist/C_VideoPlayer.css +13 -13
  296. package/dist/C_VideoPlayer.js.map +1 -1
  297. package/dist/C_VideoPlayer2.js +3 -3
  298. package/dist/C_VideoPlayer2.js.map +1 -1
  299. package/dist/{C_VtableGantt-BpY-Rng3.css.map → C_VtableGantt-C2lxFmWg.css.map} +1 -1
  300. package/dist/{C_VtableGantt-DB87-jdS.css.map → C_VtableGantt-Dwnkw_WL.css.map} +1 -1
  301. package/dist/C_VtableGantt.cjs +1 -1
  302. package/dist/C_VtableGantt.css +15 -15
  303. package/dist/C_VtableGantt.js +1 -1
  304. package/dist/C_VtableGantt.js.map +1 -1
  305. package/dist/C_VtableGantt2.js +1 -1
  306. package/dist/C_VtableGantt2.js.map +1 -1
  307. package/dist/C_WaterFall.js.map +1 -1
  308. package/dist/C_WaterFall2.js +1 -1
  309. package/dist/C_WaterFall2.js.map +1 -1
  310. package/dist/{C_WorkFlow-7F6op6qN.css.map → C_WorkFlow-2hJfvvTK.css.map} +1 -1
  311. package/dist/{C_WorkFlow-Cy3HWA6A.css.map → C_WorkFlow-DHoNjl8-.css.map} +1 -1
  312. package/dist/C_WorkFlow.cjs +1 -1
  313. package/dist/C_WorkFlow.css +108 -108
  314. package/dist/C_WorkFlow.js +1 -1
  315. package/dist/C_WorkFlow.js.map +1 -1
  316. package/dist/C_WorkFlow2.js +1 -1
  317. package/dist/C_WorkFlow2.js.map +1 -1
  318. package/dist/constants.d.ts +3 -3
  319. package/dist/constants2.d.ts +4 -4
  320. package/dist/constants3.d.ts +3 -3
  321. package/dist/constants4.d.ts +4 -4
  322. package/dist/constants5.d.ts +2 -2
  323. package/dist/data.d.ts +2 -2
  324. package/dist/index.cjs.map +1 -1
  325. package/dist/index.js.map +1 -1
  326. package/dist/index.vue.d.ts +1 -1
  327. package/dist/index10.vue.d.ts +1 -1
  328. package/dist/index11.vue.d.ts +4 -4
  329. package/dist/index12.vue.d.ts +1 -1
  330. package/dist/index13.vue.d.ts +2 -2
  331. package/dist/index14.vue.d.ts +3 -3
  332. package/dist/index15.vue.d.ts +3 -3
  333. package/dist/index16.vue.d.ts +2 -2
  334. package/dist/index17.vue.d.ts +1 -1
  335. package/dist/index18.vue.d.ts +5 -5
  336. package/dist/index2.vue.d.ts +1 -1
  337. package/dist/index20.vue.d.ts +1 -1
  338. package/dist/index22.vue.d.ts +1 -1
  339. package/dist/index23.vue.d.ts +2 -2
  340. package/dist/index24.vue.d.ts +1 -1
  341. package/dist/index26.vue.d.ts +3 -3
  342. package/dist/index27.vue.d.ts +2 -2
  343. package/dist/index28.vue.d.ts +3 -3
  344. package/dist/index3.vue.d.ts +3 -3
  345. package/dist/index4.vue.d.ts +2 -2
  346. package/dist/index6.vue.d.ts +6 -6
  347. package/dist/index7.vue.d.ts +2 -2
  348. package/dist/index8.vue.d.ts +1 -1
  349. package/dist/index9.vue.d.ts +2 -2
  350. package/dist/menuAdapter.js.map +1 -1
  351. package/dist/resolver.cjs.map +1 -1
  352. package/dist/resolver.js.map +1 -1
  353. package/dist/style.css +1483 -1483
  354. package/dist/themes/glass-morphism.css +1 -0
  355. package/dist/useCalendarEvents.d.ts +1 -1
  356. package/dist/useCollapsePanel.d.ts +1 -1
  357. package/dist/useCropperCore.d.ts +2 -2
  358. package/dist/useDraggableLayout.d.ts +4 -4
  359. package/dist/useDynamicFormState.d.ts +21 -21
  360. package/dist/useEdgeInteraction.d.ts +2 -2
  361. package/dist/useModalEdit.d.ts +1 -1
  362. package/dist/useQRCode.d.ts +3 -3
  363. package/dist/useSearchState.d.ts +2 -2
  364. package/dist/useSignatureHistory.d.ts +4 -4
  365. package/dist/useSplitResize.d.ts +2 -2
  366. package/dist/useTimeSelection.d.ts +2 -2
  367. package/dist/useTreeOperations.d.ts +3 -3
  368. package/dist/useWorkflowValidation.d.ts +6 -6
  369. package/package.json +11 -8
  370. package/dist/C_ActionBar-jZPsiXtT.css.map +0 -1
  371. package/dist/C_ActionBar-nnfbZCea.css.map +0 -1
  372. package/dist/C_Code-DPZlNSxL.css.map +0 -1
  373. package/dist/C_Code-avZjAnHD.css.map +0 -1
  374. package/dist/C_Editor-C49qURgb.css.map +0 -1
  375. package/dist/C_Editor-DuxBD9Qg.css.map +0 -1
  376. package/dist/C_FullCalendar-1U4VlG7X.css.map +0 -1
  377. package/dist/C_FullCalendar-DLUdCtqf.css.map +0 -1
  378. package/dist/C_Steps-BHYNJI1l.css.map +0 -1
  379. package/dist/C_Steps-DY7vl-4I.css.map +0 -1
  380. package/dist/C_Time-Bd_e1YDN.css.map +0 -1
  381. package/dist/C_Time-CKb_fwdm.css.map +0 -1
package/dist/C_Code2.js CHANGED
@@ -1,2 +1,2 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{NButton as n,NCode as r,NModal as i,NSpin as a,NTooltip as o}from"naive-ui";import{Transition as s,computed as c,createBlock as l,createCommentVNode as u,createElementBlock as d,createElementVNode as f,createTextVNode as p,createVNode as m,defineComponent as h,inject as g,nextTick as _,normalizeStyle as v,onMounted as y,onUnmounted as b,openBlock as x,ref as S,toDisplayString as C,watch as w,withCtx as T}from"vue";const E={class:`c-code-wrapper`},D={key:0,class:`c-code-header`},O={class:`c-code-title`},k={class:`c-code-actions`},A={class:`c-code-content`},j={key:0,class:`floating-copy-btn`},M={key:0,class:`c-code-loading`},N={class:`ml-2`},P={class:`fullscreen-content`},F={class:`fullscreen-header`},I={class:`fullscreen-title`},L={class:`fullscreen-body`};var R=t(h({name:`CCode`,__name:`index`,props:{code:{default:``},language:{default:`text`},title:{},showHeader:{type:Boolean,default:!0},showLineNumbers:{type:Boolean,default:!0},wordWrap:{type:Boolean,default:!1},trim:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!1},maxHeight:{},autoLoadLanguage:{type:Boolean,default:!0}},emits:[`copy`,`click`,`fullscreen`],setup(t,{expose:h,emit:R}){let z=t,B=R,V=g(`highlightManager`,null),H=S(!1),U=S(!1),W=S(!1),G=S(!1),K=c(()=>{try{return V?.getHljs?.()||null}catch(e){return console.warn(`Highlight.js not available:`,e),null}}),q=c(()=>({javascript:`mdi:language-javascript`,typescript:`mdi:language-typescript`,python:`mdi:language-python`,html:`mdi:language-html5`,css:`mdi:language-css3`,vue:`mdi:vuejs`,react:`mdi:react`,json:`mdi:code-json`,java:`mdi:language-java`,cpp:`mdi:language-cpp`,go:`mdi:language-go`,rust:`mdi:language-rust`,php:`mdi:language-php`,csharp:`mdi:language-csharp`,sql:`mdi:database`,yaml:`mdi:file-code`,xml:`mdi:xml`,markdown:`mdi:language-markdown`,bash:`mdi:bash`,shell:`mdi:console`,powershell:`mdi:powershell`,swift:`mdi:language-swift`,kotlin:`mdi:language-kotlin`,ruby:`mdi:language-ruby`})[z.language.toLowerCase()]||`mdi:code-braces`),J=c(()=>z.maxHeight?{maxHeight:typeof z.maxHeight==`number`?`${z.maxHeight}px`:z.maxHeight}:{});w(()=>z.language,async e=>{if(!(!z.autoLoadLanguage||e===`text`||!V)&&!(V.getLoadedLanguages?.()||[]).includes(e)){W.value=!0;try{await V.loadLanguage?.(e),await _()}catch(t){console.warn(`Failed to load language: ${e}`,t)}finally{W.value=!1}}},{immediate:!0});async function Y(){if(!H.value){H.value=!0;try{await navigator.clipboard.writeText(z.code),B(`copy`,z.code)}catch(e){console.error(`Copy failed:`,e)}finally{H.value=!1}}}function X(){U.value=!U.value,B(`fullscreen`,U.value)}function Z(e){return{javascript:`JavaScript`,typescript:`TypeScript`,python:`Python`,java:`Java`,cpp:`C++`,csharp:`C#`,php:`PHP`,go:`Go`,rust:`Rust`,html:`HTML`,css:`CSS`,json:`JSON`,bash:`Bash`,shell:`Shell`,yaml:`YAML`,xml:`XML`,markdown:`Markdown`,sql:`SQL`,powershell:`PowerShell`,swift:`Swift`,kotlin:`Kotlin`,ruby:`Ruby`,vue:`Vue`,react:`React`}[e.toLowerCase()]||e.toUpperCase()}function Q(e){e.key===`Escape`&&U.value&&X()}return y(()=>{document.addEventListener(`keydown`,Q)}),b(()=>{document.removeEventListener(`keydown`,Q)}),h({copyCode:Y,toggleFullscreen:X}),(t,c)=>{let h=n,g=o,_=r,y=a,b=i;return x(),d(`div`,E,[u(` 代码标题栏 `),t.showHeader?(x(),d(`div`,D,[f(`div`,O,[q.value?(x(),l(e,{key:0,name:q.value,size:16,class:`mr-2`},null,8,[`name`])):u(`v-if`,!0),f(`span`,null,C(t.title||Z(t.language)),1)]),f(`div`,k,[m(g,{trigger:`hover`},{trigger:T(()=>[m(h,{size:`tiny`,quaternary:``,onClick:Y,loading:H.value},{icon:T(()=>[m(e,{name:H.value?`mdi:loading`:`mdi:content-copy`,loading:H.value},null,8,[`name`,`loading`])]),_:1},8,[`loading`])]),default:T(()=>[c[4]||=p(` 复制代码 `,-1)]),_:1,__:[4]}),t.showFullscreen?(x(),l(g,{key:0,trigger:`hover`},{trigger:T(()=>[m(h,{size:`tiny`,quaternary:``,onClick:X},{icon:T(()=>[m(e,{name:U.value?`mdi:fullscreen-exit`:`mdi:fullscreen`},null,8,[`name`])]),_:1})]),default:T(()=>[p(` `+C(U.value?`退出全屏`:`全屏查看`),1)]),_:1})):u(`v-if`,!0)])])):u(`v-if`,!0),u(` 代码内容区域 `),f(`div`,A,[f(`div`,{class:`code-wrapper`,onMouseenter:c[1]||=e=>G.value=!0,onMouseleave:c[2]||=e=>G.value=!1},[(x(),l(_,{key:`code-${t.language}-${t.code.length}`,code:t.code,language:t.language,hljs:K.value,"show-line-numbers":t.showLineNumbers,"word-wrap":t.wordWrap,trim:t.trim,style:v(J.value),onClick:c[0]||=e=>B(`click`,e)},null,8,[`code`,`language`,`hljs`,`show-line-numbers`,`word-wrap`,`trim`,`style`])),u(` 悬浮复制按钮 `),m(s,{name:`fade`},{default:T(()=>[G.value&&!t.showHeader?(x(),d(`div`,j,[m(g,{trigger:`hover`},{trigger:T(()=>[m(h,{size:`small`,quaternary:``,onClick:Y,loading:H.value,class:`copy-floating`},{icon:T(()=>[m(e,{name:H.value?`mdi:loading`:`mdi:content-copy`,loading:H.value},null,8,[`name`,`loading`])]),_:1},8,[`loading`])]),default:T(()=>[c[5]||=p(` 复制代码 `,-1)]),_:1,__:[5]})])):u(`v-if`,!0)]),_:1})],32),u(` 语言加载状态 `),W.value?(x(),d(`div`,M,[m(y,{size:`small`}),f(`span`,N,`正在加载 `+C(t.language)+` 语言包...`,1)])):u(`v-if`,!0)]),u(` 全屏模态框 `),m(b,{show:U.value,"onUpdate:show":c[3]||=e=>U.value=e,"mask-closable":!1,"show-icon":!1,bordered:!1,style:{width:`100vw`,height:`100vh`,margin:`0`,padding:`0`}},{default:T(()=>[f(`div`,P,[f(`div`,F,[f(`div`,I,[q.value?(x(),l(e,{key:0,name:q.value,size:16,class:`mr-2`},null,8,[`name`])):u(`v-if`,!0),f(`span`,null,C(t.title||Z(t.language)),1)]),m(h,{size:`small`,quaternary:``,onClick:X},{icon:T(()=>[m(e,{name:`mdi:close`})]),_:1})]),f(`div`,L,[(x(),l(_,{key:`fullscreen-code-${t.language}-${t.code.length}`,code:t.code,language:t.language,hljs:K.value,"show-line-numbers":t.showLineNumbers,"word-wrap":t.wordWrap,trim:t.trim},null,8,[`code`,`language`,`hljs`,`show-line-numbers`,`word-wrap`,`trim`]))])])]),_:1},8,[`show`])])}}}),[[`__scopeId`,`data-v-2f676c83`]]);export{R as t};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Transition as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,inject as d,nextTick as f,normalizeStyle as p,onMounted as m,onUnmounted as h,openBlock as g,ref as _,resolveComponent as v,toDisplayString as y,watch as b,withCtx as x}from"vue";const S={class:`c-code-wrapper`},C={key:0,class:`c-code-header`},w={class:`c-code-title`},T={class:`c-code-actions`},E={class:`c-code-content`},D={key:0,class:`floating-copy-btn`},O={key:0,class:`c-code-loading`},k={class:`ml-2`},A={class:`fullscreen-content`},j={class:`fullscreen-header`},M={class:`fullscreen-title`},N={class:`fullscreen-body`};var P=t(u({name:`CCode`,__name:`index`,props:{code:{default:``},language:{default:`text`},title:{},showHeader:{type:Boolean,default:!0},showLineNumbers:{type:Boolean,default:!0},wordWrap:{type:Boolean,default:!1},trim:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!1},maxHeight:{},autoLoadLanguage:{type:Boolean,default:!0}},emits:[`copy`,`click`,`fullscreen`],setup(t,{expose:u,emit:P}){let F=t,I=P,L=d(`highlightManager`,null),R=_(!1),z=_(!1),B=_(!1),V=_(!1),H=r(()=>{try{return L?.getHljs?.()||null}catch(e){return console.warn(`Highlight.js not available:`,e),null}}),U=r(()=>({javascript:`mdi:language-javascript`,typescript:`mdi:language-typescript`,python:`mdi:language-python`,html:`mdi:language-html5`,css:`mdi:language-css3`,vue:`mdi:vuejs`,react:`mdi:react`,json:`mdi:code-json`,java:`mdi:language-java`,cpp:`mdi:language-cpp`,go:`mdi:language-go`,rust:`mdi:language-rust`,php:`mdi:language-php`,csharp:`mdi:language-csharp`,sql:`mdi:database`,yaml:`mdi:file-code`,xml:`mdi:xml`,markdown:`mdi:language-markdown`,bash:`mdi:bash`,shell:`mdi:console`,powershell:`mdi:powershell`,swift:`mdi:language-swift`,kotlin:`mdi:language-kotlin`,ruby:`mdi:language-ruby`})[F.language.toLowerCase()]||`mdi:code-braces`),W=r(()=>F.maxHeight?{maxHeight:typeof F.maxHeight==`number`?`${F.maxHeight}px`:F.maxHeight}:{});b(()=>F.language,async e=>{if(!(!F.autoLoadLanguage||e===`text`||!L)&&!(L.getLoadedLanguages?.()||[]).includes(e)){B.value=!0;try{await L.loadLanguage?.(e),await f()}catch(t){console.warn(`Failed to load language: ${e}`,t)}finally{B.value=!1}}},{immediate:!0});async function G(){if(!R.value){R.value=!0;try{await navigator.clipboard.writeText(F.code),I(`copy`,F.code)}catch(e){console.error(`Copy failed:`,e)}finally{R.value=!1}}}function K(){z.value=!z.value,I(`fullscreen`,z.value)}function q(e){return{javascript:`JavaScript`,typescript:`TypeScript`,python:`Python`,java:`Java`,cpp:`C++`,csharp:`C#`,php:`PHP`,go:`Go`,rust:`Rust`,html:`HTML`,css:`CSS`,json:`JSON`,bash:`Bash`,shell:`Shell`,yaml:`YAML`,xml:`XML`,markdown:`Markdown`,sql:`SQL`,powershell:`PowerShell`,swift:`Swift`,kotlin:`Kotlin`,ruby:`Ruby`,vue:`Vue`,react:`React`}[e.toLowerCase()]||e.toUpperCase()}function J(e){e.key===`Escape`&&z.value&&K()}return m(()=>{document.addEventListener(`keydown`,J)}),h(()=>{document.removeEventListener(`keydown`,J)}),u({copyCode:G,toggleFullscreen:K}),(t,r)=>{let u=v(`NButton`),d=v(`NTooltip`),f=v(`NCode`),m=v(`NSpin`),h=v(`NModal`);return g(),o(`div`,S,[a(` 代码标题栏 `),t.showHeader?(g(),o(`div`,C,[s(`div`,w,[U.value?(g(),i(e,{key:0,name:U.value,size:16,class:`mr-2`},null,8,[`name`])):a(`v-if`,!0),s(`span`,null,y(t.title||q(t.language)),1)]),s(`div`,T,[l(d,{trigger:`hover`},{trigger:x(()=>[l(u,{size:`tiny`,quaternary:``,onClick:G,loading:R.value},{icon:x(()=>[l(e,{name:R.value?`mdi:loading`:`mdi:content-copy`,loading:R.value},null,8,[`name`,`loading`])]),_:1},8,[`loading`])]),default:x(()=>[r[4]||=c(` 复制代码 `,-1)]),_:1,__:[4]}),t.showFullscreen?(g(),i(d,{key:0,trigger:`hover`},{trigger:x(()=>[l(u,{size:`tiny`,quaternary:``,onClick:K},{icon:x(()=>[l(e,{name:z.value?`mdi:fullscreen-exit`:`mdi:fullscreen`},null,8,[`name`])]),_:1})]),default:x(()=>[c(` `+y(z.value?`退出全屏`:`全屏查看`),1)]),_:1})):a(`v-if`,!0)])])):a(`v-if`,!0),a(` 代码内容区域 `),s(`div`,E,[s(`div`,{class:`code-wrapper`,onMouseenter:r[1]||=e=>V.value=!0,onMouseleave:r[2]||=e=>V.value=!1},[(g(),i(f,{key:`code-${t.language}-${t.code.length}`,code:t.code,language:t.language,hljs:H.value,"show-line-numbers":t.showLineNumbers,"word-wrap":t.wordWrap,trim:t.trim,style:p(W.value),onClick:r[0]||=e=>I(`click`,e)},null,8,[`code`,`language`,`hljs`,`show-line-numbers`,`word-wrap`,`trim`,`style`])),a(` 悬浮复制按钮 `),l(n,{name:`fade`},{default:x(()=>[V.value&&!t.showHeader?(g(),o(`div`,D,[l(d,{trigger:`hover`},{trigger:x(()=>[l(u,{size:`small`,quaternary:``,onClick:G,loading:R.value,class:`copy-floating`},{icon:x(()=>[l(e,{name:R.value?`mdi:loading`:`mdi:content-copy`,loading:R.value},null,8,[`name`,`loading`])]),_:1},8,[`loading`])]),default:x(()=>[r[5]||=c(` 复制代码 `,-1)]),_:1,__:[5]})])):a(`v-if`,!0)]),_:1})],32),a(` 语言加载状态 `),B.value?(g(),o(`div`,O,[l(m,{size:`small`}),s(`span`,k,`正在加载 `+y(t.language)+` 语言包...`,1)])):a(`v-if`,!0)]),a(` 全屏模态框 `),l(h,{show:z.value,"onUpdate:show":r[3]||=e=>z.value=e,"mask-closable":!1,"show-icon":!1,bordered:!1,style:{width:`100vw`,height:`100vh`,margin:`0`,padding:`0`}},{default:x(()=>[s(`div`,A,[s(`div`,j,[s(`div`,M,[U.value?(g(),i(e,{key:0,name:U.value,size:16,class:`mr-2`},null,8,[`name`])):a(`v-if`,!0),s(`span`,null,y(t.title||q(t.language)),1)]),l(u,{size:`small`,quaternary:``,onClick:K},{icon:x(()=>[l(e,{name:`mdi:close`})]),_:1})]),s(`div`,N,[(g(),i(f,{key:`fullscreen-code-${t.language}-${t.code.length}`,code:t.code,language:t.language,hljs:H.value,"show-line-numbers":t.showLineNumbers,"word-wrap":t.wordWrap,trim:t.trim},null,8,[`code`,`language`,`hljs`,`show-line-numbers`,`word-wrap`,`trim`]))])])]),_:1},8,[`show`])])}}}),[[`__scopeId`,`data-v-bc1cd0d6`]]);export{P as t};
2
2
  //# sourceMappingURL=C_Code2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"C_Code2.js","names":["showHeader","title","language","showFullscreen","code","showLineNumbers","wordWrap","trim"],"sources":["../src/components/C_Code/index.vue","../src/components/C_Code/index.vue","../src/components/C_Code/index.vue"],"sourcesContent":["/* unplugin-vue-components disabled */<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2025-06-19\r\n * @Description: 全局代码高亮组件\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div class=\"c-code-wrapper\">\r\n <!-- 代码标题栏 -->\r\n <div v-if=\"showHeader\" class=\"c-code-header\">\r\n <div class=\"c-code-title\">\r\n <C_Icon\r\n v-if=\"languageIcon\"\r\n :name=\"languageIcon\"\r\n :size=\"16\"\r\n class=\"mr-2\"\r\n />\r\n <span>{{ title || getLanguageTitle(language) }}</span>\r\n </div>\r\n <div class=\"c-code-actions\">\r\n <NTooltip trigger=\"hover\">\r\n <template #trigger>\r\n <NButton\r\n size=\"tiny\"\r\n quaternary\r\n @click=\"copyCode\"\r\n :loading=\"copying\"\r\n >\r\n <template #icon>\r\n <C_Icon\r\n :name=\"copying ? 'mdi:loading' : 'mdi:content-copy'\"\r\n :loading=\"copying\"\r\n />\r\n </template>\r\n </NButton>\r\n </template>\r\n 复制代码\r\n </NTooltip>\r\n\r\n <NTooltip v-if=\"showFullscreen\" trigger=\"hover\">\r\n <template #trigger>\r\n <NButton size=\"tiny\" quaternary @click=\"toggleFullscreen\">\r\n <template #icon>\r\n <C_Icon\r\n :name=\"\r\n isFullscreen ? 'mdi:fullscreen-exit' : 'mdi:fullscreen'\r\n \"\r\n />\r\n </template>\r\n </NButton>\r\n </template>\r\n {{ isFullscreen ? \"退出全屏\" : \"全屏查看\" }}\r\n </NTooltip>\r\n </div>\r\n </div>\r\n\r\n <!-- 代码内容区域 -->\r\n <div class=\"c-code-content\">\r\n <div\r\n class=\"code-wrapper\"\r\n @mouseenter=\"showFloatingCopy = true\"\r\n @mouseleave=\"showFloatingCopy = false\"\r\n >\r\n <NCode\r\n :key=\"`code-${language}-${code.length}`\"\r\n :code=\"code\"\r\n :language=\"language\"\r\n :hljs=\"hljs\"\r\n :show-line-numbers=\"showLineNumbers\"\r\n :word-wrap=\"wordWrap\"\r\n :trim=\"trim\"\r\n :style=\"codeStyle\"\r\n @click=\"emit('click', $event)\"\r\n />\r\n\r\n <!-- 悬浮复制按钮 -->\r\n <Transition name=\"fade\">\r\n <div v-if=\"showFloatingCopy && !showHeader\" class=\"floating-copy-btn\">\r\n <NTooltip trigger=\"hover\">\r\n <template #trigger>\r\n <NButton\r\n size=\"small\"\r\n quaternary\r\n @click=\"copyCode\"\r\n :loading=\"copying\"\r\n class=\"copy-floating\"\r\n >\r\n <template #icon>\r\n <C_Icon\r\n :name=\"copying ? 'mdi:loading' : 'mdi:content-copy'\"\r\n :loading=\"copying\"\r\n />\r\n </template>\r\n </NButton>\r\n </template>\r\n 复制代码\r\n </NTooltip>\r\n </div>\r\n </Transition>\r\n </div>\r\n\r\n <!-- 语言加载状态 -->\r\n <div v-if=\"languageLoading\" class=\"c-code-loading\">\r\n <NSpin size=\"small\" />\r\n <span class=\"ml-2\">正在加载 {{ language }} 语言包...</span>\r\n </div>\r\n </div>\r\n\r\n <!-- 全屏模态框 -->\r\n <NModal\r\n v-model:show=\"isFullscreen\"\r\n :mask-closable=\"false\"\r\n :show-icon=\"false\"\r\n :bordered=\"false\"\r\n style=\"width: 100vw; height: 100vh; margin: 0; padding: 0\"\r\n >\r\n <div class=\"fullscreen-content\">\r\n <div class=\"fullscreen-header\">\r\n <div class=\"fullscreen-title\">\r\n <C_Icon\r\n v-if=\"languageIcon\"\r\n :name=\"languageIcon\"\r\n :size=\"16\"\r\n class=\"mr-2\"\r\n />\r\n <span>{{ title || getLanguageTitle(language) }}</span>\r\n </div>\r\n <NButton size=\"small\" quaternary @click=\"toggleFullscreen\">\r\n <template #icon>\r\n <C_Icon name=\"mdi:close\" />\r\n </template>\r\n </NButton>\r\n </div>\r\n <div class=\"fullscreen-body\">\r\n <NCode\r\n :key=\"`fullscreen-code-${language}-${code.length}`\"\r\n :code=\"code\"\r\n :language=\"language\"\r\n :hljs=\"hljs\"\r\n :show-line-numbers=\"showLineNumbers\"\r\n :word-wrap=\"wordWrap\"\r\n :trim=\"trim\"\r\n />\r\n </div>\r\n </div>\r\n </NModal>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {\r\n ref,\r\n computed,\r\n watch,\r\n onMounted,\r\n onUnmounted,\r\n nextTick,\r\n inject,\r\n} from \"vue\";\r\nimport C_Icon from \"../C_Icon/index.vue\";\r\n\r\n// 直接在组件内定义 HighlightManager 接口,避免导入错误\r\ninterface HighlightManager {\r\n getHljs?: () => any;\r\n loadLanguage?: (language: string) => Promise<void>;\r\n getLoadedLanguages?: () => string[];\r\n}\r\n\r\n// 组件名称定义\r\ndefineOptions({\r\n name: \"CCode\",\r\n});\r\n\r\ninterface Props {\r\n code: string;\r\n language?: string;\r\n title?: string;\r\n showHeader?: boolean;\r\n showLineNumbers?: boolean;\r\n wordWrap?: boolean;\r\n trim?: boolean;\r\n showFullscreen?: boolean;\r\n maxHeight?: string | number;\r\n autoLoadLanguage?: boolean;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n code: \"\",\r\n language: \"text\",\r\n showHeader: true,\r\n showLineNumbers: true,\r\n wordWrap: false,\r\n trim: true,\r\n showFullscreen: false,\r\n autoLoadLanguage: true,\r\n});\r\n\r\nconst emit = defineEmits<{\r\n copy: [code: string];\r\n click: [event: MouseEvent];\r\n fullscreen: [isFullscreen: boolean];\r\n}>();\r\n\r\n// 尝试获取 highlight 实例(如果用户安装了插件)\r\nconst highlightManager = inject<HighlightManager | null>(\r\n \"highlightManager\",\r\n null,\r\n);\r\n\r\nconst copying = ref(false);\r\nconst isFullscreen = ref(false);\r\nconst languageLoading = ref(false);\r\nconst showFloatingCopy = ref(false);\r\n\r\n// 安全地获取 hljs 实例\r\nconst hljs = computed(() => {\r\n try {\r\n return highlightManager?.getHljs?.() || null;\r\n } catch (error) {\r\n console.warn(\"Highlight.js not available:\", error);\r\n return null;\r\n }\r\n});\r\n\r\n// 语言图标映射(使用标准的 MDI 图标名称)\r\nconst languageIcon = computed(() => {\r\n const iconMap: Record<string, string> = {\r\n javascript: \"mdi:language-javascript\",\r\n typescript: \"mdi:language-typescript\",\r\n python: \"mdi:language-python\",\r\n html: \"mdi:language-html5\",\r\n css: \"mdi:language-css3\",\r\n vue: \"mdi:vuejs\",\r\n react: \"mdi:react\",\r\n json: \"mdi:code-json\",\r\n java: \"mdi:language-java\",\r\n cpp: \"mdi:language-cpp\",\r\n go: \"mdi:language-go\",\r\n rust: \"mdi:language-rust\",\r\n php: \"mdi:language-php\",\r\n csharp: \"mdi:language-csharp\",\r\n sql: \"mdi:database\",\r\n yaml: \"mdi:file-code\",\r\n xml: \"mdi:xml\",\r\n markdown: \"mdi:language-markdown\",\r\n bash: \"mdi:bash\",\r\n shell: \"mdi:console\",\r\n powershell: \"mdi:powershell\",\r\n swift: \"mdi:language-swift\",\r\n kotlin: \"mdi:language-kotlin\",\r\n ruby: \"mdi:language-ruby\",\r\n };\r\n return iconMap[props.language.toLowerCase()] || \"mdi:code-braces\";\r\n});\r\n\r\n// 代码样式\r\nconst codeStyle = computed(() => {\r\n if (!props.maxHeight) return {};\r\n return {\r\n maxHeight:\r\n typeof props.maxHeight === \"number\"\r\n ? `${props.maxHeight}px`\r\n : props.maxHeight,\r\n };\r\n});\r\n\r\n// 自动加载语言包\r\nwatch(\r\n () => props.language,\r\n async (newLanguage) => {\r\n if (!props.autoLoadLanguage || newLanguage === \"text\" || !highlightManager)\r\n return;\r\n\r\n const loadedLanguages = highlightManager.getLoadedLanguages?.() || [];\r\n if (loadedLanguages.includes(newLanguage)) return;\r\n\r\n languageLoading.value = true;\r\n try {\r\n await highlightManager.loadLanguage?.(newLanguage);\r\n await nextTick();\r\n } catch (error) {\r\n console.warn(`Failed to load language: ${newLanguage}`, error);\r\n } finally {\r\n languageLoading.value = false;\r\n }\r\n },\r\n { immediate: true },\r\n);\r\n\r\n/**\r\n * 复制代码到剪贴板\r\n */\r\nasync function copyCode() {\r\n if (copying.value) return;\r\n copying.value = true;\r\n\r\n try {\r\n await navigator.clipboard.writeText(props.code);\r\n emit(\"copy\", props.code);\r\n } catch (error) {\r\n console.error(\"Copy failed:\", error);\r\n } finally {\r\n copying.value = false;\r\n }\r\n}\r\n\r\n/**\r\n * 切换全屏显示状态\r\n */\r\nfunction toggleFullscreen() {\r\n isFullscreen.value = !isFullscreen.value;\r\n emit(\"fullscreen\", isFullscreen.value);\r\n}\r\n\r\n/**\r\n * 获取编程语言的显示标题\r\n */\r\nfunction getLanguageTitle(lang: string): string {\r\n const titleMap: Record<string, string> = {\r\n javascript: \"JavaScript\",\r\n typescript: \"TypeScript\",\r\n python: \"Python\",\r\n java: \"Java\",\r\n cpp: \"C++\",\r\n csharp: \"C#\",\r\n php: \"PHP\",\r\n go: \"Go\",\r\n rust: \"Rust\",\r\n html: \"HTML\",\r\n css: \"CSS\",\r\n json: \"JSON\",\r\n bash: \"Bash\",\r\n shell: \"Shell\",\r\n yaml: \"YAML\",\r\n xml: \"XML\",\r\n markdown: \"Markdown\",\r\n sql: \"SQL\",\r\n powershell: \"PowerShell\",\r\n swift: \"Swift\",\r\n kotlin: \"Kotlin\",\r\n ruby: \"Ruby\",\r\n vue: \"Vue\",\r\n react: \"React\",\r\n };\r\n return titleMap[lang.toLowerCase()] || lang.toUpperCase();\r\n}\r\n\r\n/**\r\n * 处理ESC键退出全屏\r\n */\r\nfunction handleEscapeKey(event: KeyboardEvent) {\r\n if (event.key === \"Escape\" && isFullscreen.value) {\r\n toggleFullscreen();\r\n }\r\n}\r\n\r\nonMounted(() => {\r\n document.addEventListener(\"keydown\", handleEscapeKey);\r\n});\r\n\r\nonUnmounted(() => {\r\n document.removeEventListener(\"keydown\", handleEscapeKey);\r\n});\r\n\r\ndefineExpose({\r\n copyCode,\r\n toggleFullscreen,\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.mr-2 {\r\n margin-right: 0.5rem;\r\n}\r\n\r\n.ml-2 {\r\n margin-left: 0.5rem;\r\n}\r\n</style>\r\n","/* unplugin-vue-components disabled */<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2025-06-19\r\n * @Description: 全局代码高亮组件\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div class=\"c-code-wrapper\">\r\n <!-- 代码标题栏 -->\r\n <div v-if=\"showHeader\" class=\"c-code-header\">\r\n <div class=\"c-code-title\">\r\n <C_Icon\r\n v-if=\"languageIcon\"\r\n :name=\"languageIcon\"\r\n :size=\"16\"\r\n class=\"mr-2\"\r\n />\r\n <span>{{ title || getLanguageTitle(language) }}</span>\r\n </div>\r\n <div class=\"c-code-actions\">\r\n <NTooltip trigger=\"hover\">\r\n <template #trigger>\r\n <NButton\r\n size=\"tiny\"\r\n quaternary\r\n @click=\"copyCode\"\r\n :loading=\"copying\"\r\n >\r\n <template #icon>\r\n <C_Icon\r\n :name=\"copying ? 'mdi:loading' : 'mdi:content-copy'\"\r\n :loading=\"copying\"\r\n />\r\n </template>\r\n </NButton>\r\n </template>\r\n 复制代码\r\n </NTooltip>\r\n\r\n <NTooltip v-if=\"showFullscreen\" trigger=\"hover\">\r\n <template #trigger>\r\n <NButton size=\"tiny\" quaternary @click=\"toggleFullscreen\">\r\n <template #icon>\r\n <C_Icon\r\n :name=\"\r\n isFullscreen ? 'mdi:fullscreen-exit' : 'mdi:fullscreen'\r\n \"\r\n />\r\n </template>\r\n </NButton>\r\n </template>\r\n {{ isFullscreen ? \"退出全屏\" : \"全屏查看\" }}\r\n </NTooltip>\r\n </div>\r\n </div>\r\n\r\n <!-- 代码内容区域 -->\r\n <div class=\"c-code-content\">\r\n <div\r\n class=\"code-wrapper\"\r\n @mouseenter=\"showFloatingCopy = true\"\r\n @mouseleave=\"showFloatingCopy = false\"\r\n >\r\n <NCode\r\n :key=\"`code-${language}-${code.length}`\"\r\n :code=\"code\"\r\n :language=\"language\"\r\n :hljs=\"hljs\"\r\n :show-line-numbers=\"showLineNumbers\"\r\n :word-wrap=\"wordWrap\"\r\n :trim=\"trim\"\r\n :style=\"codeStyle\"\r\n @click=\"emit('click', $event)\"\r\n />\r\n\r\n <!-- 悬浮复制按钮 -->\r\n <Transition name=\"fade\">\r\n <div v-if=\"showFloatingCopy && !showHeader\" class=\"floating-copy-btn\">\r\n <NTooltip trigger=\"hover\">\r\n <template #trigger>\r\n <NButton\r\n size=\"small\"\r\n quaternary\r\n @click=\"copyCode\"\r\n :loading=\"copying\"\r\n class=\"copy-floating\"\r\n >\r\n <template #icon>\r\n <C_Icon\r\n :name=\"copying ? 'mdi:loading' : 'mdi:content-copy'\"\r\n :loading=\"copying\"\r\n />\r\n </template>\r\n </NButton>\r\n </template>\r\n 复制代码\r\n </NTooltip>\r\n </div>\r\n </Transition>\r\n </div>\r\n\r\n <!-- 语言加载状态 -->\r\n <div v-if=\"languageLoading\" class=\"c-code-loading\">\r\n <NSpin size=\"small\" />\r\n <span class=\"ml-2\">正在加载 {{ language }} 语言包...</span>\r\n </div>\r\n </div>\r\n\r\n <!-- 全屏模态框 -->\r\n <NModal\r\n v-model:show=\"isFullscreen\"\r\n :mask-closable=\"false\"\r\n :show-icon=\"false\"\r\n :bordered=\"false\"\r\n style=\"width: 100vw; height: 100vh; margin: 0; padding: 0\"\r\n >\r\n <div class=\"fullscreen-content\">\r\n <div class=\"fullscreen-header\">\r\n <div class=\"fullscreen-title\">\r\n <C_Icon\r\n v-if=\"languageIcon\"\r\n :name=\"languageIcon\"\r\n :size=\"16\"\r\n class=\"mr-2\"\r\n />\r\n <span>{{ title || getLanguageTitle(language) }}</span>\r\n </div>\r\n <NButton size=\"small\" quaternary @click=\"toggleFullscreen\">\r\n <template #icon>\r\n <C_Icon name=\"mdi:close\" />\r\n </template>\r\n </NButton>\r\n </div>\r\n <div class=\"fullscreen-body\">\r\n <NCode\r\n :key=\"`fullscreen-code-${language}-${code.length}`\"\r\n :code=\"code\"\r\n :language=\"language\"\r\n :hljs=\"hljs\"\r\n :show-line-numbers=\"showLineNumbers\"\r\n :word-wrap=\"wordWrap\"\r\n :trim=\"trim\"\r\n />\r\n </div>\r\n </div>\r\n </NModal>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {\r\n ref,\r\n computed,\r\n watch,\r\n onMounted,\r\n onUnmounted,\r\n nextTick,\r\n inject,\r\n} from \"vue\";\r\nimport C_Icon from \"../C_Icon/index.vue\";\r\n\r\n// 直接在组件内定义 HighlightManager 接口,避免导入错误\r\ninterface HighlightManager {\r\n getHljs?: () => any;\r\n loadLanguage?: (language: string) => Promise<void>;\r\n getLoadedLanguages?: () => string[];\r\n}\r\n\r\n// 组件名称定义\r\ndefineOptions({\r\n name: \"CCode\",\r\n});\r\n\r\ninterface Props {\r\n code: string;\r\n language?: string;\r\n title?: string;\r\n showHeader?: boolean;\r\n showLineNumbers?: boolean;\r\n wordWrap?: boolean;\r\n trim?: boolean;\r\n showFullscreen?: boolean;\r\n maxHeight?: string | number;\r\n autoLoadLanguage?: boolean;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n code: \"\",\r\n language: \"text\",\r\n showHeader: true,\r\n showLineNumbers: true,\r\n wordWrap: false,\r\n trim: true,\r\n showFullscreen: false,\r\n autoLoadLanguage: true,\r\n});\r\n\r\nconst emit = defineEmits<{\r\n copy: [code: string];\r\n click: [event: MouseEvent];\r\n fullscreen: [isFullscreen: boolean];\r\n}>();\r\n\r\n// 尝试获取 highlight 实例(如果用户安装了插件)\r\nconst highlightManager = inject<HighlightManager | null>(\r\n \"highlightManager\",\r\n null,\r\n);\r\n\r\nconst copying = ref(false);\r\nconst isFullscreen = ref(false);\r\nconst languageLoading = ref(false);\r\nconst showFloatingCopy = ref(false);\r\n\r\n// 安全地获取 hljs 实例\r\nconst hljs = computed(() => {\r\n try {\r\n return highlightManager?.getHljs?.() || null;\r\n } catch (error) {\r\n console.warn(\"Highlight.js not available:\", error);\r\n return null;\r\n }\r\n});\r\n\r\n// 语言图标映射(使用标准的 MDI 图标名称)\r\nconst languageIcon = computed(() => {\r\n const iconMap: Record<string, string> = {\r\n javascript: \"mdi:language-javascript\",\r\n typescript: \"mdi:language-typescript\",\r\n python: \"mdi:language-python\",\r\n html: \"mdi:language-html5\",\r\n css: \"mdi:language-css3\",\r\n vue: \"mdi:vuejs\",\r\n react: \"mdi:react\",\r\n json: \"mdi:code-json\",\r\n java: \"mdi:language-java\",\r\n cpp: \"mdi:language-cpp\",\r\n go: \"mdi:language-go\",\r\n rust: \"mdi:language-rust\",\r\n php: \"mdi:language-php\",\r\n csharp: \"mdi:language-csharp\",\r\n sql: \"mdi:database\",\r\n yaml: \"mdi:file-code\",\r\n xml: \"mdi:xml\",\r\n markdown: \"mdi:language-markdown\",\r\n bash: \"mdi:bash\",\r\n shell: \"mdi:console\",\r\n powershell: \"mdi:powershell\",\r\n swift: \"mdi:language-swift\",\r\n kotlin: \"mdi:language-kotlin\",\r\n ruby: \"mdi:language-ruby\",\r\n };\r\n return iconMap[props.language.toLowerCase()] || \"mdi:code-braces\";\r\n});\r\n\r\n// 代码样式\r\nconst codeStyle = computed(() => {\r\n if (!props.maxHeight) return {};\r\n return {\r\n maxHeight:\r\n typeof props.maxHeight === \"number\"\r\n ? `${props.maxHeight}px`\r\n : props.maxHeight,\r\n };\r\n});\r\n\r\n// 自动加载语言包\r\nwatch(\r\n () => props.language,\r\n async (newLanguage) => {\r\n if (!props.autoLoadLanguage || newLanguage === \"text\" || !highlightManager)\r\n return;\r\n\r\n const loadedLanguages = highlightManager.getLoadedLanguages?.() || [];\r\n if (loadedLanguages.includes(newLanguage)) return;\r\n\r\n languageLoading.value = true;\r\n try {\r\n await highlightManager.loadLanguage?.(newLanguage);\r\n await nextTick();\r\n } catch (error) {\r\n console.warn(`Failed to load language: ${newLanguage}`, error);\r\n } finally {\r\n languageLoading.value = false;\r\n }\r\n },\r\n { immediate: true },\r\n);\r\n\r\n/**\r\n * 复制代码到剪贴板\r\n */\r\nasync function copyCode() {\r\n if (copying.value) return;\r\n copying.value = true;\r\n\r\n try {\r\n await navigator.clipboard.writeText(props.code);\r\n emit(\"copy\", props.code);\r\n } catch (error) {\r\n console.error(\"Copy failed:\", error);\r\n } finally {\r\n copying.value = false;\r\n }\r\n}\r\n\r\n/**\r\n * 切换全屏显示状态\r\n */\r\nfunction toggleFullscreen() {\r\n isFullscreen.value = !isFullscreen.value;\r\n emit(\"fullscreen\", isFullscreen.value);\r\n}\r\n\r\n/**\r\n * 获取编程语言的显示标题\r\n */\r\nfunction getLanguageTitle(lang: string): string {\r\n const titleMap: Record<string, string> = {\r\n javascript: \"JavaScript\",\r\n typescript: \"TypeScript\",\r\n python: \"Python\",\r\n java: \"Java\",\r\n cpp: \"C++\",\r\n csharp: \"C#\",\r\n php: \"PHP\",\r\n go: \"Go\",\r\n rust: \"Rust\",\r\n html: \"HTML\",\r\n css: \"CSS\",\r\n json: \"JSON\",\r\n bash: \"Bash\",\r\n shell: \"Shell\",\r\n yaml: \"YAML\",\r\n xml: \"XML\",\r\n markdown: \"Markdown\",\r\n sql: \"SQL\",\r\n powershell: \"PowerShell\",\r\n swift: \"Swift\",\r\n kotlin: \"Kotlin\",\r\n ruby: \"Ruby\",\r\n vue: \"Vue\",\r\n react: \"React\",\r\n };\r\n return titleMap[lang.toLowerCase()] || lang.toUpperCase();\r\n}\r\n\r\n/**\r\n * 处理ESC键退出全屏\r\n */\r\nfunction handleEscapeKey(event: KeyboardEvent) {\r\n if (event.key === \"Escape\" && isFullscreen.value) {\r\n toggleFullscreen();\r\n }\r\n}\r\n\r\nonMounted(() => {\r\n document.addEventListener(\"keydown\", handleEscapeKey);\r\n});\r\n\r\nonUnmounted(() => {\r\n document.removeEventListener(\"keydown\", handleEscapeKey);\r\n});\r\n\r\ndefineExpose({\r\n copyCode,\r\n toggleFullscreen,\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.mr-2 {\r\n margin-right: 0.5rem;\r\n}\r\n\r\n.ml-2 {\r\n margin-left: 0.5rem;\r\n}\r\n</style>\r\n","<!--\r\n * @Author: ChenYu ycyplus@gmail.com\r\n * @Date: 2025-06-19\r\n * @Description: 全局代码高亮组件\r\n * @Migration: naive-ui-components 组件库迁移版本\r\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\r\n-->\r\n<template>\r\n <div class=\"c-code-wrapper\">\r\n <!-- 代码标题栏 -->\r\n <div v-if=\"showHeader\" class=\"c-code-header\">\r\n <div class=\"c-code-title\">\r\n <C_Icon\r\n v-if=\"languageIcon\"\r\n :name=\"languageIcon\"\r\n :size=\"16\"\r\n class=\"mr-2\"\r\n />\r\n <span>{{ title || getLanguageTitle(language) }}</span>\r\n </div>\r\n <div class=\"c-code-actions\">\r\n <NTooltip trigger=\"hover\">\r\n <template #trigger>\r\n <NButton\r\n size=\"tiny\"\r\n quaternary\r\n @click=\"copyCode\"\r\n :loading=\"copying\"\r\n >\r\n <template #icon>\r\n <C_Icon\r\n :name=\"copying ? 'mdi:loading' : 'mdi:content-copy'\"\r\n :loading=\"copying\"\r\n />\r\n </template>\r\n </NButton>\r\n </template>\r\n 复制代码\r\n </NTooltip>\r\n\r\n <NTooltip v-if=\"showFullscreen\" trigger=\"hover\">\r\n <template #trigger>\r\n <NButton size=\"tiny\" quaternary @click=\"toggleFullscreen\">\r\n <template #icon>\r\n <C_Icon\r\n :name=\"\r\n isFullscreen ? 'mdi:fullscreen-exit' : 'mdi:fullscreen'\r\n \"\r\n />\r\n </template>\r\n </NButton>\r\n </template>\r\n {{ isFullscreen ? \"退出全屏\" : \"全屏查看\" }}\r\n </NTooltip>\r\n </div>\r\n </div>\r\n\r\n <!-- 代码内容区域 -->\r\n <div class=\"c-code-content\">\r\n <div\r\n class=\"code-wrapper\"\r\n @mouseenter=\"showFloatingCopy = true\"\r\n @mouseleave=\"showFloatingCopy = false\"\r\n >\r\n <NCode\r\n :key=\"`code-${language}-${code.length}`\"\r\n :code=\"code\"\r\n :language=\"language\"\r\n :hljs=\"hljs\"\r\n :show-line-numbers=\"showLineNumbers\"\r\n :word-wrap=\"wordWrap\"\r\n :trim=\"trim\"\r\n :style=\"codeStyle\"\r\n @click=\"emit('click', $event)\"\r\n />\r\n\r\n <!-- 悬浮复制按钮 -->\r\n <Transition name=\"fade\">\r\n <div v-if=\"showFloatingCopy && !showHeader\" class=\"floating-copy-btn\">\r\n <NTooltip trigger=\"hover\">\r\n <template #trigger>\r\n <NButton\r\n size=\"small\"\r\n quaternary\r\n @click=\"copyCode\"\r\n :loading=\"copying\"\r\n class=\"copy-floating\"\r\n >\r\n <template #icon>\r\n <C_Icon\r\n :name=\"copying ? 'mdi:loading' : 'mdi:content-copy'\"\r\n :loading=\"copying\"\r\n />\r\n </template>\r\n </NButton>\r\n </template>\r\n 复制代码\r\n </NTooltip>\r\n </div>\r\n </Transition>\r\n </div>\r\n\r\n <!-- 语言加载状态 -->\r\n <div v-if=\"languageLoading\" class=\"c-code-loading\">\r\n <NSpin size=\"small\" />\r\n <span class=\"ml-2\">正在加载 {{ language }} 语言包...</span>\r\n </div>\r\n </div>\r\n\r\n <!-- 全屏模态框 -->\r\n <NModal\r\n v-model:show=\"isFullscreen\"\r\n :mask-closable=\"false\"\r\n :show-icon=\"false\"\r\n :bordered=\"false\"\r\n style=\"width: 100vw; height: 100vh; margin: 0; padding: 0\"\r\n >\r\n <div class=\"fullscreen-content\">\r\n <div class=\"fullscreen-header\">\r\n <div class=\"fullscreen-title\">\r\n <C_Icon\r\n v-if=\"languageIcon\"\r\n :name=\"languageIcon\"\r\n :size=\"16\"\r\n class=\"mr-2\"\r\n />\r\n <span>{{ title || getLanguageTitle(language) }}</span>\r\n </div>\r\n <NButton size=\"small\" quaternary @click=\"toggleFullscreen\">\r\n <template #icon>\r\n <C_Icon name=\"mdi:close\" />\r\n </template>\r\n </NButton>\r\n </div>\r\n <div class=\"fullscreen-body\">\r\n <NCode\r\n :key=\"`fullscreen-code-${language}-${code.length}`\"\r\n :code=\"code\"\r\n :language=\"language\"\r\n :hljs=\"hljs\"\r\n :show-line-numbers=\"showLineNumbers\"\r\n :word-wrap=\"wordWrap\"\r\n :trim=\"trim\"\r\n />\r\n </div>\r\n </div>\r\n </NModal>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {\r\n ref,\r\n computed,\r\n watch,\r\n onMounted,\r\n onUnmounted,\r\n nextTick,\r\n inject,\r\n} from \"vue\";\r\nimport C_Icon from \"../C_Icon/index.vue\";\r\n\r\n// 直接在组件内定义 HighlightManager 接口,避免导入错误\r\ninterface HighlightManager {\r\n getHljs?: () => any;\r\n loadLanguage?: (language: string) => Promise<void>;\r\n getLoadedLanguages?: () => string[];\r\n}\r\n\r\n// 组件名称定义\r\ndefineOptions({\r\n name: \"CCode\",\r\n});\r\n\r\ninterface Props {\r\n code: string;\r\n language?: string;\r\n title?: string;\r\n showHeader?: boolean;\r\n showLineNumbers?: boolean;\r\n wordWrap?: boolean;\r\n trim?: boolean;\r\n showFullscreen?: boolean;\r\n maxHeight?: string | number;\r\n autoLoadLanguage?: boolean;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n code: \"\",\r\n language: \"text\",\r\n showHeader: true,\r\n showLineNumbers: true,\r\n wordWrap: false,\r\n trim: true,\r\n showFullscreen: false,\r\n autoLoadLanguage: true,\r\n});\r\n\r\nconst emit = defineEmits<{\r\n copy: [code: string];\r\n click: [event: MouseEvent];\r\n fullscreen: [isFullscreen: boolean];\r\n}>();\r\n\r\n// 尝试获取 highlight 实例(如果用户安装了插件)\r\nconst highlightManager = inject<HighlightManager | null>(\r\n \"highlightManager\",\r\n null,\r\n);\r\n\r\nconst copying = ref(false);\r\nconst isFullscreen = ref(false);\r\nconst languageLoading = ref(false);\r\nconst showFloatingCopy = ref(false);\r\n\r\n// 安全地获取 hljs 实例\r\nconst hljs = computed(() => {\r\n try {\r\n return highlightManager?.getHljs?.() || null;\r\n } catch (error) {\r\n console.warn(\"Highlight.js not available:\", error);\r\n return null;\r\n }\r\n});\r\n\r\n// 语言图标映射(使用标准的 MDI 图标名称)\r\nconst languageIcon = computed(() => {\r\n const iconMap: Record<string, string> = {\r\n javascript: \"mdi:language-javascript\",\r\n typescript: \"mdi:language-typescript\",\r\n python: \"mdi:language-python\",\r\n html: \"mdi:language-html5\",\r\n css: \"mdi:language-css3\",\r\n vue: \"mdi:vuejs\",\r\n react: \"mdi:react\",\r\n json: \"mdi:code-json\",\r\n java: \"mdi:language-java\",\r\n cpp: \"mdi:language-cpp\",\r\n go: \"mdi:language-go\",\r\n rust: \"mdi:language-rust\",\r\n php: \"mdi:language-php\",\r\n csharp: \"mdi:language-csharp\",\r\n sql: \"mdi:database\",\r\n yaml: \"mdi:file-code\",\r\n xml: \"mdi:xml\",\r\n markdown: \"mdi:language-markdown\",\r\n bash: \"mdi:bash\",\r\n shell: \"mdi:console\",\r\n powershell: \"mdi:powershell\",\r\n swift: \"mdi:language-swift\",\r\n kotlin: \"mdi:language-kotlin\",\r\n ruby: \"mdi:language-ruby\",\r\n };\r\n return iconMap[props.language.toLowerCase()] || \"mdi:code-braces\";\r\n});\r\n\r\n// 代码样式\r\nconst codeStyle = computed(() => {\r\n if (!props.maxHeight) return {};\r\n return {\r\n maxHeight:\r\n typeof props.maxHeight === \"number\"\r\n ? `${props.maxHeight}px`\r\n : props.maxHeight,\r\n };\r\n});\r\n\r\n// 自动加载语言包\r\nwatch(\r\n () => props.language,\r\n async (newLanguage) => {\r\n if (!props.autoLoadLanguage || newLanguage === \"text\" || !highlightManager)\r\n return;\r\n\r\n const loadedLanguages = highlightManager.getLoadedLanguages?.() || [];\r\n if (loadedLanguages.includes(newLanguage)) return;\r\n\r\n languageLoading.value = true;\r\n try {\r\n await highlightManager.loadLanguage?.(newLanguage);\r\n await nextTick();\r\n } catch (error) {\r\n console.warn(`Failed to load language: ${newLanguage}`, error);\r\n } finally {\r\n languageLoading.value = false;\r\n }\r\n },\r\n { immediate: true },\r\n);\r\n\r\n/**\r\n * 复制代码到剪贴板\r\n */\r\nasync function copyCode() {\r\n if (copying.value) return;\r\n copying.value = true;\r\n\r\n try {\r\n await navigator.clipboard.writeText(props.code);\r\n emit(\"copy\", props.code);\r\n } catch (error) {\r\n console.error(\"Copy failed:\", error);\r\n } finally {\r\n copying.value = false;\r\n }\r\n}\r\n\r\n/**\r\n * 切换全屏显示状态\r\n */\r\nfunction toggleFullscreen() {\r\n isFullscreen.value = !isFullscreen.value;\r\n emit(\"fullscreen\", isFullscreen.value);\r\n}\r\n\r\n/**\r\n * 获取编程语言的显示标题\r\n */\r\nfunction getLanguageTitle(lang: string): string {\r\n const titleMap: Record<string, string> = {\r\n javascript: \"JavaScript\",\r\n typescript: \"TypeScript\",\r\n python: \"Python\",\r\n java: \"Java\",\r\n cpp: \"C++\",\r\n csharp: \"C#\",\r\n php: \"PHP\",\r\n go: \"Go\",\r\n rust: \"Rust\",\r\n html: \"HTML\",\r\n css: \"CSS\",\r\n json: \"JSON\",\r\n bash: \"Bash\",\r\n shell: \"Shell\",\r\n yaml: \"YAML\",\r\n xml: \"XML\",\r\n markdown: \"Markdown\",\r\n sql: \"SQL\",\r\n powershell: \"PowerShell\",\r\n swift: \"Swift\",\r\n kotlin: \"Kotlin\",\r\n ruby: \"Ruby\",\r\n vue: \"Vue\",\r\n react: \"React\",\r\n };\r\n return titleMap[lang.toLowerCase()] || lang.toUpperCase();\r\n}\r\n\r\n/**\r\n * 处理ESC键退出全屏\r\n */\r\nfunction handleEscapeKey(event: KeyboardEvent) {\r\n if (event.key === \"Escape\" && isFullscreen.value) {\r\n toggleFullscreen();\r\n }\r\n}\r\n\r\nonMounted(() => {\r\n document.addEventListener(\"keydown\", handleEscapeKey);\r\n});\r\n\r\nonUnmounted(() => {\r\n document.removeEventListener(\"keydown\", handleEscapeKey);\r\n});\r\n\r\ndefineExpose({\r\n copyCode,\r\n toggleFullscreen,\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.mr-2 {\r\n margin-right: 0.5rem;\r\n}\r\n\r\n.ml-2 {\r\n margin-left: 0.5rem;\r\n}\r\n</style>\r\n"],"mappings":"6tCE2LA,IAAM,EAAQ,EAWR,EAAO,EAOP,EAAmB,EACvB,mBACA,KACD,CAEK,EAAU,EAAI,GAAM,CACpB,EAAe,EAAI,GAAM,CACzB,EAAkB,EAAI,GAAM,CAC5B,EAAmB,EAAI,GAAM,CAG7B,EAAO,MAAe,CAC1B,GAAI,CACF,OAAO,GAAkB,WAAW,EAAI,WACjC,EAAO,CAEd,OADA,QAAQ,KAAK,8BAA+B,EAAM,CAC3C,OAET,CAGI,EAAe,OACqB,CACtC,WAAY,0BACZ,WAAY,0BACZ,OAAQ,sBACR,KAAM,qBACN,IAAK,oBACL,IAAK,YACL,MAAO,YACP,KAAM,gBACN,KAAM,oBACN,IAAK,mBACL,GAAI,kBACJ,KAAM,oBACN,IAAK,mBACL,OAAQ,sBACR,IAAK,eACL,KAAM,gBACN,IAAK,UACL,SAAU,wBACV,KAAM,WACN,MAAO,cACP,WAAY,iBACZ,MAAO,qBACP,OAAQ,sBACR,KAAM,oBACP,EACc,EAAM,SAAS,aAAa,GAAK,kBAChD,CAGI,EAAY,MACX,EAAM,UACJ,CACL,UACE,OAAO,EAAM,WAAc,SACvB,GAAG,EAAM,UAAU,IACnB,EAAM,UACb,CAN4B,EAAE,CAO/B,CAGF,MACQ,EAAM,SACZ,KAAO,IAAgB,CACjB,MAAC,EAAM,kBAAoB,IAAgB,QAAU,CAAC,IAI1D,EADwB,EAAiB,sBAAsB,EAAI,EAAE,EACjD,SAAS,EAAY,CAEzC,GAAgB,MAAQ,GACxB,GAAI,CACF,MAAM,EAAiB,eAAe,EAAY,CAClD,MAAM,GAAU,OACT,EAAO,CACd,QAAQ,KAAK,4BAA4B,IAAe,EAAM,QACtD,CACR,EAAgB,MAAQ,MAG5B,CAAE,UAAW,GAAM,CACpB,CAKD,eAAe,GAAW,CACpB,MAAQ,MACZ,GAAQ,MAAQ,GAEhB,GAAI,CACF,MAAM,UAAU,UAAU,UAAU,EAAM,KAAK,CAC/C,EAAK,OAAQ,EAAM,KAAK,OACjB,EAAO,CACd,QAAQ,MAAM,eAAgB,EAAM,QAC5B,CACR,EAAQ,MAAQ,KAOpB,SAAS,GAAmB,CAC1B,EAAa,MAAQ,CAAC,EAAa,MACnC,EAAK,aAAc,EAAa,MAAM,CAMxC,SAAS,EAAiB,EAAsB,CA2B9C,MA1ByC,CACvC,WAAY,aACZ,WAAY,aACZ,OAAQ,SACR,KAAM,OACN,IAAK,MACL,OAAQ,KACR,IAAK,MACL,GAAI,KACJ,KAAM,OACN,KAAM,OACN,IAAK,MACL,KAAM,OACN,KAAM,OACN,MAAO,QACP,KAAM,OACN,IAAK,MACL,SAAU,WACV,IAAK,MACL,WAAY,aACZ,MAAO,QACP,OAAQ,SACR,KAAM,OACN,IAAK,MACL,MAAO,QACR,CACe,EAAK,aAAa,GAAK,EAAK,aAAa,CAM3D,SAAS,EAAgB,EAAsB,CACzC,EAAM,MAAQ,UAAY,EAAa,OACzC,GAAkB,QAItB,MAAgB,CACd,SAAS,iBAAiB,UAAW,EAAgB,EACrD,CAEF,MAAkB,CAChB,SAAS,oBAAoB,UAAW,EAAgB,EACxD,CAEF,EAAa,CACX,WACA,mBACD,CAAC,4CAxWA,EA2IM,MA3IN,EA2IM,CA1IJ,EAAA,UAAc,CACHA,EAAAA,YAAAA,GAAAA,CAAX,EA6CM,MA7CN,EA6CM,CA5CJ,EAQM,MARN,EAQM,CANI,EAAA,OAAA,GAAA,CADR,EAKE,EAAA,OAHC,KAAM,EAAA,MACN,KAAM,GACP,MAAM,uCAER,EAAsD,OAAA,KAAA,EAA7CC,EAAAA,OAAS,EAAiBC,EAAAA,SAAQ,CAAA,CAAA,EAAA,CAAA,CAAA,CAE7C,EAkCM,MAlCN,EAkCM,CAjCJ,EAiBW,EAAA,CAjBD,QAAQ,QAAO,CAAA,CACZ,QAAO,MAaN,CAZV,EAYU,EAAA,CAXR,KAAK,OACL,WAAA,GACC,QAAO,EACP,QAAS,EAAA,QAEC,KAAI,MAIX,CAHF,EAGE,EAAA,CAFC,KAAM,EAAA,MAAO,cAAA,mBACb,QAAS,EAAA,wEAMpB,CAAA,AAAA,EAAA,KAAA,EAFa,SAEb,GAAA,CAAA,CAAA,cAEgBC,EAAAA,gBAAAA,GAAAA,CAAhB,EAaW,EAAA,OAbqB,QAAQ,UAC3B,QAAO,MASN,CARV,EAQU,EAAA,CARD,KAAK,OAAO,WAAA,GAAY,QAAO,IAC3B,KAAI,MAKX,CAJF,EAIE,EAAA,CAHC,KAA4B,EAAA,MAAY,sBAAA,iBAAA,CAAA,KAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA,uBAOjD,CAAA,EADW,IACX,EAAG,EAAA,MAAY,OAAA,OAAA,CAAA,EAAA,CAAA,CAAA,uCAKrB,EAAA,WAAe,CACf,EAiDM,MAjDN,EAiDM,CAhDJ,EAyCM,MAAA,CAxCJ,MAAM,eACL,aAAU,AAAA,EAAA,KAAA,GAAE,EAAA,MAAgB,GAC5B,aAAU,AAAA,EAAA,KAAA,GAAE,EAAA,MAAgB,UAE7B,EAUE,EAAA,CATC,IAAG,QAAUD,EAAAA,SAAQ,GAAIE,EAAAA,KAAK,SAC9B,KAAMA,EAAAA,KACN,SAAUF,EAAAA,SACV,KAAM,EAAA,MACN,oBAAmBG,EAAAA,gBACnB,YAAWC,EAAAA,SACX,KAAMC,EAAAA,KACN,MAAK,EAAE,EAAA,MAAS,CAChB,QAAK,AAAA,EAAA,KAAA,GAAE,EAAI,QAAU,EAAM,qFAG9B,EAAA,WAAe,CACf,EAsBa,EAAA,CAtBD,KAAK,OAAM,CAAA,eAuBlB,CAtBQ,EAAA,OAAgB,CAAKP,EAAAA,YAAAA,GAAAA,CAAhC,EAoBM,MApBN,EAoBM,CAnBJ,EAkBW,EAAA,CAlBD,QAAQ,QAAO,CAAA,CACZ,QAAO,MAcN,CAbV,EAaU,EAAA,CAZR,KAAK,QACL,WAAA,GACC,QAAO,EACP,QAAS,EAAA,MACV,MAAM,kBAEK,KAAI,MAIX,CAHF,EAGE,EAAA,CAFC,KAAM,EAAA,MAAO,cAAA,mBACb,QAAS,EAAA,wEAMpB,CAAA,AAAA,EAAA,KAAA,EAFa,SAEb,GAAA,CAAA,CAAA,2CAKN,EAAA,WAAe,CACJ,EAAA,OAAA,GAAA,CAAX,EAGM,MAHN,EAGM,CAFJ,EAAsB,EAAA,CAAf,KAAK,QAAO,CAAA,CACnB,EAAoD,OAApD,EAAmB,QAAK,EAAGE,EAAAA,SAAQ,CAAG,UAAO,EAAA,CAAA,CAAA,EAAA,EAAA,OAAA,GAAA,GAIjD,EAAA,UAAc,CACd,EAoCS,EAAA,CAnCC,KAAM,EAAA,gCAAA,EAAY,MAAA,EACzB,gBAAe,GACf,YAAW,GACX,SAAU,GACX,MAAA,CAAA,MAAA,QAAA,OAAA,QAAA,OAAA,IAAA,QAAA,IAAA,iBA8BM,CA5BN,EA4BM,MA5BN,EA4BM,CA3BJ,EAeM,MAfN,EAeM,CAdJ,EAQM,MARN,EAQM,CANI,EAAA,OAAA,GAAA,CADR,EAKE,EAAA,OAHC,KAAM,EAAA,MACN,KAAM,GACP,MAAM,uCAER,EAAsD,OAAA,KAAA,EAA7CD,EAAAA,OAAS,EAAiBC,EAAAA,SAAQ,CAAA,CAAA,EAAA,CAAA,CAAA,CAE7C,EAIU,EAAA,CAJD,KAAK,QAAQ,WAAA,GAAY,QAAO,IAC5B,KAAI,MACc,CAA3B,EAA2B,EAAA,CAAnB,KAAK,YAAW,CAAA,CAAA,CAAA,SAI9B,EAUM,MAVN,EAUM,EAAA,GAAA,CATJ,EAQE,EAAA,CAPC,IAAG,mBAAqBA,EAAAA,SAAQ,GAAIE,EAAAA,KAAK,SACzC,KAAMA,EAAAA,KACN,SAAUF,EAAAA,SACV,KAAM,EAAA,MACN,oBAAmBG,EAAAA,gBACnB,YAAWC,EAAAA,SACX,KAAMC,EAAAA"}
1
+ {"version":3,"file":"C_Code2.js","names":[],"sources":["../src/components/C_Code/index.vue"],"sourcesContent":["<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2025-06-19\n * @Description: 全局代码高亮组件\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-code-wrapper\">\n <!-- 代码标题栏 -->\n <div v-if=\"showHeader\" class=\"c-code-header\">\n <div class=\"c-code-title\">\n <C_Icon\n v-if=\"languageIcon\"\n :name=\"languageIcon\"\n :size=\"16\"\n class=\"mr-2\"\n />\n <span>{{ title || getLanguageTitle(language) }}</span>\n </div>\n <div class=\"c-code-actions\">\n <NTooltip trigger=\"hover\">\n <template #trigger>\n <NButton\n size=\"tiny\"\n quaternary\n @click=\"copyCode\"\n :loading=\"copying\"\n >\n <template #icon>\n <C_Icon\n :name=\"copying ? 'mdi:loading' : 'mdi:content-copy'\"\n :loading=\"copying\"\n />\n </template>\n </NButton>\n </template>\n 复制代码\n </NTooltip>\n\n <NTooltip v-if=\"showFullscreen\" trigger=\"hover\">\n <template #trigger>\n <NButton size=\"tiny\" quaternary @click=\"toggleFullscreen\">\n <template #icon>\n <C_Icon\n :name=\"\n isFullscreen ? 'mdi:fullscreen-exit' : 'mdi:fullscreen'\n \"\n />\n </template>\n </NButton>\n </template>\n {{ isFullscreen ? \"退出全屏\" : \"全屏查看\" }}\n </NTooltip>\n </div>\n </div>\n\n <!-- 代码内容区域 -->\n <div class=\"c-code-content\">\n <div\n class=\"code-wrapper\"\n @mouseenter=\"showFloatingCopy = true\"\n @mouseleave=\"showFloatingCopy = false\"\n >\n <NCode\n :key=\"`code-${language}-${code.length}`\"\n :code=\"code\"\n :language=\"language\"\n :hljs=\"hljs\"\n :show-line-numbers=\"showLineNumbers\"\n :word-wrap=\"wordWrap\"\n :trim=\"trim\"\n :style=\"codeStyle\"\n @click=\"emit('click', $event)\"\n />\n\n <!-- 悬浮复制按钮 -->\n <Transition name=\"fade\">\n <div v-if=\"showFloatingCopy && !showHeader\" class=\"floating-copy-btn\">\n <NTooltip trigger=\"hover\">\n <template #trigger>\n <NButton\n size=\"small\"\n quaternary\n @click=\"copyCode\"\n :loading=\"copying\"\n class=\"copy-floating\"\n >\n <template #icon>\n <C_Icon\n :name=\"copying ? 'mdi:loading' : 'mdi:content-copy'\"\n :loading=\"copying\"\n />\n </template>\n </NButton>\n </template>\n 复制代码\n </NTooltip>\n </div>\n </Transition>\n </div>\n\n <!-- 语言加载状态 -->\n <div v-if=\"languageLoading\" class=\"c-code-loading\">\n <NSpin size=\"small\" />\n <span class=\"ml-2\">正在加载 {{ language }} 语言包...</span>\n </div>\n </div>\n\n <!-- 全屏模态框 -->\n <NModal\n v-model:show=\"isFullscreen\"\n :mask-closable=\"false\"\n :show-icon=\"false\"\n :bordered=\"false\"\n style=\"width: 100vw; height: 100vh; margin: 0; padding: 0\"\n >\n <div class=\"fullscreen-content\">\n <div class=\"fullscreen-header\">\n <div class=\"fullscreen-title\">\n <C_Icon\n v-if=\"languageIcon\"\n :name=\"languageIcon\"\n :size=\"16\"\n class=\"mr-2\"\n />\n <span>{{ title || getLanguageTitle(language) }}</span>\n </div>\n <NButton size=\"small\" quaternary @click=\"toggleFullscreen\">\n <template #icon>\n <C_Icon name=\"mdi:close\" />\n </template>\n </NButton>\n </div>\n <div class=\"fullscreen-body\">\n <NCode\n :key=\"`fullscreen-code-${language}-${code.length}`\"\n :code=\"code\"\n :language=\"language\"\n :hljs=\"hljs\"\n :show-line-numbers=\"showLineNumbers\"\n :word-wrap=\"wordWrap\"\n :trim=\"trim\"\n />\n </div>\n </div>\n </NModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n ref,\n computed,\n watch,\n onMounted,\n onUnmounted,\n nextTick,\n inject,\n} from \"vue\";\nimport C_Icon from \"../C_Icon/index.vue\";\n\n// 直接在组件内定义 HighlightManager 接口,避免导入错误\ninterface HighlightManager {\n getHljs?: () => any;\n loadLanguage?: (language: string) => Promise<void>;\n getLoadedLanguages?: () => string[];\n}\n\n// 组件名称定义\ndefineOptions({\n name: \"CCode\",\n});\n\ninterface Props {\n code: string;\n language?: string;\n title?: string;\n showHeader?: boolean;\n showLineNumbers?: boolean;\n wordWrap?: boolean;\n trim?: boolean;\n showFullscreen?: boolean;\n maxHeight?: string | number;\n autoLoadLanguage?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n code: \"\",\n language: \"text\",\n showHeader: true,\n showLineNumbers: true,\n wordWrap: false,\n trim: true,\n showFullscreen: false,\n autoLoadLanguage: true,\n});\n\nconst emit = defineEmits<{\n copy: [code: string];\n click: [event: MouseEvent];\n fullscreen: [isFullscreen: boolean];\n}>();\n\n// 尝试获取 highlight 实例(如果用户安装了插件)\nconst highlightManager = inject<HighlightManager | null>(\n \"highlightManager\",\n null,\n);\n\nconst copying = ref(false);\nconst isFullscreen = ref(false);\nconst languageLoading = ref(false);\nconst showFloatingCopy = ref(false);\n\n// 安全地获取 hljs 实例\nconst hljs = computed(() => {\n try {\n return highlightManager?.getHljs?.() || null;\n } catch (error) {\n console.warn(\"Highlight.js not available:\", error);\n return null;\n }\n});\n\n// 语言图标映射(使用标准的 MDI 图标名称)\nconst languageIcon = computed(() => {\n const iconMap: Record<string, string> = {\n javascript: \"mdi:language-javascript\",\n typescript: \"mdi:language-typescript\",\n python: \"mdi:language-python\",\n html: \"mdi:language-html5\",\n css: \"mdi:language-css3\",\n vue: \"mdi:vuejs\",\n react: \"mdi:react\",\n json: \"mdi:code-json\",\n java: \"mdi:language-java\",\n cpp: \"mdi:language-cpp\",\n go: \"mdi:language-go\",\n rust: \"mdi:language-rust\",\n php: \"mdi:language-php\",\n csharp: \"mdi:language-csharp\",\n sql: \"mdi:database\",\n yaml: \"mdi:file-code\",\n xml: \"mdi:xml\",\n markdown: \"mdi:language-markdown\",\n bash: \"mdi:bash\",\n shell: \"mdi:console\",\n powershell: \"mdi:powershell\",\n swift: \"mdi:language-swift\",\n kotlin: \"mdi:language-kotlin\",\n ruby: \"mdi:language-ruby\",\n };\n return iconMap[props.language.toLowerCase()] || \"mdi:code-braces\";\n});\n\n// 代码样式\nconst codeStyle = computed(() => {\n if (!props.maxHeight) return {};\n return {\n maxHeight:\n typeof props.maxHeight === \"number\"\n ? `${props.maxHeight}px`\n : props.maxHeight,\n };\n});\n\n// 自动加载语言包\nwatch(\n () => props.language,\n async (newLanguage) => {\n if (!props.autoLoadLanguage || newLanguage === \"text\" || !highlightManager)\n return;\n\n const loadedLanguages = highlightManager.getLoadedLanguages?.() || [];\n if (loadedLanguages.includes(newLanguage)) return;\n\n languageLoading.value = true;\n try {\n await highlightManager.loadLanguage?.(newLanguage);\n await nextTick();\n } catch (error) {\n console.warn(`Failed to load language: ${newLanguage}`, error);\n } finally {\n languageLoading.value = false;\n }\n },\n { immediate: true },\n);\n\n/**\n * 复制代码到剪贴板\n */\nasync function copyCode() {\n if (copying.value) return;\n copying.value = true;\n\n try {\n await navigator.clipboard.writeText(props.code);\n emit(\"copy\", props.code);\n } catch (error) {\n console.error(\"Copy failed:\", error);\n } finally {\n copying.value = false;\n }\n}\n\n/**\n * 切换全屏显示状态\n */\nfunction toggleFullscreen() {\n isFullscreen.value = !isFullscreen.value;\n emit(\"fullscreen\", isFullscreen.value);\n}\n\n/**\n * 获取编程语言的显示标题\n */\nfunction getLanguageTitle(lang: string): string {\n const titleMap: Record<string, string> = {\n javascript: \"JavaScript\",\n typescript: \"TypeScript\",\n python: \"Python\",\n java: \"Java\",\n cpp: \"C++\",\n csharp: \"C#\",\n php: \"PHP\",\n go: \"Go\",\n rust: \"Rust\",\n html: \"HTML\",\n css: \"CSS\",\n json: \"JSON\",\n bash: \"Bash\",\n shell: \"Shell\",\n yaml: \"YAML\",\n xml: \"XML\",\n markdown: \"Markdown\",\n sql: \"SQL\",\n powershell: \"PowerShell\",\n swift: \"Swift\",\n kotlin: \"Kotlin\",\n ruby: \"Ruby\",\n vue: \"Vue\",\n react: \"React\",\n };\n return titleMap[lang.toLowerCase()] || lang.toUpperCase();\n}\n\n/**\n * 处理ESC键退出全屏\n */\nfunction handleEscapeKey(event: KeyboardEvent) {\n if (event.key === \"Escape\" && isFullscreen.value) {\n toggleFullscreen();\n }\n}\n\nonMounted(() => {\n document.addEventListener(\"keydown\", handleEscapeKey);\n});\n\nonUnmounted(() => {\n document.removeEventListener(\"keydown\", handleEscapeKey);\n});\n\ndefineExpose({\n copyCode,\n toggleFullscreen,\n});\n</script>\n\n<style lang=\"scss\" scoped>\n.mr-2 {\n margin-right: 0.5rem;\n}\n\n.ml-2 {\n margin-left: 0.5rem;\n}\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"C_CollapsePanel-CedsEM0N.css","names":[],"sources":["../src/components/C_CollapsePanel/index.vue?vue&type=style&index=0&scoped=08dc96f9&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* ─── 变量 ───────────────────────────────────────── */\n/* ─── 容器 ───────────────────────────────────────── */\n.c-collapse-panel[data-v-08dc96f9] {\n width: 100%;\n /* ── default 变体 ────────────────────────────── */\n /* ── card 变体 ───────────────────────────────── */\n /* ── ghost 变体(无边框极简) ──────────────────── */\n /* ── bordered 修饰符 ─────────────────────────── */\n /* ── 图标右侧模式 ────────────────────────────── */\n}\n.c-collapse-panel--default .collapse-item[data-v-08dc96f9] {\n border-bottom: 1px solid var(--c-border, #e1e4e8);\n}\n.c-collapse-panel--default .collapse-item[data-v-08dc96f9]:last-child {\n border-bottom: none;\n}\n.c-collapse-panel--card[data-v-08dc96f9] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.c-collapse-panel--card .collapse-item[data-v-08dc96f9] {\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: 8px;\n background: var(--c-bg-card, #fff);\n transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.c-collapse-panel--card .collapse-item--active[data-v-08dc96f9] {\n box-shadow: 0 1px 6px rgba(0, 0, 0, 0.08);\n}\n.c-collapse-panel--card .collapse-item[data-v-08dc96f9]:hover:not(.collapse-item--disabled) {\n border-color: var(--c-primary, #409eff);\n}\n.c-collapse-panel--ghost .collapse-item__header[data-v-08dc96f9] {\n background: transparent;\n}\n.c-collapse-panel--ghost .collapse-item__header[data-v-08dc96f9]:hover {\n background: var(--c-bg-card, #fff);\n}\n.c-collapse-panel--ghost .collapse-item__content[data-v-08dc96f9] {\n padding-left: 28px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default[data-v-08dc96f9] {\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:first-child .collapse-item__header[data-v-08dc96f9] {\n border-radius: 8px 8px 0 0;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item[data-v-08dc96f9]:last-child {\n border-bottom: none;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child .collapse-item__header[data-v-08dc96f9] {\n border-radius: 0 0 8px 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child.collapse-item--active .collapse-item__header[data-v-08dc96f9] {\n border-radius: 0;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child .collapse-item__header[data-v-08dc96f9] {\n border-radius: 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child.collapse-item--active .collapse-item__header[data-v-08dc96f9] {\n border-radius: 8px 8px 0 0;\n}\n.c-collapse-panel--icon-right .collapse-item__header[data-v-08dc96f9] {\n flex-direction: row-reverse;\n}\n.c-collapse-panel--icon-right .collapse-item__arrow[data-v-08dc96f9] {\n margin-left: auto;\n margin-right: 0;\n}\n.c-collapse-panel--icon-right .collapse-item__title-area[data-v-08dc96f9] {\n margin-left: 0;\n}\n\n/* ─── 面板项 ─────────────────────────────────────── */\n.collapse-item--disabled .collapse-item__header[data-v-08dc96f9] {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* ─── 面板头部 ───────────────────────────────────── */\n.collapse-item__header[data-v-08dc96f9] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n user-select: none;\n background: transparent;\n transition: background-color 0.15s ease;\n outline: none;\n}\n.collapse-item__header[data-v-08dc96f9]:hover:not([aria-disabled=true]) {\n background: var(--c-bg-hover, rgba(0, 0, 0, 0.04));\n}\n.collapse-item__header[data-v-08dc96f9]:focus-visible {\n outline: 2px solid var(--c-primary, #409eff);\n outline-offset: -2px;\n border-radius: 4px;\n}\n\n/* ─── 展开箭头 ───────────────────────────────────── */\n.collapse-item__arrow[data-v-08dc96f9] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n font-size: 16px;\n color: var(--c-text-3, #999);\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.collapse-item__arrow--expanded[data-v-08dc96f9] {\n transform: rotate(90deg);\n}\n\n/* ─── 标题区域 ───────────────────────────────────── */\n.collapse-item__title-area[data-v-08dc96f9] {\n flex: 1;\n min-width: 0;\n}\n.collapse-item__title-group[data-v-08dc96f9] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.collapse-item__icon[data-v-08dc96f9] {\n flex-shrink: 0;\n font-size: 18px;\n color: var(--c-primary, #409eff);\n}\n.collapse-item__title[data-v-08dc96f9] {\n font-size: 14px;\n font-weight: 600;\n color: var(--c-text-1, #333);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.collapse-item__subtitle[data-v-08dc96f9] {\n font-size: 12px;\n color: var(--c-text-4, #ccc);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── 头部右侧操作区 ────────────────────────────── */\n.collapse-item__extra[data-v-08dc96f9] {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 6px;\n margin-left: auto;\n}\n\n/* ─── 内容区域 ───────────────────────────────────── */\n.collapse-item__content-wrapper[data-v-08dc96f9] {\n transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height;\n}\n.collapse-item__content[data-v-08dc96f9] {\n padding: 0 16px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--c-text-2, #666);\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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_CollapsePanel-CWkFCqNQ.css","names":[],"sources":["../src/components/C_CollapsePanel/index.vue?vue&type=style&index=0&scoped=4e11a983&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* ─── 变量 ───────────────────────────────────────── */\n/* ─── 容器 ───────────────────────────────────────── */\n.c-collapse-panel[data-v-4e11a983] {\n width: 100%;\n /* ── default 变体 ────────────────────────────── */\n /* ── card 变体 ───────────────────────────────── */\n /* ── ghost 变体(无边框极简) ──────────────────── */\n /* ── bordered 修饰符 ─────────────────────────── */\n /* ── 图标右侧模式 ────────────────────────────── */\n}\n.c-collapse-panel--default .collapse-item[data-v-4e11a983] {\n border-bottom: 1px solid var(--c-border, #e1e4e8);\n}\n.c-collapse-panel--default .collapse-item[data-v-4e11a983]:last-child {\n border-bottom: none;\n}\n.c-collapse-panel--card[data-v-4e11a983] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.c-collapse-panel--card .collapse-item[data-v-4e11a983] {\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: 8px;\n background: var(--c-bg-card, #fff);\n transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.c-collapse-panel--card .collapse-item--active[data-v-4e11a983] {\n box-shadow: 0 1px 6px rgba(0, 0, 0, 0.08);\n}\n.c-collapse-panel--card .collapse-item[data-v-4e11a983]:hover:not(.collapse-item--disabled) {\n border-color: var(--c-primary, #409eff);\n}\n.c-collapse-panel--ghost .collapse-item__header[data-v-4e11a983] {\n background: transparent;\n}\n.c-collapse-panel--ghost .collapse-item__header[data-v-4e11a983]:hover {\n background: var(--c-bg-card, #fff);\n}\n.c-collapse-panel--ghost .collapse-item__content[data-v-4e11a983] {\n padding-left: 28px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default[data-v-4e11a983] {\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:first-child .collapse-item__header[data-v-4e11a983] {\n border-radius: 8px 8px 0 0;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item[data-v-4e11a983]:last-child {\n border-bottom: none;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child .collapse-item__header[data-v-4e11a983] {\n border-radius: 0 0 8px 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child.collapse-item--active .collapse-item__header[data-v-4e11a983] {\n border-radius: 0;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child .collapse-item__header[data-v-4e11a983] {\n border-radius: 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child.collapse-item--active .collapse-item__header[data-v-4e11a983] {\n border-radius: 8px 8px 0 0;\n}\n.c-collapse-panel--icon-right .collapse-item__header[data-v-4e11a983] {\n flex-direction: row-reverse;\n}\n.c-collapse-panel--icon-right .collapse-item__arrow[data-v-4e11a983] {\n margin-left: auto;\n margin-right: 0;\n}\n.c-collapse-panel--icon-right .collapse-item__title-area[data-v-4e11a983] {\n margin-left: 0;\n}\n\n/* ─── 面板项 ─────────────────────────────────────── */\n.collapse-item--disabled .collapse-item__header[data-v-4e11a983] {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* ─── 面板头部 ───────────────────────────────────── */\n.collapse-item__header[data-v-4e11a983] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n user-select: none;\n background: transparent;\n transition: background-color 0.15s ease;\n outline: none;\n}\n.collapse-item__header[data-v-4e11a983]:hover:not([aria-disabled=true]) {\n background: var(--c-bg-hover, rgba(0, 0, 0, 0.04));\n}\n.collapse-item__header[data-v-4e11a983]:focus-visible {\n outline: 2px solid var(--c-primary, #409eff);\n outline-offset: -2px;\n border-radius: 4px;\n}\n\n/* ─── 展开箭头 ───────────────────────────────────── */\n.collapse-item__arrow[data-v-4e11a983] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n font-size: 16px;\n color: var(--c-text-3, #999);\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.collapse-item__arrow--expanded[data-v-4e11a983] {\n transform: rotate(90deg);\n}\n\n/* ─── 标题区域 ───────────────────────────────────── */\n.collapse-item__title-area[data-v-4e11a983] {\n flex: 1;\n min-width: 0;\n}\n.collapse-item__title-group[data-v-4e11a983] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.collapse-item__icon[data-v-4e11a983] {\n flex-shrink: 0;\n font-size: 18px;\n color: var(--c-primary, #409eff);\n}\n.collapse-item__title[data-v-4e11a983] {\n font-size: 14px;\n font-weight: 600;\n color: var(--c-text-1, #333);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.collapse-item__subtitle[data-v-4e11a983] {\n font-size: 12px;\n color: var(--c-text-4, #ccc);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── 头部右侧操作区 ────────────────────────────── */\n.collapse-item__extra[data-v-4e11a983] {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 6px;\n margin-left: auto;\n}\n\n/* ─── 内容区域 ───────────────────────────────────── */\n.collapse-item__content-wrapper[data-v-4e11a983] {\n transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height;\n}\n.collapse-item__content[data-v-4e11a983] {\n padding: 0 16px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--c-text-2, #666);\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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"C_CollapsePanel-BkOivqn3.css","names":[],"sources":["../src/components/C_CollapsePanel/index.vue?vue&type=style&index=0&scoped=08dc96f9&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* ─── 变量 ───────────────────────────────────────── */\n/* ─── 容器 ───────────────────────────────────────── */\n.c-collapse-panel[data-v-08dc96f9] {\n width: 100%;\n /* ── default 变体 ────────────────────────────── */\n /* ── card 变体 ───────────────────────────────── */\n /* ── ghost 变体(无边框极简) ──────────────────── */\n /* ── bordered 修饰符 ─────────────────────────── */\n /* ── 图标右侧模式 ────────────────────────────── */\n}\n.c-collapse-panel--default .collapse-item[data-v-08dc96f9] {\n border-bottom: 1px solid var(--c-border, #e1e4e8);\n}\n.c-collapse-panel--default .collapse-item[data-v-08dc96f9]:last-child {\n border-bottom: none;\n}\n.c-collapse-panel--card[data-v-08dc96f9] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.c-collapse-panel--card .collapse-item[data-v-08dc96f9] {\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: 8px;\n background: var(--c-bg-card, #fff);\n transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.c-collapse-panel--card .collapse-item--active[data-v-08dc96f9] {\n box-shadow: 0 1px 6px rgba(0, 0, 0, 0.08);\n}\n.c-collapse-panel--card .collapse-item[data-v-08dc96f9]:hover:not(.collapse-item--disabled) {\n border-color: var(--c-primary, #409eff);\n}\n.c-collapse-panel--ghost .collapse-item__header[data-v-08dc96f9] {\n background: transparent;\n}\n.c-collapse-panel--ghost .collapse-item__header[data-v-08dc96f9]:hover {\n background: var(--c-bg-card, #fff);\n}\n.c-collapse-panel--ghost .collapse-item__content[data-v-08dc96f9] {\n padding-left: 28px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default[data-v-08dc96f9] {\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:first-child .collapse-item__header[data-v-08dc96f9] {\n border-radius: 8px 8px 0 0;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item[data-v-08dc96f9]:last-child {\n border-bottom: none;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child .collapse-item__header[data-v-08dc96f9] {\n border-radius: 0 0 8px 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child.collapse-item--active .collapse-item__header[data-v-08dc96f9] {\n border-radius: 0;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child .collapse-item__header[data-v-08dc96f9] {\n border-radius: 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child.collapse-item--active .collapse-item__header[data-v-08dc96f9] {\n border-radius: 8px 8px 0 0;\n}\n.c-collapse-panel--icon-right .collapse-item__header[data-v-08dc96f9] {\n flex-direction: row-reverse;\n}\n.c-collapse-panel--icon-right .collapse-item__arrow[data-v-08dc96f9] {\n margin-left: auto;\n margin-right: 0;\n}\n.c-collapse-panel--icon-right .collapse-item__title-area[data-v-08dc96f9] {\n margin-left: 0;\n}\n\n/* ─── 面板项 ─────────────────────────────────────── */\n.collapse-item--disabled .collapse-item__header[data-v-08dc96f9] {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* ─── 面板头部 ───────────────────────────────────── */\n.collapse-item__header[data-v-08dc96f9] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n user-select: none;\n background: transparent;\n transition: background-color 0.15s ease;\n outline: none;\n}\n.collapse-item__header[data-v-08dc96f9]:hover:not([aria-disabled=true]) {\n background: var(--c-bg-hover, rgba(0, 0, 0, 0.04));\n}\n.collapse-item__header[data-v-08dc96f9]:focus-visible {\n outline: 2px solid var(--c-primary, #409eff);\n outline-offset: -2px;\n border-radius: 4px;\n}\n\n/* ─── 展开箭头 ───────────────────────────────────── */\n.collapse-item__arrow[data-v-08dc96f9] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n font-size: 16px;\n color: var(--c-text-3, #999);\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.collapse-item__arrow--expanded[data-v-08dc96f9] {\n transform: rotate(90deg);\n}\n\n/* ─── 标题区域 ───────────────────────────────────── */\n.collapse-item__title-area[data-v-08dc96f9] {\n flex: 1;\n min-width: 0;\n}\n.collapse-item__title-group[data-v-08dc96f9] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.collapse-item__icon[data-v-08dc96f9] {\n flex-shrink: 0;\n font-size: 18px;\n color: var(--c-primary, #409eff);\n}\n.collapse-item__title[data-v-08dc96f9] {\n font-size: 14px;\n font-weight: 600;\n color: var(--c-text-1, #333);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.collapse-item__subtitle[data-v-08dc96f9] {\n font-size: 12px;\n color: var(--c-text-4, #ccc);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── 头部右侧操作区 ────────────────────────────── */\n.collapse-item__extra[data-v-08dc96f9] {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 6px;\n margin-left: auto;\n}\n\n/* ─── 内容区域 ───────────────────────────────────── */\n.collapse-item__content-wrapper[data-v-08dc96f9] {\n transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height;\n}\n.collapse-item__content[data-v-08dc96f9] {\n padding: 0 16px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--c-text-2, #666);\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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_CollapsePanel-pcVJA_4z.css","names":[],"sources":["../src/components/C_CollapsePanel/index.vue?vue&type=style&index=0&scoped=4e11a983&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* ─── 变量 ───────────────────────────────────────── */\n/* ─── 容器 ───────────────────────────────────────── */\n.c-collapse-panel[data-v-4e11a983] {\n width: 100%;\n /* ── default 变体 ────────────────────────────── */\n /* ── card 变体 ───────────────────────────────── */\n /* ── ghost 变体(无边框极简) ──────────────────── */\n /* ── bordered 修饰符 ─────────────────────────── */\n /* ── 图标右侧模式 ────────────────────────────── */\n}\n.c-collapse-panel--default .collapse-item[data-v-4e11a983] {\n border-bottom: 1px solid var(--c-border, #e1e4e8);\n}\n.c-collapse-panel--default .collapse-item[data-v-4e11a983]:last-child {\n border-bottom: none;\n}\n.c-collapse-panel--card[data-v-4e11a983] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.c-collapse-panel--card .collapse-item[data-v-4e11a983] {\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: 8px;\n background: var(--c-bg-card, #fff);\n transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.c-collapse-panel--card .collapse-item--active[data-v-4e11a983] {\n box-shadow: 0 1px 6px rgba(0, 0, 0, 0.08);\n}\n.c-collapse-panel--card .collapse-item[data-v-4e11a983]:hover:not(.collapse-item--disabled) {\n border-color: var(--c-primary, #409eff);\n}\n.c-collapse-panel--ghost .collapse-item__header[data-v-4e11a983] {\n background: transparent;\n}\n.c-collapse-panel--ghost .collapse-item__header[data-v-4e11a983]:hover {\n background: var(--c-bg-card, #fff);\n}\n.c-collapse-panel--ghost .collapse-item__content[data-v-4e11a983] {\n padding-left: 28px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default[data-v-4e11a983] {\n border: 1px solid var(--c-border, #e1e4e8);\n border-radius: 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:first-child .collapse-item__header[data-v-4e11a983] {\n border-radius: 8px 8px 0 0;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item[data-v-4e11a983]:last-child {\n border-bottom: none;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child .collapse-item__header[data-v-4e11a983] {\n border-radius: 0 0 8px 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child.collapse-item--active .collapse-item__header[data-v-4e11a983] {\n border-radius: 0;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child .collapse-item__header[data-v-4e11a983] {\n border-radius: 8px;\n}\n.c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child.collapse-item--active .collapse-item__header[data-v-4e11a983] {\n border-radius: 8px 8px 0 0;\n}\n.c-collapse-panel--icon-right .collapse-item__header[data-v-4e11a983] {\n flex-direction: row-reverse;\n}\n.c-collapse-panel--icon-right .collapse-item__arrow[data-v-4e11a983] {\n margin-left: auto;\n margin-right: 0;\n}\n.c-collapse-panel--icon-right .collapse-item__title-area[data-v-4e11a983] {\n margin-left: 0;\n}\n\n/* ─── 面板项 ─────────────────────────────────────── */\n.collapse-item--disabled .collapse-item__header[data-v-4e11a983] {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* ─── 面板头部 ───────────────────────────────────── */\n.collapse-item__header[data-v-4e11a983] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n cursor: pointer;\n user-select: none;\n background: transparent;\n transition: background-color 0.15s ease;\n outline: none;\n}\n.collapse-item__header[data-v-4e11a983]:hover:not([aria-disabled=true]) {\n background: var(--c-bg-hover, rgba(0, 0, 0, 0.04));\n}\n.collapse-item__header[data-v-4e11a983]:focus-visible {\n outline: 2px solid var(--c-primary, #409eff);\n outline-offset: -2px;\n border-radius: 4px;\n}\n\n/* ─── 展开箭头 ───────────────────────────────────── */\n.collapse-item__arrow[data-v-4e11a983] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n font-size: 16px;\n color: var(--c-text-3, #999);\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.collapse-item__arrow--expanded[data-v-4e11a983] {\n transform: rotate(90deg);\n}\n\n/* ─── 标题区域 ───────────────────────────────────── */\n.collapse-item__title-area[data-v-4e11a983] {\n flex: 1;\n min-width: 0;\n}\n.collapse-item__title-group[data-v-4e11a983] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.collapse-item__icon[data-v-4e11a983] {\n flex-shrink: 0;\n font-size: 18px;\n color: var(--c-primary, #409eff);\n}\n.collapse-item__title[data-v-4e11a983] {\n font-size: 14px;\n font-weight: 600;\n color: var(--c-text-1, #333);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.collapse-item__subtitle[data-v-4e11a983] {\n font-size: 12px;\n color: var(--c-text-4, #ccc);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── 头部右侧操作区 ────────────────────────────── */\n.collapse-item__extra[data-v-4e11a983] {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 6px;\n margin-left: auto;\n}\n\n/* ─── 内容区域 ───────────────────────────────────── */\n.collapse-item__content-wrapper[data-v-4e11a983] {\n transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height;\n}\n.collapse-item__content[data-v-4e11a983] {\n padding: 0 16px 16px;\n font-size: 14px;\n line-height: 1.6;\n color: var(--c-text-2, #666);\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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./C_Icon.js`);const e=require(`./C_CollapsePanel.js`);exports.C_CollapsePanel=e.t,exports.useCollapsePanel=e.n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_CollapsePanel.js`);exports.C_CollapsePanel=e.t,exports.useCollapsePanel=e.n;
@@ -1,6 +1,6 @@
1
1
  /* unplugin-vue-components disabled *//* ─── 变量 ───────────────────────────────────────── */
2
2
  /* ─── 容器 ───────────────────────────────────────── */
3
- .c-collapse-panel[data-v-08dc96f9] {
3
+ .c-collapse-panel[data-v-4e11a983] {
4
4
  width: 100%;
5
5
  /* ── default 变体 ────────────────────────────── */
6
6
  /* ── card 变体 ───────────────────────────────── */
@@ -8,79 +8,79 @@
8
8
  /* ── bordered 修饰符 ─────────────────────────── */
9
9
  /* ── 图标右侧模式 ────────────────────────────── */
10
10
  }
11
- .c-collapse-panel--default .collapse-item[data-v-08dc96f9] {
11
+ .c-collapse-panel--default .collapse-item[data-v-4e11a983] {
12
12
  border-bottom: 1px solid var(--c-border, #e1e4e8);
13
13
  }
14
- .c-collapse-panel--default .collapse-item[data-v-08dc96f9]:last-child {
14
+ .c-collapse-panel--default .collapse-item[data-v-4e11a983]:last-child {
15
15
  border-bottom: none;
16
16
  }
17
- .c-collapse-panel--card[data-v-08dc96f9] {
17
+ .c-collapse-panel--card[data-v-4e11a983] {
18
18
  display: flex;
19
19
  flex-direction: column;
20
20
  gap: 8px;
21
21
  }
22
- .c-collapse-panel--card .collapse-item[data-v-08dc96f9] {
22
+ .c-collapse-panel--card .collapse-item[data-v-4e11a983] {
23
23
  border: 1px solid var(--c-border, #e1e4e8);
24
24
  border-radius: 8px;
25
25
  background: var(--c-bg-card, #fff);
26
26
  transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);
27
27
  }
28
- .c-collapse-panel--card .collapse-item--active[data-v-08dc96f9] {
28
+ .c-collapse-panel--card .collapse-item--active[data-v-4e11a983] {
29
29
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.08);
30
30
  }
31
- .c-collapse-panel--card .collapse-item[data-v-08dc96f9]:hover:not(.collapse-item--disabled) {
31
+ .c-collapse-panel--card .collapse-item[data-v-4e11a983]:hover:not(.collapse-item--disabled) {
32
32
  border-color: var(--c-primary, #409eff);
33
33
  }
34
- .c-collapse-panel--ghost .collapse-item__header[data-v-08dc96f9] {
34
+ .c-collapse-panel--ghost .collapse-item__header[data-v-4e11a983] {
35
35
  background: transparent;
36
36
  }
37
- .c-collapse-panel--ghost .collapse-item__header[data-v-08dc96f9]:hover {
37
+ .c-collapse-panel--ghost .collapse-item__header[data-v-4e11a983]:hover {
38
38
  background: var(--c-bg-card, #fff);
39
39
  }
40
- .c-collapse-panel--ghost .collapse-item__content[data-v-08dc96f9] {
40
+ .c-collapse-panel--ghost .collapse-item__content[data-v-4e11a983] {
41
41
  padding-left: 28px;
42
42
  }
43
- .c-collapse-panel--bordered.c-collapse-panel--default[data-v-08dc96f9] {
43
+ .c-collapse-panel--bordered.c-collapse-panel--default[data-v-4e11a983] {
44
44
  border: 1px solid var(--c-border, #e1e4e8);
45
45
  border-radius: 8px;
46
46
  }
47
- .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:first-child .collapse-item__header[data-v-08dc96f9] {
47
+ .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:first-child .collapse-item__header[data-v-4e11a983] {
48
48
  border-radius: 8px 8px 0 0;
49
49
  }
50
- .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item[data-v-08dc96f9]:last-child {
50
+ .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item[data-v-4e11a983]:last-child {
51
51
  border-bottom: none;
52
52
  }
53
- .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child .collapse-item__header[data-v-08dc96f9] {
53
+ .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child .collapse-item__header[data-v-4e11a983] {
54
54
  border-radius: 0 0 8px 8px;
55
55
  }
56
- .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child.collapse-item--active .collapse-item__header[data-v-08dc96f9] {
56
+ .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:last-child.collapse-item--active .collapse-item__header[data-v-4e11a983] {
57
57
  border-radius: 0;
58
58
  }
59
- .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child .collapse-item__header[data-v-08dc96f9] {
59
+ .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child .collapse-item__header[data-v-4e11a983] {
60
60
  border-radius: 8px;
61
61
  }
62
- .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child.collapse-item--active .collapse-item__header[data-v-08dc96f9] {
62
+ .c-collapse-panel--bordered.c-collapse-panel--default .collapse-item:only-child.collapse-item--active .collapse-item__header[data-v-4e11a983] {
63
63
  border-radius: 8px 8px 0 0;
64
64
  }
65
- .c-collapse-panel--icon-right .collapse-item__header[data-v-08dc96f9] {
65
+ .c-collapse-panel--icon-right .collapse-item__header[data-v-4e11a983] {
66
66
  flex-direction: row-reverse;
67
67
  }
68
- .c-collapse-panel--icon-right .collapse-item__arrow[data-v-08dc96f9] {
68
+ .c-collapse-panel--icon-right .collapse-item__arrow[data-v-4e11a983] {
69
69
  margin-left: auto;
70
70
  margin-right: 0;
71
71
  }
72
- .c-collapse-panel--icon-right .collapse-item__title-area[data-v-08dc96f9] {
72
+ .c-collapse-panel--icon-right .collapse-item__title-area[data-v-4e11a983] {
73
73
  margin-left: 0;
74
74
  }
75
75
 
76
76
  /* ─── 面板项 ─────────────────────────────────────── */
77
- .collapse-item--disabled .collapse-item__header[data-v-08dc96f9] {
77
+ .collapse-item--disabled .collapse-item__header[data-v-4e11a983] {
78
78
  cursor: not-allowed;
79
79
  opacity: 0.5;
80
80
  }
81
81
 
82
82
  /* ─── 面板头部 ───────────────────────────────────── */
83
- .collapse-item__header[data-v-08dc96f9] {
83
+ .collapse-item__header[data-v-4e11a983] {
84
84
  display: flex;
85
85
  align-items: center;
86
86
  gap: 8px;
@@ -91,17 +91,17 @@
91
91
  transition: background-color 0.15s ease;
92
92
  outline: none;
93
93
  }
94
- .collapse-item__header[data-v-08dc96f9]:hover:not([aria-disabled=true]) {
94
+ .collapse-item__header[data-v-4e11a983]:hover:not([aria-disabled=true]) {
95
95
  background: var(--c-bg-hover, rgba(0, 0, 0, 0.04));
96
96
  }
97
- .collapse-item__header[data-v-08dc96f9]:focus-visible {
97
+ .collapse-item__header[data-v-4e11a983]:focus-visible {
98
98
  outline: 2px solid var(--c-primary, #409eff);
99
99
  outline-offset: -2px;
100
100
  border-radius: 4px;
101
101
  }
102
102
 
103
103
  /* ─── 展开箭头 ───────────────────────────────────── */
104
- .collapse-item__arrow[data-v-08dc96f9] {
104
+ .collapse-item__arrow[data-v-4e11a983] {
105
105
  display: flex;
106
106
  align-items: center;
107
107
  justify-content: center;
@@ -112,26 +112,26 @@
112
112
  color: var(--c-text-3, #999);
113
113
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
114
114
  }
115
- .collapse-item__arrow--expanded[data-v-08dc96f9] {
115
+ .collapse-item__arrow--expanded[data-v-4e11a983] {
116
116
  transform: rotate(90deg);
117
117
  }
118
118
 
119
119
  /* ─── 标题区域 ───────────────────────────────────── */
120
- .collapse-item__title-area[data-v-08dc96f9] {
120
+ .collapse-item__title-area[data-v-4e11a983] {
121
121
  flex: 1;
122
122
  min-width: 0;
123
123
  }
124
- .collapse-item__title-group[data-v-08dc96f9] {
124
+ .collapse-item__title-group[data-v-4e11a983] {
125
125
  display: flex;
126
126
  align-items: center;
127
127
  gap: 8px;
128
128
  }
129
- .collapse-item__icon[data-v-08dc96f9] {
129
+ .collapse-item__icon[data-v-4e11a983] {
130
130
  flex-shrink: 0;
131
131
  font-size: 18px;
132
132
  color: var(--c-primary, #409eff);
133
133
  }
134
- .collapse-item__title[data-v-08dc96f9] {
134
+ .collapse-item__title[data-v-4e11a983] {
135
135
  font-size: 14px;
136
136
  font-weight: 600;
137
137
  color: var(--c-text-1, #333);
@@ -139,7 +139,7 @@
139
139
  overflow: hidden;
140
140
  text-overflow: ellipsis;
141
141
  }
142
- .collapse-item__subtitle[data-v-08dc96f9] {
142
+ .collapse-item__subtitle[data-v-4e11a983] {
143
143
  font-size: 12px;
144
144
  color: var(--c-text-4, #ccc);
145
145
  white-space: nowrap;
@@ -148,7 +148,7 @@
148
148
  }
149
149
 
150
150
  /* ─── 头部右侧操作区 ────────────────────────────── */
151
- .collapse-item__extra[data-v-08dc96f9] {
151
+ .collapse-item__extra[data-v-4e11a983] {
152
152
  flex-shrink: 0;
153
153
  display: flex;
154
154
  align-items: center;
@@ -157,15 +157,15 @@
157
157
  }
158
158
 
159
159
  /* ─── 内容区域 ───────────────────────────────────── */
160
- .collapse-item__content-wrapper[data-v-08dc96f9] {
160
+ .collapse-item__content-wrapper[data-v-4e11a983] {
161
161
  transition: height 0.25s cubic-bezier(0.4, 0, 0.2, 1);
162
162
  will-change: height;
163
163
  }
164
- .collapse-item__content[data-v-08dc96f9] {
164
+ .collapse-item__content[data-v-4e11a983] {
165
165
  padding: 0 16px 16px;
166
166
  font-size: 14px;
167
167
  line-height: 1.6;
168
168
  color: var(--c-text-2, #666);
169
169
  }
170
170
 
171
- /*# sourceMappingURL=C_CollapsePanel-BkOivqn3.css.map*/
171
+ /*# sourceMappingURL=C_CollapsePanel-CWkFCqNQ.css.map*/
@@ -1 +1 @@
1
- import"./C_Icon2.js";import{n as e,t}from"./C_CollapsePanel2.js";export{t as C_CollapsePanel,e as useCollapsePanel};
1
+ import{n as e,t}from"./C_CollapsePanel2.js";export{t as C_CollapsePanel,e as useCollapsePanel};