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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/dist/C_ActionBar-BAcfOfRw.css.map +1 -0
  2. package/dist/C_ActionBar-DG2HW7t5.css.map +1 -0
  3. package/dist/C_ActionBar.css +47 -47
  4. package/dist/C_ActionBar.js.map +1 -1
  5. package/dist/C_ActionBar2.js +1 -1
  6. package/dist/C_ActionBar2.js.map +1 -1
  7. package/dist/{C_AntV-BY8jqqmi.css.map → C_AntV-D_jTK8oZ.css.map} +1 -1
  8. package/dist/{C_AntV-BbkHc-_a.css.map → C_AntV-DanTAq22.css.map} +1 -1
  9. package/dist/C_AntV.css +79 -79
  10. package/dist/C_AntV.js.map +1 -1
  11. package/dist/C_AntV2.js +3 -3
  12. package/dist/C_AntV2.js.map +1 -1
  13. package/dist/{C_AudioPlayer-DKRIGhi7.css.map → C_AudioPlayer-BnYIJXPD.css.map} +1 -1
  14. package/dist/{C_AudioPlayer-DlB6eNsa.css.map → C_AudioPlayer-ldTy9Y34.css.map} +1 -1
  15. package/dist/C_AudioPlayer.css +47 -47
  16. package/dist/C_AudioPlayer.js.map +1 -1
  17. package/dist/C_AudioPlayer2.js +1 -1
  18. package/dist/C_AudioPlayer2.js.map +1 -1
  19. package/dist/{C_AvatarGroup-D02zci-i.css.map → C_AvatarGroup-B9d-GJ9c.css.map} +1 -1
  20. package/dist/{C_AvatarGroup-DatHaUlY.css.map → C_AvatarGroup-SIzxuuZr.css.map} +1 -1
  21. package/dist/C_AvatarGroup.css +21 -21
  22. package/dist/C_AvatarGroup.js.map +1 -1
  23. package/dist/C_AvatarGroup2.js +1 -1
  24. package/dist/C_AvatarGroup2.js.map +1 -1
  25. package/dist/{C_Barcode-DYDRDe2O.css.map → C_Barcode-CAU2mFcx.css.map} +1 -1
  26. package/dist/{C_Barcode-muJdc_O4.css.map → C_Barcode-D2oJaEg3.css.map} +1 -1
  27. package/dist/C_Barcode.css +7 -7
  28. package/dist/C_Barcode.js.map +1 -1
  29. package/dist/C_Barcode2.js +1 -1
  30. package/dist/C_Barcode2.js.map +1 -1
  31. package/dist/C_Breadcrumb.js.map +1 -1
  32. package/dist/C_Breadcrumb2.js +1 -1
  33. package/dist/C_Breadcrumb2.js.map +1 -1
  34. package/dist/{C_Captcha-9_hk6VmY.css.map → C_Captcha-B3yrtG7t.css.map} +1 -1
  35. package/dist/{C_Captcha-MtASlJ0f.css.map → C_Captcha-D4hDdWDu.css.map} +1 -1
  36. package/dist/C_Captcha.css +19 -19
  37. package/dist/C_Captcha.js.map +1 -1
  38. package/dist/C_Captcha2.js +1 -1
  39. package/dist/C_Captcha2.js.map +1 -1
  40. package/dist/C_Cascade-BE7t1OX5.css.map +1 -0
  41. package/dist/C_Cascade-CpDiau1y.css.map +1 -0
  42. package/dist/C_Cascade.css +3 -3
  43. package/dist/C_Cascade.js.map +1 -1
  44. package/dist/C_Cascade2.js +1 -1
  45. package/dist/C_Cascade2.js.map +1 -1
  46. package/dist/{C_Chat-Csjz_BFw.css.map → C_Chat-CF1SU7mc.css.map} +1 -1
  47. package/dist/{C_Chat-DO1ZBA_0.css.map → C_Chat-DeUv6uuI.css.map} +1 -1
  48. package/dist/C_Chat.css +65 -65
  49. package/dist/C_Chat.js.map +1 -1
  50. package/dist/C_Chat2.js +1 -1
  51. package/dist/C_Chat2.js.map +1 -1
  52. package/dist/{C_City-Bam08Qv3.css.map → C_City-DdkX6u64.css.map} +1 -1
  53. package/dist/{C_City-Bb3W-KaN.css.map → C_City-iP-dIvui.css.map} +1 -1
  54. package/dist/C_City.css +29 -29
  55. package/dist/C_City.js.map +1 -1
  56. package/dist/C_City2.js +1 -1
  57. package/dist/C_City2.js.map +1 -1
  58. package/dist/C_Code-BWmJMNS7.css.map +1 -0
  59. package/dist/C_Code-k14vjgVl.css.map +1 -0
  60. package/dist/C_Code.css +3 -3
  61. package/dist/C_Code.js.map +1 -1
  62. package/dist/C_Code2.js +1 -1
  63. package/dist/C_Code2.js.map +1 -1
  64. package/dist/{C_CollapsePanel-CWkFCqNQ.css.map → C_CollapsePanel-BSKcWSmY.css.map} +1 -1
  65. package/dist/{C_CollapsePanel-pcVJA_4z.css.map → C_CollapsePanel-DRvRq8tB.css.map} +1 -1
  66. package/dist/C_CollapsePanel.css +35 -35
  67. package/dist/C_CollapsePanel.js.map +1 -1
  68. package/dist/C_CollapsePanel2.js +1 -1
  69. package/dist/C_CollapsePanel2.js.map +1 -1
  70. package/dist/{C_ContextMenu-B3Cgz_wJ.css.map → C_ContextMenu-Bn_uhJSo.css.map} +1 -1
  71. package/dist/{C_ContextMenu-u1LixF3_.css.map → C_ContextMenu-C9iuxG2n.css.map} +1 -1
  72. package/dist/C_ContextMenu.css +17 -17
  73. package/dist/C_ContextMenu.js.map +1 -1
  74. package/dist/C_ContextMenu2.js +1 -1
  75. package/dist/C_ContextMenu2.js.map +1 -1
  76. package/dist/{C_Cron-Civir5-I.css.map → C_Cron-BIQ2By9v.css.map} +1 -1
  77. package/dist/{C_Cron-iw3qpMsy.css.map → C_Cron-BNSAGD6A.css.map} +1 -1
  78. package/dist/C_Cron.css +57 -57
  79. package/dist/C_Cron.js.map +1 -1
  80. package/dist/C_Cron2.js +1 -1
  81. package/dist/C_Cron2.js.map +1 -1
  82. package/dist/C_Date.js.map +1 -1
  83. package/dist/C_Date2.js +1 -1
  84. package/dist/C_Date2.js.map +1 -1
  85. package/dist/{C_Draggable-BCjIvIwT.css.map → C_Draggable-BDAbk4s5.css.map} +1 -1
  86. package/dist/{C_Draggable-DwkSlCOS.css.map → C_Draggable-UhfDLXop.css.map} +1 -1
  87. package/dist/C_Draggable.css +46 -46
  88. package/dist/C_Draggable.js.map +1 -1
  89. package/dist/C_Draggable2.js +1 -1
  90. package/dist/C_Draggable2.js.map +1 -1
  91. package/dist/{C_Editor-BfjjYQ9B.css.map → C_Editor-CZOaChru.css.map} +1 -1
  92. package/dist/{C_Editor-Do2StvoJ.css.map → C_Editor-kJAQq5z6.css.map} +1 -1
  93. package/dist/C_Editor.css +14 -14
  94. package/dist/C_Editor.js.map +1 -1
  95. package/dist/C_Editor2.js +1 -1
  96. package/dist/C_Editor2.js.map +1 -1
  97. package/dist/{C_FilePreview-BhcbiXsV.css.map → C_FilePreview-Bs_omgJS.css.map} +1 -1
  98. package/dist/{C_FilePreview-DJudcIbW.css.map → C_FilePreview-DbwoyF2j.css.map} +1 -1
  99. package/dist/C_FilePreview.css +91 -91
  100. package/dist/C_FilePreview.js.map +1 -1
  101. package/dist/C_FilePreview2.js +1 -1
  102. package/dist/C_FilePreview2.js.map +1 -1
  103. package/dist/{C_Form-BtcAPIRi.css.map → C_Form-SCq-DZaZ.css.map} +1 -1
  104. package/dist/{C_Form-D_gwQ7hC.css.map → C_Form-mcd1nKvF.css.map} +1 -1
  105. package/dist/C_Form.css +223 -223
  106. package/dist/C_Form.js.map +1 -1
  107. package/dist/C_Form2.js +1 -1
  108. package/dist/C_Form2.js.map +1 -1
  109. package/dist/{C_FormSearch-Bi4XYjjk.css.map → C_FormSearch-C3F8peAY.css.map} +1 -1
  110. package/dist/{C_FormSearch-DUGOoX0u.css.map → C_FormSearch-qW56bJPo.css.map} +1 -1
  111. package/dist/C_FormSearch.css +45 -45
  112. package/dist/C_FormSearch.js.map +1 -1
  113. package/dist/C_FormSearch2.js +1 -1
  114. package/dist/C_FormSearch2.js.map +1 -1
  115. package/dist/{C_FormulaEditor-CJk3SSUJ.css.map → C_FormulaEditor-ChOvDbsZ.css.map} +1 -1
  116. package/dist/{C_FormulaEditor-Cy7mjfVO.css.map → C_FormulaEditor-mfiIUDY4.css.map} +1 -1
  117. package/dist/C_FormulaEditor.css +78 -78
  118. package/dist/C_FormulaEditor.js.map +1 -1
  119. package/dist/C_FormulaEditor2.js +1 -1
  120. package/dist/C_FormulaEditor2.js.map +1 -1
  121. package/dist/C_FullCalendar-C2nsqrgS.css.map +1 -0
  122. package/dist/C_FullCalendar-DdFtXVhy.css.map +1 -0
  123. package/dist/C_FullCalendar.css +2 -2
  124. package/dist/C_FullCalendar.js.map +1 -1
  125. package/dist/C_FullCalendar2.js +1 -1
  126. package/dist/C_FullCalendar2.js.map +1 -1
  127. package/dist/{C_GlobalSearch-B6wK3m3k.css.map → C_GlobalSearch-Dq4Wo01K.css.map} +1 -1
  128. package/dist/{C_GlobalSearch-DoPjldFm.css.map → C_GlobalSearch-RB7J43gu.css.map} +1 -1
  129. package/dist/C_GlobalSearch.css +112 -112
  130. package/dist/C_GlobalSearch.js.map +1 -1
  131. package/dist/C_GlobalSearch2.js +1 -1
  132. package/dist/C_GlobalSearch2.js.map +1 -1
  133. package/dist/C_Guide.js.map +1 -1
  134. package/dist/C_Guide2.js +1 -1
  135. package/dist/C_Guide2.js.map +1 -1
  136. package/dist/C_Icon.js.map +1 -1
  137. package/dist/C_Icon2.js.map +1 -1
  138. package/dist/{C_ImageCropper-BqZpkZfU.css.map → C_ImageCropper-CdTX2nxU.css.map} +1 -1
  139. package/dist/{C_ImageCropper-CylwGuzS.css.map → C_ImageCropper-ilOqPklJ.css.map} +1 -1
  140. package/dist/C_ImageCropper.css +23 -23
  141. package/dist/C_ImageCropper.js.map +1 -1
  142. package/dist/C_ImageCropper2.js +1 -1
  143. package/dist/C_ImageCropper2.js.map +1 -1
  144. package/dist/C_Language.js.map +1 -1
  145. package/dist/C_Language2.js +1 -1
  146. package/dist/C_Language2.js.map +1 -1
  147. package/dist/{C_Login-BkdnkBKX.css.map → C_Login-B3qYkLrN.css.map} +1 -1
  148. package/dist/{C_Login-VkMM6OJ2.css.map → C_Login-xMI1_ojE.css.map} +1 -1
  149. package/dist/C_Login.css +72 -72
  150. package/dist/C_Login.js.map +1 -1
  151. package/dist/C_Login2.js +1 -1
  152. package/dist/C_Login2.js.map +1 -1
  153. package/dist/{C_Map-DNnBcY70.css.map → C_Map-CWMMN58_.css.map} +1 -1
  154. package/dist/{C_Map-LEXIx6zM.css.map → C_Map-xSR2H-9o.css.map} +1 -1
  155. package/dist/C_Map.css +4 -4
  156. package/dist/C_Map.js.map +1 -1
  157. package/dist/C_Map2.js +1 -1
  158. package/dist/C_Map2.js.map +1 -1
  159. package/dist/{C_Markdown-DwmI0_0Q.css.map → C_Markdown-C7lTVJ1S.css.map} +1 -1
  160. package/dist/{C_Markdown-k0794RW0.css.map → C_Markdown-CZDm_baQ.css.map} +1 -1
  161. package/dist/C_Markdown.css +33 -33
  162. package/dist/C_Markdown.js.map +1 -1
  163. package/dist/C_Markdown2.js +1 -1
  164. package/dist/C_Markdown2.js.map +1 -1
  165. package/dist/C_Menu.js.map +1 -1
  166. package/dist/C_Menu2.js +1 -1
  167. package/dist/C_Menu2.js.map +1 -1
  168. package/dist/{C_NotificationCenter-DT6fQ79O.css.map → C_NotificationCenter-D7GGGWg7.css.map} +1 -1
  169. package/dist/{C_NotificationCenter-DbgBiyqB.css.map → C_NotificationCenter-SSmeHA45.css.map} +1 -1
  170. package/dist/C_NotificationCenter.css +89 -89
  171. package/dist/C_NotificationCenter.js.map +1 -1
  172. package/dist/C_NotificationCenter2.js +1 -1
  173. package/dist/C_NotificationCenter2.js.map +1 -1
  174. package/dist/C_OrgChart.js.map +1 -1
  175. package/dist/C_OrgChart2.js.map +1 -1
  176. package/dist/C_Progress.js.map +1 -1
  177. package/dist/C_Progress2.js +1 -1
  178. package/dist/C_Progress2.js.map +1 -1
  179. package/dist/{C_QRCode-CFNTda_1.css.map → C_QRCode-B_1lHUdx.css.map} +1 -1
  180. package/dist/{C_QRCode-CmWr9lK-.css.map → C_QRCode-CuQRYu0s.css.map} +1 -1
  181. package/dist/C_QRCode.css +9 -9
  182. package/dist/C_QRCode.js.map +1 -1
  183. package/dist/C_QRCode2.js +1 -1
  184. package/dist/C_QRCode2.js.map +1 -1
  185. package/dist/{C_Signature-BDx4ctsE.css.map → C_Signature-Bp-RBpAl.css.map} +1 -1
  186. package/dist/{C_Signature-Bz_uNbwv.css.map → C_Signature-Cb2VW1ok.css.map} +1 -1
  187. package/dist/C_Signature.css +15 -15
  188. package/dist/C_Signature.js.map +1 -1
  189. package/dist/C_Signature2.js +1 -1
  190. package/dist/C_Signature2.js.map +1 -1
  191. package/dist/C_Skeleton.js.map +1 -1
  192. package/dist/C_Skeleton2.js.map +1 -1
  193. package/dist/{C_SplitPane-BOwr1C7K.css.map → C_SplitPane-CgGWYsRE.css.map} +1 -1
  194. package/dist/{C_SplitPane-N-a_D-7F.css.map → C_SplitPane-DGf6WEeR.css.map} +1 -1
  195. package/dist/C_SplitPane.css +31 -31
  196. package/dist/C_SplitPane.js.map +1 -1
  197. package/dist/C_SplitPane2.js +1 -1
  198. package/dist/C_SplitPane2.js.map +1 -1
  199. package/dist/C_Steps-Buyg7Axn.css.map +1 -0
  200. package/dist/C_Steps-DNY91VbQ.css.map +1 -0
  201. package/dist/C_Steps.css +38 -38
  202. package/dist/C_Steps.js.map +1 -1
  203. package/dist/C_Steps2.js +1 -1
  204. package/dist/C_Steps2.js.map +1 -1
  205. package/dist/{C_Table-BcM5LqAM.css.map → C_Table--kbQaaBv.css.map} +1 -1
  206. package/dist/{C_Table-HATVoq1F.css.map → C_Table-D631kdXC.css.map} +1 -1
  207. package/dist/C_Table.css +104 -104
  208. package/dist/C_Table.js.map +1 -1
  209. package/dist/C_Table2.js +2 -2
  210. package/dist/C_Table2.js.map +1 -1
  211. package/dist/{C_TagsView-DX3LecK1.css.map → C_TagsView-COjGNM9h.css.map} +1 -1
  212. package/dist/{C_TagsView-DqOTa8bL.css.map → C_TagsView-zUDj9S06.css.map} +1 -1
  213. package/dist/C_TagsView.css +36 -36
  214. package/dist/C_TagsView.js.map +1 -1
  215. package/dist/C_TagsView2.js +1 -1
  216. package/dist/C_TagsView2.js.map +1 -1
  217. package/dist/C_Theme.js.map +1 -1
  218. package/dist/C_Theme2.js +1 -1
  219. package/dist/C_Theme2.js.map +1 -1
  220. package/dist/C_Time-BQ9PGy8B.css.map +1 -0
  221. package/dist/C_Time-CO73krC6.css.map +1 -0
  222. package/dist/C_Time.css +5 -5
  223. package/dist/C_Time.js.map +1 -1
  224. package/dist/C_Time2.js +1 -1
  225. package/dist/C_Time2.js.map +1 -1
  226. package/dist/{C_Timeline-BKkimrZx.css.map → C_Timeline-4rk0Dzgn.css.map} +1 -1
  227. package/dist/{C_Timeline-DTuSCX6p.css.map → C_Timeline-DdESmqwL.css.map} +1 -1
  228. package/dist/C_Timeline.css +45 -45
  229. package/dist/C_Timeline.js.map +1 -1
  230. package/dist/C_Timeline2.js +1 -1
  231. package/dist/C_Timeline2.js.map +1 -1
  232. package/dist/{C_Transfer-BOB6OBqS.css.map → C_Transfer-B-vjvhjI.css.map} +1 -1
  233. package/dist/{C_Transfer-Dpq7ezWC.css.map → C_Transfer-EzdHzZNv.css.map} +1 -1
  234. package/dist/C_Transfer.css +31 -31
  235. package/dist/C_Transfer.js.map +1 -1
  236. package/dist/C_Transfer2.js +1 -1
  237. package/dist/C_Transfer2.js.map +1 -1
  238. package/dist/{C_Tree-D98nX9qT.css.map → C_Tree-CsXgGfhn.css.map} +1 -1
  239. package/dist/{C_Tree-ulfm7b-P.css.map → C_Tree-P7eRpnOa.css.map} +1 -1
  240. package/dist/C_Tree.css +33 -33
  241. package/dist/C_Tree.js.map +1 -1
  242. package/dist/C_Tree2.js +1 -1
  243. package/dist/C_Tree2.js.map +1 -1
  244. package/dist/{C_Upload-BR9fg5r4.css.map → C_Upload-CHjiVVh7.css.map} +1 -1
  245. package/dist/{C_Upload-CPqf74Ea.css.map → C_Upload-DE3OLsZD.css.map} +1 -1
  246. package/dist/C_Upload.css +50 -50
  247. package/dist/C_Upload.js.map +1 -1
  248. package/dist/C_Upload2.js +2 -2
  249. package/dist/C_Upload2.js.map +1 -1
  250. package/dist/{C_VideoPlayer-4J96tKfK.css.map → C_VideoPlayer-CnaNOFtW.css.map} +1 -1
  251. package/dist/{C_VideoPlayer-D35seHkm.css.map → C_VideoPlayer-cnP88zNV.css.map} +1 -1
  252. package/dist/C_VideoPlayer.css +68 -68
  253. package/dist/C_VideoPlayer.js.map +1 -1
  254. package/dist/C_VideoPlayer2.js +3 -3
  255. package/dist/C_VideoPlayer2.js.map +1 -1
  256. package/dist/{C_VtableGantt-C2lxFmWg.css.map → C_VtableGantt-CZlJgvpC.css.map} +1 -1
  257. package/dist/{C_VtableGantt-Dwnkw_WL.css.map → C_VtableGantt-DKfQkql0.css.map} +1 -1
  258. package/dist/C_VtableGantt.css +15 -15
  259. package/dist/C_VtableGantt.js.map +1 -1
  260. package/dist/C_VtableGantt2.js +1 -1
  261. package/dist/C_VtableGantt2.js.map +1 -1
  262. package/dist/{C_WaterFall-C4HDqf-a.css.map → C_WaterFall-BJ_39ext.css.map} +1 -1
  263. package/dist/{C_WaterFall-HWB-gPON.css.map → C_WaterFall-cYc1vntE.css.map} +1 -1
  264. package/dist/C_WaterFall.css +16 -16
  265. package/dist/C_WaterFall.js.map +1 -1
  266. package/dist/C_WaterFall2.js +1 -1
  267. package/dist/C_WaterFall2.js.map +1 -1
  268. package/dist/{C_WorkFlow-2hJfvvTK.css.map → C_WorkFlow-BFzRGGhJ.css.map} +1 -1
  269. package/dist/{C_WorkFlow-DHoNjl8-.css.map → C_WorkFlow-DSyCOvRp.css.map} +1 -1
  270. package/dist/C_WorkFlow.css +193 -193
  271. package/dist/C_WorkFlow.js.map +1 -1
  272. package/dist/C_WorkFlow2.js +1 -1
  273. package/dist/C_WorkFlow2.js.map +1 -1
  274. package/dist/constants.d.ts +1 -1
  275. package/dist/constants2.d.ts +2 -2
  276. package/dist/constants3.d.ts +1 -1
  277. package/dist/constants4.d.ts +1 -1
  278. package/dist/constants5.d.ts +2 -2
  279. package/dist/data.d.ts +1 -1
  280. package/dist/index.vue.d.ts +2 -2
  281. package/dist/index11.vue.d.ts +2 -2
  282. package/dist/index12.vue.d.ts +1 -1
  283. package/dist/index13.vue.d.ts +2 -2
  284. package/dist/index14.vue.d.ts +3 -3
  285. package/dist/index15.vue.d.ts +6 -6
  286. package/dist/index17.vue.d.ts +1 -1
  287. package/dist/index18.vue.d.ts +2 -2
  288. package/dist/index2.vue.d.ts +6 -6
  289. package/dist/index20.vue.d.ts +1 -1
  290. package/dist/index21.vue.d.ts +2 -2
  291. package/dist/index22.vue.d.ts +2 -2
  292. package/dist/index24.vue.d.ts +1 -1
  293. package/dist/index26.vue.d.ts +3 -3
  294. package/dist/index27.vue.d.ts +1 -1
  295. package/dist/index28.vue.d.ts +2 -2
  296. package/dist/index3.vue.d.ts +2 -2
  297. package/dist/index4.vue.d.ts +2 -2
  298. package/dist/index6.vue.d.ts +3 -3
  299. package/dist/style.css +1991 -1991
  300. package/dist/useCalendarEvents.d.ts +1 -1
  301. package/dist/useCollapsePanel.d.ts +3 -3
  302. package/dist/useCropperCore.d.ts +4 -4
  303. package/dist/useDraggableLayout.d.ts +2 -2
  304. package/dist/useDynamicFormState.d.ts +13 -13
  305. package/dist/useEdgeInteraction.d.ts +1 -1
  306. package/dist/useInfiniteScroll.d.ts +3 -3
  307. package/dist/useModalEdit.d.ts +3 -3
  308. package/dist/useQRCode.d.ts +3 -3
  309. package/dist/useSignatureHistory.d.ts +1 -1
  310. package/dist/useSplitResize.d.ts +5 -5
  311. package/dist/useTimeSelection.d.ts +2 -2
  312. package/dist/useTreeOperations.d.ts +4 -4
  313. package/dist/useWorkflowValidation.d.ts +4 -4
  314. package/package.json +4 -7
  315. package/dist/C_ActionBar-DYG0Yf3A.css.map +0 -1
  316. package/dist/C_ActionBar-MAjRhqcI.css.map +0 -1
  317. package/dist/C_Cascade-Dq0S5Jkm.css.map +0 -1
  318. package/dist/C_Cascade-IUUHIh7r.css.map +0 -1
  319. package/dist/C_Code-BFi5xxnM.css.map +0 -1
  320. package/dist/C_Code-CZ7yfnri.css.map +0 -1
  321. package/dist/C_FullCalendar-BQA0OjGB.css.map +0 -1
  322. package/dist/C_FullCalendar-ChJUosAi.css.map +0 -1
  323. package/dist/C_Steps-Bk1krgiR.css.map +0 -1
  324. package/dist/C_Steps-Dn2CMpy1.css.map +0 -1
  325. package/dist/C_Time-BzyQVvTS.css.map +0 -1
  326. package/dist/C_Time-DmpKLQHc.css.map +0 -1
  327. package/dist/themes/glass-morphism.css +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"C_FullCalendar-DdFtXVhy.css","names":[],"sources":["../src/components/C_FullCalendar/index.vue?vue&type=style&index=0&scoped=0817ba9a&lang.css"],"sourcesContent":["/* unplugin-vue-components disabled */\n.c-full-calendar[data-v-0817ba9a] {\n width: 100%;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA"}
@@ -1,7 +1,7 @@
1
1
  /* unplugin-vue-components disabled */
2
- .c-full-calendar[data-v-f1a186d7] {
2
+ .c-full-calendar[data-v-0817ba9a] {
3
3
  width: 100%;
4
4
  }
5
5
 
6
6
 
7
- /*# sourceMappingURL=C_FullCalendar-BQA0OjGB.css.map*/
7
+ /*# sourceMappingURL=C_FullCalendar-C2nsqrgS.css.map*/
@@ -1 +1 @@
1
- {"version":3,"file":"C_FullCalendar.js","names":["dayGridPlugin","interactionPlugin","listPlugin","zhCn"],"sources":["../src/components/C_FullCalendar/data.ts","../src/components/C_FullCalendar/composables/useCalendarEvents.ts","../src/components/C_FullCalendar/index.vue"],"sourcesContent":["import type { CalendarEditForm } from \"./types\";\r\n\r\nexport const EVENT_COLORS = [\r\n \"#3f86ff\",\r\n \"#ff6b6b\",\r\n \"#67c23a\",\r\n \"#e6a23c\",\r\n \"#9c27b0\",\r\n \"#00bcd4\",\r\n \"#ff5722\",\r\n];\r\n\r\nexport const DEFAULT_EDIT_FORM: CalendarEditForm = {\r\n id: \"\",\r\n title: \"\",\r\n date: Date.now(),\r\n startTime: \"09:00\",\r\n endTime: \"10:00\",\r\n color: \"#3f86ff\",\r\n};\r\n\r\nexport const HEADER_TOOLBAR = {\r\n left: \"prev,next today\",\r\n center: \"title\",\r\n right: \"dayGridMonth,dayGridWeek,dayGridDay,listWeek\",\r\n};\r\n\r\nexport const BUTTON_TEXT = {\r\n today: \"今天\",\r\n month: \"月\",\r\n week: \"周\",\r\n day: \"日\",\r\n list: \"列表\",\r\n};\r\n","import { ref, watch } from \"vue\";\r\nimport { useMessage } from \"naive-ui\";\r\nimport type { Ref } from \"vue\";\r\nimport type { CalendarEvent, CalendarProps, CalendarEditForm } from \"../types\";\r\nimport {\r\n EVENT_COLORS,\r\n DEFAULT_EDIT_FORM,\r\n HEADER_TOOLBAR,\r\n BUTTON_TEXT,\r\n} from \"../data\";\r\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\r\nimport interactionPlugin from \"@fullcalendar/interaction\";\r\nimport listPlugin from \"@fullcalendar/list\";\r\nimport type { CalendarOptions } from \"@fullcalendar/core\";\r\nimport zhCn from \"@fullcalendar/core/locales/zh-cn\";\r\n\r\ntype EmitFn = {\r\n (event: \"update:events\", events: CalendarEvent[]): void;\r\n (event: \"event-added\", eventData: CalendarEvent): void;\r\n (event: \"event-updated\", eventData: Partial<CalendarEvent>): void;\r\n (event: \"event-deleted\", eventData: { id: string; title: string }): void;\r\n (event: \"event-dropped\", eventData: Partial<CalendarEvent>): void;\r\n};\r\n\r\nexport function useCalendarEvents(props: CalendarProps, emit: EmitFn) {\r\n const message = useMessage();\r\n const calendarRef = ref();\r\n\r\n const internalEvents = ref<CalendarEvent[]>([...(props.events ?? [])]);\r\n\r\n const showActionDialog = ref(false);\r\n const showEditModal = ref(false);\r\n const isEditing = ref(false);\r\n const selectedEvent = ref<any>(null);\r\n const editForm = ref<CalendarEditForm>({ ...DEFAULT_EDIT_FORM });\r\n\r\n const addEventToArray = (event: CalendarEvent) => {\r\n internalEvents.value = [...internalEvents.value, event];\r\n emit(\"update:events\", internalEvents.value);\r\n };\r\n\r\n const updateEventInArray = (eventData: Partial<CalendarEvent>) => {\r\n const index = internalEvents.value.findIndex((e) => e.id === eventData.id);\r\n if (index !== -1) {\r\n internalEvents.value = internalEvents.value.map((event, i) =>\r\n i === index ? { ...event, ...eventData } : event,\r\n );\r\n emit(\"update:events\", internalEvents.value);\r\n }\r\n };\r\n\r\n const removeEventFromArray = (eventId: string) => {\r\n internalEvents.value = internalEvents.value.filter((e) => e.id !== eventId);\r\n emit(\"update:events\", internalEvents.value);\r\n };\r\n\r\n function handleEventClick(info: any) {\r\n if (!props.editable) return;\r\n info.jsEvent.preventDefault();\r\n selectedEvent.value = info.event;\r\n if (props.showEditDialog) showActionDialog.value = true;\r\n }\r\n\r\n function handleDateClick(info: any) {\r\n if (!props.editable || !props.showAddDialog) return;\r\n openAddModal(new Date(info.dateStr));\r\n }\r\n\r\n function handleEventDrop(info: any) {\r\n const payload = {\r\n id: info.event.id,\r\n start: info.event.start,\r\n end: info.event.end,\r\n };\r\n updateEventInArray(payload);\r\n emit(\"event-dropped\", payload);\r\n message.success(`事件 \"${info.event.title}\" 时间已更新`);\r\n }\r\n\r\n function handleEventResize(info: any) {\r\n const payload = {\r\n id: info.event.id,\r\n start: info.event.start,\r\n end: info.event.end,\r\n };\r\n updateEventInArray(payload);\r\n emit(\"event-updated\", payload);\r\n }\r\n\r\n function openAddModal(date: Date) {\r\n isEditing.value = false;\r\n editForm.value = {\r\n ...DEFAULT_EDIT_FORM,\r\n date: date.getTime(),\r\n color: EVENT_COLORS[Math.floor(Math.random() * EVENT_COLORS.length)],\r\n };\r\n showEditModal.value = true;\r\n }\r\n\r\n function openEditModal() {\r\n if (!selectedEvent.value) return;\r\n isEditing.value = true;\r\n const event = selectedEvent.value;\r\n const startDate = new Date(event.start);\r\n const endDate = event.end\r\n ? new Date(event.end)\r\n : new Date(event.start.getTime() + 3600000);\r\n\r\n editForm.value = {\r\n id: event.id,\r\n title: event.title,\r\n date: startDate.getTime(),\r\n startTime: `${String(startDate.getHours()).padStart(2, \"0\")}:${String(startDate.getMinutes()).padStart(2, \"0\")}`,\r\n endTime: `${String(endDate.getHours()).padStart(2, \"0\")}:${String(endDate.getMinutes()).padStart(2, \"0\")}`,\r\n color: event.backgroundColor || \"#3f86ff\",\r\n };\r\n showActionDialog.value = false;\r\n showEditModal.value = true;\r\n }\r\n\r\n function saveEvent() {\r\n if (!editForm.value.title.trim()) {\r\n message.error(\"请输入事件标题\");\r\n return false;\r\n }\r\n if (editForm.value.startTime >= editForm.value.endTime) {\r\n message.error(\"结束时间必须晚于开始时间\");\r\n return false;\r\n }\r\n\r\n const dateStr = new Date(editForm.value.date).toISOString().split(\"T\")[0];\r\n const eventData: CalendarEvent = {\r\n id: isEditing.value ? editForm.value.id : Date.now().toString(),\r\n title: editForm.value.title,\r\n start: new Date(`${dateStr}T${editForm.value.startTime}:00`),\r\n end: new Date(`${dateStr}T${editForm.value.endTime}:00`),\r\n color: editForm.value.color,\r\n };\r\n\r\n if (isEditing.value) {\r\n updateEventInArray(eventData);\r\n emit(\"event-updated\", eventData);\r\n message.success(\"事件已更新\");\r\n } else {\r\n addEventToArray(eventData);\r\n emit(\"event-added\", eventData);\r\n message.success(\"事件已添加\");\r\n }\r\n\r\n showEditModal.value = false;\r\n return true;\r\n }\r\n\r\n function deleteEvent() {\r\n if (!selectedEvent.value) return;\r\n const { id, title } = selectedEvent.value;\r\n removeEventFromArray(id);\r\n emit(\"event-deleted\", { id, title });\r\n showActionDialog.value = false;\r\n message.success(`已删除事件: ${title}`);\r\n }\r\n\r\n const calendarOptions: Ref<CalendarOptions> = ref({\r\n plugins: [dayGridPlugin, interactionPlugin, listPlugin],\r\n locale: zhCn,\r\n initialView: props.initialView ?? \"dayGridMonth\",\r\n events: internalEvents.value as any,\r\n headerToolbar: HEADER_TOOLBAR,\r\n buttonText: BUTTON_TEXT,\r\n editable: props.editable ?? true,\r\n eventClick: handleEventClick,\r\n dateClick: handleDateClick,\r\n eventDrop: handleEventDrop,\r\n eventResize: handleEventResize,\r\n });\r\n\r\n watch(\r\n () => props.events,\r\n (newEvents) => {\r\n internalEvents.value = [...(newEvents ?? [])];\r\n },\r\n { deep: true },\r\n );\r\n\r\n watch(\r\n internalEvents,\r\n (newEvents) => {\r\n calendarOptions.value.events = newEvents as any;\r\n },\r\n { deep: true },\r\n );\r\n\r\n return {\r\n calendarRef,\r\n calendarOptions,\r\n showActionDialog,\r\n showEditModal,\r\n isEditing,\r\n selectedEvent,\r\n editForm,\r\n eventColors: EVENT_COLORS,\r\n openEditModal,\r\n saveEvent,\r\n deleteEvent,\r\n expose: {\r\n getApi: () => calendarRef.value?.getApi(),\r\n addEvent: addEventToArray,\r\n updateEvent: updateEventInArray,\r\n deleteEvent: removeEventFromArray,\r\n getEvents: () => internalEvents.value,\r\n },\r\n };\r\n}\r\n","<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2025-06-19\n * @Description: 全局日历组件 — 薄 UI 壳,逻辑由 useCalendarEvents 驱动\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-full-calendar\">\n <FullCalendar\n ref=\"calendarRef\"\n :options=\"calendarOptions\"\n />\n\n <NModal\n v-if=\"showActionDialog\"\n v-model:show=\"showActionDialog\"\n preset=\"dialog\"\n :title=\"`事件操作 - ${selectedEvent?.title}`\"\n style=\"width: 400px\"\n >\n <div class=\"ml-10% mt-20px\">\n <NButton\n type=\"primary\"\n @click=\"openEditModal\"\n style=\"margin-right: 12px\"\n size=\"small\"\n >\n 编辑\n </NButton>\n <NButton\n type=\"error\"\n @click=\"deleteEvent\"\n size=\"small\"\n >\n 删除\n </NButton>\n </div>\n </NModal>\n\n <NModal\n v-model:show=\"showEditModal\"\n preset=\"dialog\"\n :title=\"isEditing ? '编辑事件' : '添加事件'\"\n positive-text=\"保存\"\n negative-text=\"取消\"\n @positive-click=\"saveEvent\"\n >\n <div style=\"padding: 20px\">\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件标题</label\n >\n <NInput\n v-model:value=\"editForm.title\"\n placeholder=\"请输入事件标题\"\n />\n </div>\n\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件日期</label\n >\n <NDatePicker\n v-model:value=\"editForm.date\"\n type=\"date\"\n format=\"yyyy-MM-dd\"\n style=\"width: 100%\"\n />\n </div>\n\n <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px\">\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >开始时间</label\n >\n <NInput\n v-model:value=\"editForm.startTime\"\n placeholder=\"09:00\"\n />\n </div>\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >结束时间</label\n >\n <NInput\n v-model:value=\"editForm.endTime\"\n placeholder=\"10:00\"\n />\n </div>\n </div>\n\n <div style=\"margin-top: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件颜色</label\n >\n <div style=\"display: flex; gap: 8px\">\n <div\n v-for=\"color in eventColors\"\n :key=\"color\"\n :style=\"{\n width: '30px',\n height: '30px',\n backgroundColor: color,\n borderRadius: '50%',\n cursor: 'pointer',\n border:\n editForm.color === color\n ? '3px solid #000'\n : '2px solid #ddd',\n }\"\n @click=\"editForm.color = color\"\n />\n </div>\n </div>\n </div>\n </NModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { NModal, NButton, NInput, NDatePicker } from 'naive-ui'\n import FullCalendar from '@fullcalendar/vue3'\n import { useCalendarEvents } from './composables/useCalendarEvents'\n import type { CalendarProps, CalendarEmits, CalendarExpose } from './types'\n\n defineOptions({ name: 'C_FullCalendar' })\n\n const props = withDefaults(defineProps<CalendarProps>(), {\n events: () => [],\n initialView: 'dayGridMonth',\n editable: true,\n showAddDialog: true,\n showEditDialog: true,\n })\n\n const emit = defineEmits<CalendarEmits>()\n\n const {\n calendarRef,\n calendarOptions,\n showActionDialog,\n showEditModal,\n isEditing,\n selectedEvent,\n editForm,\n eventColors,\n openEditModal,\n saveEvent,\n deleteEvent,\n expose,\n } = useCalendarEvents(props, emit)\n\n defineExpose<CalendarExpose>(expose)\n</script>\n\n<style scoped>\n .c-full-calendar {\n width: 100%;\n }\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"C_FullCalendar.js","names":["dayGridPlugin","interactionPlugin","listPlugin","zhCn"],"sources":["../src/components/C_FullCalendar/data.ts","../src/components/C_FullCalendar/composables/useCalendarEvents.ts","../src/components/C_FullCalendar/index.vue","../src/components/C_FullCalendar/index.vue"],"sourcesContent":["import type { CalendarEditForm } from \"./types\";\r\n\r\nexport const EVENT_COLORS = [\r\n \"#3f86ff\",\r\n \"#ff6b6b\",\r\n \"#67c23a\",\r\n \"#e6a23c\",\r\n \"#9c27b0\",\r\n \"#00bcd4\",\r\n \"#ff5722\",\r\n];\r\n\r\nexport const DEFAULT_EDIT_FORM: CalendarEditForm = {\r\n id: \"\",\r\n title: \"\",\r\n date: Date.now(),\r\n startTime: \"09:00\",\r\n endTime: \"10:00\",\r\n color: \"#3f86ff\",\r\n};\r\n\r\nexport const HEADER_TOOLBAR = {\r\n left: \"prev,next today\",\r\n center: \"title\",\r\n right: \"dayGridMonth,dayGridWeek,dayGridDay,listWeek\",\r\n};\r\n\r\nexport const BUTTON_TEXT = {\r\n today: \"今天\",\r\n month: \"月\",\r\n week: \"周\",\r\n day: \"日\",\r\n list: \"列表\",\r\n};\r\n","import { ref, watch } from \"vue\";\r\nimport { useMessage } from \"naive-ui\";\r\nimport type { Ref } from \"vue\";\r\nimport type { CalendarEvent, CalendarProps, CalendarEditForm } from \"../types\";\r\nimport {\r\n EVENT_COLORS,\r\n DEFAULT_EDIT_FORM,\r\n HEADER_TOOLBAR,\r\n BUTTON_TEXT,\r\n} from \"../data\";\r\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\r\nimport interactionPlugin from \"@fullcalendar/interaction\";\r\nimport listPlugin from \"@fullcalendar/list\";\r\nimport type { CalendarOptions } from \"@fullcalendar/core\";\r\nimport zhCn from \"@fullcalendar/core/locales/zh-cn\";\r\n\r\ntype EmitFn = {\r\n (event: \"update:events\", events: CalendarEvent[]): void;\r\n (event: \"event-added\", eventData: CalendarEvent): void;\r\n (event: \"event-updated\", eventData: Partial<CalendarEvent>): void;\r\n (event: \"event-deleted\", eventData: { id: string; title: string }): void;\r\n (event: \"event-dropped\", eventData: Partial<CalendarEvent>): void;\r\n};\r\n\r\nexport function useCalendarEvents(props: CalendarProps, emit: EmitFn) {\r\n const message = useMessage();\r\n const calendarRef = ref();\r\n\r\n const internalEvents = ref<CalendarEvent[]>([...(props.events ?? [])]);\r\n\r\n const showActionDialog = ref(false);\r\n const showEditModal = ref(false);\r\n const isEditing = ref(false);\r\n const selectedEvent = ref<any>(null);\r\n const editForm = ref<CalendarEditForm>({ ...DEFAULT_EDIT_FORM });\r\n\r\n const addEventToArray = (event: CalendarEvent) => {\r\n internalEvents.value = [...internalEvents.value, event];\r\n emit(\"update:events\", internalEvents.value);\r\n };\r\n\r\n const updateEventInArray = (eventData: Partial<CalendarEvent>) => {\r\n const index = internalEvents.value.findIndex((e) => e.id === eventData.id);\r\n if (index !== -1) {\r\n internalEvents.value = internalEvents.value.map((event, i) =>\r\n i === index ? { ...event, ...eventData } : event,\r\n );\r\n emit(\"update:events\", internalEvents.value);\r\n }\r\n };\r\n\r\n const removeEventFromArray = (eventId: string) => {\r\n internalEvents.value = internalEvents.value.filter((e) => e.id !== eventId);\r\n emit(\"update:events\", internalEvents.value);\r\n };\r\n\r\n function handleEventClick(info: any) {\r\n if (!props.editable) return;\r\n info.jsEvent.preventDefault();\r\n selectedEvent.value = info.event;\r\n if (props.showEditDialog) showActionDialog.value = true;\r\n }\r\n\r\n function handleDateClick(info: any) {\r\n if (!props.editable || !props.showAddDialog) return;\r\n openAddModal(new Date(info.dateStr));\r\n }\r\n\r\n function handleEventDrop(info: any) {\r\n const payload = {\r\n id: info.event.id,\r\n start: info.event.start,\r\n end: info.event.end,\r\n };\r\n updateEventInArray(payload);\r\n emit(\"event-dropped\", payload);\r\n message.success(`事件 \"${info.event.title}\" 时间已更新`);\r\n }\r\n\r\n function handleEventResize(info: any) {\r\n const payload = {\r\n id: info.event.id,\r\n start: info.event.start,\r\n end: info.event.end,\r\n };\r\n updateEventInArray(payload);\r\n emit(\"event-updated\", payload);\r\n }\r\n\r\n function openAddModal(date: Date) {\r\n isEditing.value = false;\r\n editForm.value = {\r\n ...DEFAULT_EDIT_FORM,\r\n date: date.getTime(),\r\n color: EVENT_COLORS[Math.floor(Math.random() * EVENT_COLORS.length)],\r\n };\r\n showEditModal.value = true;\r\n }\r\n\r\n function openEditModal() {\r\n if (!selectedEvent.value) return;\r\n isEditing.value = true;\r\n const event = selectedEvent.value;\r\n const startDate = new Date(event.start);\r\n const endDate = event.end\r\n ? new Date(event.end)\r\n : new Date(event.start.getTime() + 3600000);\r\n\r\n editForm.value = {\r\n id: event.id,\r\n title: event.title,\r\n date: startDate.getTime(),\r\n startTime: `${String(startDate.getHours()).padStart(2, \"0\")}:${String(startDate.getMinutes()).padStart(2, \"0\")}`,\r\n endTime: `${String(endDate.getHours()).padStart(2, \"0\")}:${String(endDate.getMinutes()).padStart(2, \"0\")}`,\r\n color: event.backgroundColor || \"#3f86ff\",\r\n };\r\n showActionDialog.value = false;\r\n showEditModal.value = true;\r\n }\r\n\r\n function saveEvent() {\r\n if (!editForm.value.title.trim()) {\r\n message.error(\"请输入事件标题\");\r\n return false;\r\n }\r\n if (editForm.value.startTime >= editForm.value.endTime) {\r\n message.error(\"结束时间必须晚于开始时间\");\r\n return false;\r\n }\r\n\r\n const dateStr = new Date(editForm.value.date).toISOString().split(\"T\")[0];\r\n const eventData: CalendarEvent = {\r\n id: isEditing.value ? editForm.value.id : Date.now().toString(),\r\n title: editForm.value.title,\r\n start: new Date(`${dateStr}T${editForm.value.startTime}:00`),\r\n end: new Date(`${dateStr}T${editForm.value.endTime}:00`),\r\n color: editForm.value.color,\r\n };\r\n\r\n if (isEditing.value) {\r\n updateEventInArray(eventData);\r\n emit(\"event-updated\", eventData);\r\n message.success(\"事件已更新\");\r\n } else {\r\n addEventToArray(eventData);\r\n emit(\"event-added\", eventData);\r\n message.success(\"事件已添加\");\r\n }\r\n\r\n showEditModal.value = false;\r\n return true;\r\n }\r\n\r\n function deleteEvent() {\r\n if (!selectedEvent.value) return;\r\n const { id, title } = selectedEvent.value;\r\n removeEventFromArray(id);\r\n emit(\"event-deleted\", { id, title });\r\n showActionDialog.value = false;\r\n message.success(`已删除事件: ${title}`);\r\n }\r\n\r\n const calendarOptions: Ref<CalendarOptions> = ref({\r\n plugins: [dayGridPlugin, interactionPlugin, listPlugin],\r\n locale: zhCn,\r\n initialView: props.initialView ?? \"dayGridMonth\",\r\n events: internalEvents.value as any,\r\n headerToolbar: HEADER_TOOLBAR,\r\n buttonText: BUTTON_TEXT,\r\n editable: props.editable ?? true,\r\n eventClick: handleEventClick,\r\n dateClick: handleDateClick,\r\n eventDrop: handleEventDrop,\r\n eventResize: handleEventResize,\r\n });\r\n\r\n watch(\r\n () => props.events,\r\n (newEvents) => {\r\n internalEvents.value = [...(newEvents ?? [])];\r\n },\r\n { deep: true },\r\n );\r\n\r\n watch(\r\n internalEvents,\r\n (newEvents) => {\r\n calendarOptions.value.events = newEvents as any;\r\n },\r\n { deep: true },\r\n );\r\n\r\n return {\r\n calendarRef,\r\n calendarOptions,\r\n showActionDialog,\r\n showEditModal,\r\n isEditing,\r\n selectedEvent,\r\n editForm,\r\n eventColors: EVENT_COLORS,\r\n openEditModal,\r\n saveEvent,\r\n deleteEvent,\r\n expose: {\r\n getApi: () => calendarRef.value?.getApi(),\r\n addEvent: addEventToArray,\r\n updateEvent: updateEventInArray,\r\n deleteEvent: removeEventFromArray,\r\n getEvents: () => internalEvents.value,\r\n },\r\n };\r\n}\r\n","<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2025-06-19\n * @Description: 全局日历组件 — 薄 UI 壳,逻辑由 useCalendarEvents 驱动\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-full-calendar\">\n <FullCalendar\n ref=\"calendarRef\"\n :options=\"calendarOptions\"\n />\n\n <NModal\n v-if=\"showActionDialog\"\n v-model:show=\"showActionDialog\"\n preset=\"dialog\"\n :title=\"`事件操作 - ${selectedEvent?.title}`\"\n style=\"width: 400px\"\n >\n <div class=\"ml-10% mt-20px\">\n <NButton\n type=\"primary\"\n @click=\"openEditModal\"\n style=\"margin-right: 12px\"\n size=\"small\"\n >\n 编辑\n </NButton>\n <NButton\n type=\"error\"\n @click=\"deleteEvent\"\n size=\"small\"\n >\n 删除\n </NButton>\n </div>\n </NModal>\n\n <NModal\n v-model:show=\"showEditModal\"\n preset=\"dialog\"\n :title=\"isEditing ? '编辑事件' : '添加事件'\"\n positive-text=\"保存\"\n negative-text=\"取消\"\n @positive-click=\"saveEvent\"\n >\n <div style=\"padding: 20px\">\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件标题</label\n >\n <NInput\n v-model:value=\"editForm.title\"\n placeholder=\"请输入事件标题\"\n />\n </div>\n\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件日期</label\n >\n <NDatePicker\n v-model:value=\"editForm.date\"\n type=\"date\"\n format=\"yyyy-MM-dd\"\n style=\"width: 100%\"\n />\n </div>\n\n <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px\">\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >开始时间</label\n >\n <NInput\n v-model:value=\"editForm.startTime\"\n placeholder=\"09:00\"\n />\n </div>\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >结束时间</label\n >\n <NInput\n v-model:value=\"editForm.endTime\"\n placeholder=\"10:00\"\n />\n </div>\n </div>\n\n <div style=\"margin-top: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件颜色</label\n >\n <div style=\"display: flex; gap: 8px\">\n <div\n v-for=\"color in eventColors\"\n :key=\"color\"\n :style=\"{\n width: '30px',\n height: '30px',\n backgroundColor: color,\n borderRadius: '50%',\n cursor: 'pointer',\n border:\n editForm.color === color\n ? '3px solid #000'\n : '2px solid #ddd',\n }\"\n @click=\"editForm.color = color\"\n />\n </div>\n </div>\n </div>\n </NModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { NModal, NButton, NInput, NDatePicker } from 'naive-ui'\n import FullCalendar from '@fullcalendar/vue3'\n import { useCalendarEvents } from './composables/useCalendarEvents'\n import type { CalendarProps, CalendarEmits, CalendarExpose } from './types'\n\n defineOptions({ name: 'C_FullCalendar' })\n\n const props = withDefaults(defineProps<CalendarProps>(), {\n events: () => [],\n initialView: 'dayGridMonth',\n editable: true,\n showAddDialog: true,\n showEditDialog: true,\n })\n\n const emit = defineEmits<CalendarEmits>()\n\n const {\n calendarRef,\n calendarOptions,\n showActionDialog,\n showEditModal,\n isEditing,\n selectedEvent,\n editForm,\n eventColors,\n openEditModal,\n saveEvent,\n deleteEvent,\n expose,\n } = useCalendarEvents(props, emit)\n\n defineExpose<CalendarExpose>(expose)\n</script>\n\n<style scoped>\n .c-full-calendar {\n width: 100%;\n }\n</style>\n","<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2025-06-19\n * @Description: 全局日历组件 — 薄 UI 壳,逻辑由 useCalendarEvents 驱动\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-full-calendar\">\n <FullCalendar\n ref=\"calendarRef\"\n :options=\"calendarOptions\"\n />\n\n <NModal\n v-if=\"showActionDialog\"\n v-model:show=\"showActionDialog\"\n preset=\"dialog\"\n :title=\"`事件操作 - ${selectedEvent?.title}`\"\n style=\"width: 400px\"\n >\n <div class=\"ml-10% mt-20px\">\n <NButton\n type=\"primary\"\n @click=\"openEditModal\"\n style=\"margin-right: 12px\"\n size=\"small\"\n >\n 编辑\n </NButton>\n <NButton\n type=\"error\"\n @click=\"deleteEvent\"\n size=\"small\"\n >\n 删除\n </NButton>\n </div>\n </NModal>\n\n <NModal\n v-model:show=\"showEditModal\"\n preset=\"dialog\"\n :title=\"isEditing ? '编辑事件' : '添加事件'\"\n positive-text=\"保存\"\n negative-text=\"取消\"\n @positive-click=\"saveEvent\"\n >\n <div style=\"padding: 20px\">\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件标题</label\n >\n <NInput\n v-model:value=\"editForm.title\"\n placeholder=\"请输入事件标题\"\n />\n </div>\n\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件日期</label\n >\n <NDatePicker\n v-model:value=\"editForm.date\"\n type=\"date\"\n format=\"yyyy-MM-dd\"\n style=\"width: 100%\"\n />\n </div>\n\n <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px\">\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >开始时间</label\n >\n <NInput\n v-model:value=\"editForm.startTime\"\n placeholder=\"09:00\"\n />\n </div>\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >结束时间</label\n >\n <NInput\n v-model:value=\"editForm.endTime\"\n placeholder=\"10:00\"\n />\n </div>\n </div>\n\n <div style=\"margin-top: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件颜色</label\n >\n <div style=\"display: flex; gap: 8px\">\n <div\n v-for=\"color in eventColors\"\n :key=\"color\"\n :style=\"{\n width: '30px',\n height: '30px',\n backgroundColor: color,\n borderRadius: '50%',\n cursor: 'pointer',\n border:\n editForm.color === color\n ? '3px solid #000'\n : '2px solid #ddd',\n }\"\n @click=\"editForm.color = color\"\n />\n </div>\n </div>\n </div>\n </NModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { NModal, NButton, NInput, NDatePicker } from 'naive-ui'\n import FullCalendar from '@fullcalendar/vue3'\n import { useCalendarEvents } from './composables/useCalendarEvents'\n import type { CalendarProps, CalendarEmits, CalendarExpose } from './types'\n\n defineOptions({ name: 'C_FullCalendar' })\n\n const props = withDefaults(defineProps<CalendarProps>(), {\n events: () => [],\n initialView: 'dayGridMonth',\n editable: true,\n showAddDialog: true,\n showEditDialog: true,\n })\n\n const emit = defineEmits<CalendarEmits>()\n\n const {\n calendarRef,\n calendarOptions,\n showActionDialog,\n showEditModal,\n isEditing,\n selectedEvent,\n editForm,\n eventColors,\n openEditModal,\n saveEvent,\n deleteEvent,\n expose,\n } = useCalendarEvents(props, emit)\n\n defineExpose<CalendarExpose>(expose)\n</script>\n\n<style scoped>\n .c-full-calendar {\n width: 100%;\n }\n</style>\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{t as e}from"./export-helper.js";import{Fragment as t,createBlock as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,createTextVNode as o,createVNode as s,defineComponent as c,isRef as l,normalizeStyle as u,openBlock as d,ref as f,renderList as p,unref as m,watch as h,withCtx as g}from"vue";import{NButton as _,NDatePicker as v,NInput as y,NModal as b,useMessage as x}from"naive-ui";import S from"@fullcalendar/vue3";import C from"@fullcalendar/daygrid";import w from"@fullcalendar/interaction";import T from"@fullcalendar/list";import E from"@fullcalendar/core/locales/zh-cn";const D=[`#3f86ff`,`#ff6b6b`,`#67c23a`,`#e6a23c`,`#9c27b0`,`#00bcd4`,`#ff5722`],O={id:``,title:``,date:Date.now(),startTime:`09:00`,endTime:`10:00`,color:`#3f86ff`},k={left:`prev,next today`,center:`title`,right:`dayGridMonth,dayGridWeek,dayGridDay,listWeek`},A={today:`今天`,month:`月`,week:`周`,day:`日`,list:`列表`};function j(e,t){let n=x(),r=f(),i=f([...e.events??[]]),a=f(!1),o=f(!1),s=f(!1),c=f(null),l=f({...O}),u=e=>{i.value=[...i.value,e],t(`update:events`,i.value)},d=e=>{let n=i.value.findIndex(t=>t.id===e.id);n!==-1&&(i.value=i.value.map((t,r)=>r===n?{...t,...e}:t),t(`update:events`,i.value))},p=e=>{i.value=i.value.filter(t=>t.id!==e),t(`update:events`,i.value)};function m(t){e.editable&&(t.jsEvent.preventDefault(),c.value=t.event,e.showEditDialog&&(a.value=!0))}function g(t){!e.editable||!e.showAddDialog||y(new Date(t.dateStr))}function _(e){let r={id:e.event.id,start:e.event.start,end:e.event.end};d(r),t(`event-dropped`,r),n.success(`事件 "${e.event.title}" 时间已更新`)}function v(e){let n={id:e.event.id,start:e.event.start,end:e.event.end};d(n),t(`event-updated`,n)}function y(e){s.value=!1,l.value={...O,date:e.getTime(),color:D[Math.floor(Math.random()*D.length)]},o.value=!0}function b(){if(!c.value)return;s.value=!0;let e=c.value,t=new Date(e.start),n=e.end?new Date(e.end):new Date(e.start.getTime()+36e5);l.value={id:e.id,title:e.title,date:t.getTime(),startTime:`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`,endTime:`${String(n.getHours()).padStart(2,`0`)}:${String(n.getMinutes()).padStart(2,`0`)}`,color:e.backgroundColor||`#3f86ff`},a.value=!1,o.value=!0}function S(){if(!l.value.title.trim())return n.error(`请输入事件标题`),!1;if(l.value.startTime>=l.value.endTime)return n.error(`结束时间必须晚于开始时间`),!1;let e=new Date(l.value.date).toISOString().split(`T`)[0],r={id:s.value?l.value.id:Date.now().toString(),title:l.value.title,start:new Date(`${e}T${l.value.startTime}:00`),end:new Date(`${e}T${l.value.endTime}:00`),color:l.value.color};return s.value?(d(r),t(`event-updated`,r),n.success(`事件已更新`)):(u(r),t(`event-added`,r),n.success(`事件已添加`)),o.value=!1,!0}function j(){if(!c.value)return;let{id:e,title:r}=c.value;p(e),t(`event-deleted`,{id:e,title:r}),a.value=!1,n.success(`已删除事件: ${r}`)}let M=f({plugins:[C,w,T],locale:E,initialView:e.initialView??`dayGridMonth`,events:i.value,headerToolbar:k,buttonText:A,editable:e.editable??!0,eventClick:m,dateClick:g,eventDrop:_,eventResize:v});return h(()=>e.events,e=>{i.value=[...e??[]]},{deep:!0}),h(i,e=>{M.value.events=e},{deep:!0}),{calendarRef:r,calendarOptions:M,showActionDialog:a,showEditModal:o,isEditing:s,selectedEvent:c,editForm:l,eventColors:D,openEditModal:b,saveEvent:S,deleteEvent:j,expose:{getApi:()=>r.value?.getApi(),addEvent:u,updateEvent:d,deleteEvent:p,getEvents:()=>i.value}}}const M={class:`c-full-calendar`},N={class:`ml-10% mt-20px`},P={style:{padding:`20px`}},F={style:{"margin-bottom":`16px`}},I={style:{"margin-bottom":`16px`}},L={style:{display:`grid`,"grid-template-columns":`1fr 1fr`,gap:`16px`}},R={style:{"margin-top":`16px`}},z={style:{display:`flex`,gap:`8px`}},B=[`onClick`];var V=e(c({name:`C_FullCalendar`,__name:`index`,props:{events:{default:()=>[]},initialView:{default:`dayGridMonth`},editable:{type:Boolean,default:!0},showAddDialog:{type:Boolean,default:!0},showEditDialog:{type:Boolean,default:!0}},emits:[`update:events`,`event-added`,`event-updated`,`event-deleted`,`event-dropped`],setup(e,{expose:c,emit:f}){let{calendarRef:h,calendarOptions:x,showActionDialog:C,showEditModal:w,isEditing:T,selectedEvent:E,editForm:D,eventColors:O,openEditModal:k,saveEvent:A,deleteEvent:V,expose:H}=j(e,f);return c(H),(e,c)=>(d(),i(`div`,M,[s(m(S),{ref_key:`calendarRef`,ref:h,options:m(x)},null,8,[`options`]),m(C)?(d(),n(m(b),{key:0,show:m(C),"onUpdate:show":c[0]||=e=>l(C)?C.value=e:null,preset:`dialog`,title:`事件操作 - ${m(E)?.title}`,style:{width:`400px`}},{default:g(()=>[a(`div`,N,[s(m(_),{type:`primary`,onClick:m(k),style:{"margin-right":`12px`},size:`small`},{default:g(()=>c[6]||=[o(` 编辑 `,-1)]),_:1,__:[6]},8,[`onClick`]),s(m(_),{type:`error`,onClick:m(V),size:`small`},{default:g(()=>c[7]||=[o(` 删除 `,-1)]),_:1,__:[7]},8,[`onClick`])])]),_:1},8,[`show`,`title`])):r(`v-if`,!0),s(m(b),{show:m(w),"onUpdate:show":c[5]||=e=>l(w)?w.value=e:null,preset:`dialog`,title:m(T)?`编辑事件`:`添加事件`,"positive-text":`保存`,"negative-text":`取消`,onPositiveClick:m(A)},{default:g(()=>[a(`div`,P,[a(`div`,F,[c[8]||=a(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件标题`,-1),s(m(y),{value:m(D).title,"onUpdate:value":c[1]||=e=>m(D).title=e,placeholder:`请输入事件标题`},null,8,[`value`])]),a(`div`,I,[c[9]||=a(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件日期`,-1),s(m(v),{value:m(D).date,"onUpdate:value":c[2]||=e=>m(D).date=e,type:`date`,format:`yyyy-MM-dd`,style:{width:`100%`}},null,8,[`value`])]),a(`div`,L,[a(`div`,null,[c[10]||=a(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`开始时间`,-1),s(m(y),{value:m(D).startTime,"onUpdate:value":c[3]||=e=>m(D).startTime=e,placeholder:`09:00`},null,8,[`value`])]),a(`div`,null,[c[11]||=a(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`结束时间`,-1),s(m(y),{value:m(D).endTime,"onUpdate:value":c[4]||=e=>m(D).endTime=e,placeholder:`10:00`},null,8,[`value`])])]),a(`div`,R,[c[12]||=a(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件颜色`,-1),a(`div`,z,[(d(!0),i(t,null,p(m(O),e=>(d(),i(`div`,{key:e,style:u({width:`30px`,height:`30px`,backgroundColor:e,borderRadius:`50%`,cursor:`pointer`,border:m(D).color===e?`3px solid #000`:`2px solid #ddd`}),onClick:t=>m(D).color=e},null,12,B))),128))])])])]),_:1},8,[`show`,`title`,`onPositiveClick`])]))}}),[[`__scopeId`,`data-v-f1a186d7`]]);export{D as a,O as i,j as n,k as o,A as r,V as t};
1
+ import{t as e}from"./export-helper.js";import{NButton as t,NDatePicker as n,NInput as r,NModal as i,useMessage as a}from"naive-ui";import{Fragment as o,createBlock as s,createCommentVNode as c,createElementBlock as l,createElementVNode as u,createTextVNode as d,createVNode as f,defineComponent as p,isRef as m,normalizeStyle as h,openBlock as g,ref as _,renderList as v,unref as y,watch as b,withCtx as x}from"vue";import S from"@fullcalendar/vue3";import C from"@fullcalendar/daygrid";import w from"@fullcalendar/interaction";import T from"@fullcalendar/list";import E from"@fullcalendar/core/locales/zh-cn";const D=[`#3f86ff`,`#ff6b6b`,`#67c23a`,`#e6a23c`,`#9c27b0`,`#00bcd4`,`#ff5722`],O={id:``,title:``,date:Date.now(),startTime:`09:00`,endTime:`10:00`,color:`#3f86ff`},k={left:`prev,next today`,center:`title`,right:`dayGridMonth,dayGridWeek,dayGridDay,listWeek`},A={today:`今天`,month:`月`,week:`周`,day:`日`,list:`列表`};function j(e,t){let n=a(),r=_(),i=_([...e.events??[]]),o=_(!1),s=_(!1),c=_(!1),l=_(null),u=_({...O}),d=e=>{i.value=[...i.value,e],t(`update:events`,i.value)},f=e=>{let n=i.value.findIndex(t=>t.id===e.id);n!==-1&&(i.value=i.value.map((t,r)=>r===n?{...t,...e}:t),t(`update:events`,i.value))},p=e=>{i.value=i.value.filter(t=>t.id!==e),t(`update:events`,i.value)};function m(t){e.editable&&(t.jsEvent.preventDefault(),l.value=t.event,e.showEditDialog&&(o.value=!0))}function h(t){!e.editable||!e.showAddDialog||y(new Date(t.dateStr))}function g(e){let r={id:e.event.id,start:e.event.start,end:e.event.end};f(r),t(`event-dropped`,r),n.success(`事件 "${e.event.title}" 时间已更新`)}function v(e){let n={id:e.event.id,start:e.event.start,end:e.event.end};f(n),t(`event-updated`,n)}function y(e){c.value=!1,u.value={...O,date:e.getTime(),color:D[Math.floor(Math.random()*D.length)]},s.value=!0}function x(){if(!l.value)return;c.value=!0;let e=l.value,t=new Date(e.start),n=e.end?new Date(e.end):new Date(e.start.getTime()+36e5);u.value={id:e.id,title:e.title,date:t.getTime(),startTime:`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`,endTime:`${String(n.getHours()).padStart(2,`0`)}:${String(n.getMinutes()).padStart(2,`0`)}`,color:e.backgroundColor||`#3f86ff`},o.value=!1,s.value=!0}function S(){if(!u.value.title.trim())return n.error(`请输入事件标题`),!1;if(u.value.startTime>=u.value.endTime)return n.error(`结束时间必须晚于开始时间`),!1;let e=new Date(u.value.date).toISOString().split(`T`)[0],r={id:c.value?u.value.id:Date.now().toString(),title:u.value.title,start:new Date(`${e}T${u.value.startTime}:00`),end:new Date(`${e}T${u.value.endTime}:00`),color:u.value.color};return c.value?(f(r),t(`event-updated`,r),n.success(`事件已更新`)):(d(r),t(`event-added`,r),n.success(`事件已添加`)),s.value=!1,!0}function j(){if(!l.value)return;let{id:e,title:r}=l.value;p(e),t(`event-deleted`,{id:e,title:r}),o.value=!1,n.success(`已删除事件: ${r}`)}let M=_({plugins:[C,w,T],locale:E,initialView:e.initialView??`dayGridMonth`,events:i.value,headerToolbar:k,buttonText:A,editable:e.editable??!0,eventClick:m,dateClick:h,eventDrop:g,eventResize:v});return b(()=>e.events,e=>{i.value=[...e??[]]},{deep:!0}),b(i,e=>{M.value.events=e},{deep:!0}),{calendarRef:r,calendarOptions:M,showActionDialog:o,showEditModal:s,isEditing:c,selectedEvent:l,editForm:u,eventColors:D,openEditModal:x,saveEvent:S,deleteEvent:j,expose:{getApi:()=>r.value?.getApi(),addEvent:d,updateEvent:f,deleteEvent:p,getEvents:()=>i.value}}}const M={class:`c-full-calendar`},N={class:`ml-10% mt-20px`},P={style:{padding:`20px`}},F={style:{"margin-bottom":`16px`}},I={style:{"margin-bottom":`16px`}},L={style:{display:`grid`,"grid-template-columns":`1fr 1fr`,gap:`16px`}},R={style:{"margin-top":`16px`}},z={style:{display:`flex`,gap:`8px`}},B=[`onClick`];var V=e(p({name:`C_FullCalendar`,__name:`index`,props:{events:{default:()=>[]},initialView:{default:`dayGridMonth`},editable:{type:Boolean,default:!0},showAddDialog:{type:Boolean,default:!0},showEditDialog:{type:Boolean,default:!0}},emits:[`update:events`,`event-added`,`event-updated`,`event-deleted`,`event-dropped`],setup(e,{expose:a,emit:p}){let{calendarRef:_,calendarOptions:b,showActionDialog:C,showEditModal:w,isEditing:T,selectedEvent:E,editForm:D,eventColors:O,openEditModal:k,saveEvent:A,deleteEvent:V,expose:H}=j(e,p);return a(H),(e,a)=>(g(),l(`div`,M,[f(y(S),{ref_key:`calendarRef`,ref:_,options:y(b)},null,8,[`options`]),y(C)?(g(),s(y(i),{key:0,show:y(C),"onUpdate:show":a[0]||=e=>m(C)?C.value=e:null,preset:`dialog`,title:`事件操作 - ${y(E)?.title}`,style:{width:`400px`}},{default:x(()=>[u(`div`,N,[f(y(t),{type:`primary`,onClick:y(k),style:{"margin-right":`12px`},size:`small`},{default:x(()=>a[6]||=[d(` 编辑 `,-1)]),_:1,__:[6]},8,[`onClick`]),f(y(t),{type:`error`,onClick:y(V),size:`small`},{default:x(()=>a[7]||=[d(` 删除 `,-1)]),_:1,__:[7]},8,[`onClick`])])]),_:1},8,[`show`,`title`])):c(`v-if`,!0),f(y(i),{show:y(w),"onUpdate:show":a[5]||=e=>m(w)?w.value=e:null,preset:`dialog`,title:y(T)?`编辑事件`:`添加事件`,"positive-text":`保存`,"negative-text":`取消`,onPositiveClick:y(A)},{default:x(()=>[u(`div`,P,[u(`div`,F,[a[8]||=u(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件标题`,-1),f(y(r),{value:y(D).title,"onUpdate:value":a[1]||=e=>y(D).title=e,placeholder:`请输入事件标题`},null,8,[`value`])]),u(`div`,I,[a[9]||=u(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件日期`,-1),f(y(n),{value:y(D).date,"onUpdate:value":a[2]||=e=>y(D).date=e,type:`date`,format:`yyyy-MM-dd`,style:{width:`100%`}},null,8,[`value`])]),u(`div`,L,[u(`div`,null,[a[10]||=u(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`开始时间`,-1),f(y(r),{value:y(D).startTime,"onUpdate:value":a[3]||=e=>y(D).startTime=e,placeholder:`09:00`},null,8,[`value`])]),u(`div`,null,[a[11]||=u(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`结束时间`,-1),f(y(r),{value:y(D).endTime,"onUpdate:value":a[4]||=e=>y(D).endTime=e,placeholder:`10:00`},null,8,[`value`])])]),u(`div`,R,[a[12]||=u(`label`,{style:{display:`block`,"margin-bottom":`8px`,"font-weight":`500`}},`事件颜色`,-1),u(`div`,z,[(g(!0),l(o,null,v(y(O),e=>(g(),l(`div`,{key:e,style:h({width:`30px`,height:`30px`,backgroundColor:e,borderRadius:`50%`,cursor:`pointer`,border:y(D).color===e?`3px solid #000`:`2px solid #ddd`}),onClick:t=>y(D).color=e},null,12,B))),128))])])])]),_:1},8,[`show`,`title`,`onPositiveClick`])]))}}),[[`__scopeId`,`data-v-0817ba9a`]]);export{D as a,O as i,j as n,k as o,A as r,V as t};
2
2
  //# sourceMappingURL=C_FullCalendar2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"C_FullCalendar2.js","names":[],"sources":["../src/components/C_FullCalendar/data.ts","../src/components/C_FullCalendar/composables/useCalendarEvents.ts","../src/components/C_FullCalendar/index.vue"],"sourcesContent":["import type { CalendarEditForm } from \"./types\";\r\n\r\nexport const EVENT_COLORS = [\r\n \"#3f86ff\",\r\n \"#ff6b6b\",\r\n \"#67c23a\",\r\n \"#e6a23c\",\r\n \"#9c27b0\",\r\n \"#00bcd4\",\r\n \"#ff5722\",\r\n];\r\n\r\nexport const DEFAULT_EDIT_FORM: CalendarEditForm = {\r\n id: \"\",\r\n title: \"\",\r\n date: Date.now(),\r\n startTime: \"09:00\",\r\n endTime: \"10:00\",\r\n color: \"#3f86ff\",\r\n};\r\n\r\nexport const HEADER_TOOLBAR = {\r\n left: \"prev,next today\",\r\n center: \"title\",\r\n right: \"dayGridMonth,dayGridWeek,dayGridDay,listWeek\",\r\n};\r\n\r\nexport const BUTTON_TEXT = {\r\n today: \"今天\",\r\n month: \"月\",\r\n week: \"周\",\r\n day: \"日\",\r\n list: \"列表\",\r\n};\r\n","import { ref, watch } from \"vue\";\r\nimport { useMessage } from \"naive-ui\";\r\nimport type { Ref } from \"vue\";\r\nimport type { CalendarEvent, CalendarProps, CalendarEditForm } from \"../types\";\r\nimport {\r\n EVENT_COLORS,\r\n DEFAULT_EDIT_FORM,\r\n HEADER_TOOLBAR,\r\n BUTTON_TEXT,\r\n} from \"../data\";\r\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\r\nimport interactionPlugin from \"@fullcalendar/interaction\";\r\nimport listPlugin from \"@fullcalendar/list\";\r\nimport type { CalendarOptions } from \"@fullcalendar/core\";\r\nimport zhCn from \"@fullcalendar/core/locales/zh-cn\";\r\n\r\ntype EmitFn = {\r\n (event: \"update:events\", events: CalendarEvent[]): void;\r\n (event: \"event-added\", eventData: CalendarEvent): void;\r\n (event: \"event-updated\", eventData: Partial<CalendarEvent>): void;\r\n (event: \"event-deleted\", eventData: { id: string; title: string }): void;\r\n (event: \"event-dropped\", eventData: Partial<CalendarEvent>): void;\r\n};\r\n\r\nexport function useCalendarEvents(props: CalendarProps, emit: EmitFn) {\r\n const message = useMessage();\r\n const calendarRef = ref();\r\n\r\n const internalEvents = ref<CalendarEvent[]>([...(props.events ?? [])]);\r\n\r\n const showActionDialog = ref(false);\r\n const showEditModal = ref(false);\r\n const isEditing = ref(false);\r\n const selectedEvent = ref<any>(null);\r\n const editForm = ref<CalendarEditForm>({ ...DEFAULT_EDIT_FORM });\r\n\r\n const addEventToArray = (event: CalendarEvent) => {\r\n internalEvents.value = [...internalEvents.value, event];\r\n emit(\"update:events\", internalEvents.value);\r\n };\r\n\r\n const updateEventInArray = (eventData: Partial<CalendarEvent>) => {\r\n const index = internalEvents.value.findIndex((e) => e.id === eventData.id);\r\n if (index !== -1) {\r\n internalEvents.value = internalEvents.value.map((event, i) =>\r\n i === index ? { ...event, ...eventData } : event,\r\n );\r\n emit(\"update:events\", internalEvents.value);\r\n }\r\n };\r\n\r\n const removeEventFromArray = (eventId: string) => {\r\n internalEvents.value = internalEvents.value.filter((e) => e.id !== eventId);\r\n emit(\"update:events\", internalEvents.value);\r\n };\r\n\r\n function handleEventClick(info: any) {\r\n if (!props.editable) return;\r\n info.jsEvent.preventDefault();\r\n selectedEvent.value = info.event;\r\n if (props.showEditDialog) showActionDialog.value = true;\r\n }\r\n\r\n function handleDateClick(info: any) {\r\n if (!props.editable || !props.showAddDialog) return;\r\n openAddModal(new Date(info.dateStr));\r\n }\r\n\r\n function handleEventDrop(info: any) {\r\n const payload = {\r\n id: info.event.id,\r\n start: info.event.start,\r\n end: info.event.end,\r\n };\r\n updateEventInArray(payload);\r\n emit(\"event-dropped\", payload);\r\n message.success(`事件 \"${info.event.title}\" 时间已更新`);\r\n }\r\n\r\n function handleEventResize(info: any) {\r\n const payload = {\r\n id: info.event.id,\r\n start: info.event.start,\r\n end: info.event.end,\r\n };\r\n updateEventInArray(payload);\r\n emit(\"event-updated\", payload);\r\n }\r\n\r\n function openAddModal(date: Date) {\r\n isEditing.value = false;\r\n editForm.value = {\r\n ...DEFAULT_EDIT_FORM,\r\n date: date.getTime(),\r\n color: EVENT_COLORS[Math.floor(Math.random() * EVENT_COLORS.length)],\r\n };\r\n showEditModal.value = true;\r\n }\r\n\r\n function openEditModal() {\r\n if (!selectedEvent.value) return;\r\n isEditing.value = true;\r\n const event = selectedEvent.value;\r\n const startDate = new Date(event.start);\r\n const endDate = event.end\r\n ? new Date(event.end)\r\n : new Date(event.start.getTime() + 3600000);\r\n\r\n editForm.value = {\r\n id: event.id,\r\n title: event.title,\r\n date: startDate.getTime(),\r\n startTime: `${String(startDate.getHours()).padStart(2, \"0\")}:${String(startDate.getMinutes()).padStart(2, \"0\")}`,\r\n endTime: `${String(endDate.getHours()).padStart(2, \"0\")}:${String(endDate.getMinutes()).padStart(2, \"0\")}`,\r\n color: event.backgroundColor || \"#3f86ff\",\r\n };\r\n showActionDialog.value = false;\r\n showEditModal.value = true;\r\n }\r\n\r\n function saveEvent() {\r\n if (!editForm.value.title.trim()) {\r\n message.error(\"请输入事件标题\");\r\n return false;\r\n }\r\n if (editForm.value.startTime >= editForm.value.endTime) {\r\n message.error(\"结束时间必须晚于开始时间\");\r\n return false;\r\n }\r\n\r\n const dateStr = new Date(editForm.value.date).toISOString().split(\"T\")[0];\r\n const eventData: CalendarEvent = {\r\n id: isEditing.value ? editForm.value.id : Date.now().toString(),\r\n title: editForm.value.title,\r\n start: new Date(`${dateStr}T${editForm.value.startTime}:00`),\r\n end: new Date(`${dateStr}T${editForm.value.endTime}:00`),\r\n color: editForm.value.color,\r\n };\r\n\r\n if (isEditing.value) {\r\n updateEventInArray(eventData);\r\n emit(\"event-updated\", eventData);\r\n message.success(\"事件已更新\");\r\n } else {\r\n addEventToArray(eventData);\r\n emit(\"event-added\", eventData);\r\n message.success(\"事件已添加\");\r\n }\r\n\r\n showEditModal.value = false;\r\n return true;\r\n }\r\n\r\n function deleteEvent() {\r\n if (!selectedEvent.value) return;\r\n const { id, title } = selectedEvent.value;\r\n removeEventFromArray(id);\r\n emit(\"event-deleted\", { id, title });\r\n showActionDialog.value = false;\r\n message.success(`已删除事件: ${title}`);\r\n }\r\n\r\n const calendarOptions: Ref<CalendarOptions> = ref({\r\n plugins: [dayGridPlugin, interactionPlugin, listPlugin],\r\n locale: zhCn,\r\n initialView: props.initialView ?? \"dayGridMonth\",\r\n events: internalEvents.value as any,\r\n headerToolbar: HEADER_TOOLBAR,\r\n buttonText: BUTTON_TEXT,\r\n editable: props.editable ?? true,\r\n eventClick: handleEventClick,\r\n dateClick: handleDateClick,\r\n eventDrop: handleEventDrop,\r\n eventResize: handleEventResize,\r\n });\r\n\r\n watch(\r\n () => props.events,\r\n (newEvents) => {\r\n internalEvents.value = [...(newEvents ?? [])];\r\n },\r\n { deep: true },\r\n );\r\n\r\n watch(\r\n internalEvents,\r\n (newEvents) => {\r\n calendarOptions.value.events = newEvents as any;\r\n },\r\n { deep: true },\r\n );\r\n\r\n return {\r\n calendarRef,\r\n calendarOptions,\r\n showActionDialog,\r\n showEditModal,\r\n isEditing,\r\n selectedEvent,\r\n editForm,\r\n eventColors: EVENT_COLORS,\r\n openEditModal,\r\n saveEvent,\r\n deleteEvent,\r\n expose: {\r\n getApi: () => calendarRef.value?.getApi(),\r\n addEvent: addEventToArray,\r\n updateEvent: updateEventInArray,\r\n deleteEvent: removeEventFromArray,\r\n getEvents: () => internalEvents.value,\r\n },\r\n };\r\n}\r\n","<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2025-06-19\n * @Description: 全局日历组件 — 薄 UI 壳,逻辑由 useCalendarEvents 驱动\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-full-calendar\">\n <FullCalendar\n ref=\"calendarRef\"\n :options=\"calendarOptions\"\n />\n\n <NModal\n v-if=\"showActionDialog\"\n v-model:show=\"showActionDialog\"\n preset=\"dialog\"\n :title=\"`事件操作 - ${selectedEvent?.title}`\"\n style=\"width: 400px\"\n >\n <div class=\"ml-10% mt-20px\">\n <NButton\n type=\"primary\"\n @click=\"openEditModal\"\n style=\"margin-right: 12px\"\n size=\"small\"\n >\n 编辑\n </NButton>\n <NButton\n type=\"error\"\n @click=\"deleteEvent\"\n size=\"small\"\n >\n 删除\n </NButton>\n </div>\n </NModal>\n\n <NModal\n v-model:show=\"showEditModal\"\n preset=\"dialog\"\n :title=\"isEditing ? '编辑事件' : '添加事件'\"\n positive-text=\"保存\"\n negative-text=\"取消\"\n @positive-click=\"saveEvent\"\n >\n <div style=\"padding: 20px\">\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件标题</label\n >\n <NInput\n v-model:value=\"editForm.title\"\n placeholder=\"请输入事件标题\"\n />\n </div>\n\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件日期</label\n >\n <NDatePicker\n v-model:value=\"editForm.date\"\n type=\"date\"\n format=\"yyyy-MM-dd\"\n style=\"width: 100%\"\n />\n </div>\n\n <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px\">\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >开始时间</label\n >\n <NInput\n v-model:value=\"editForm.startTime\"\n placeholder=\"09:00\"\n />\n </div>\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >结束时间</label\n >\n <NInput\n v-model:value=\"editForm.endTime\"\n placeholder=\"10:00\"\n />\n </div>\n </div>\n\n <div style=\"margin-top: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件颜色</label\n >\n <div style=\"display: flex; gap: 8px\">\n <div\n v-for=\"color in eventColors\"\n :key=\"color\"\n :style=\"{\n width: '30px',\n height: '30px',\n backgroundColor: color,\n borderRadius: '50%',\n cursor: 'pointer',\n border:\n editForm.color === color\n ? '3px solid #000'\n : '2px solid #ddd',\n }\"\n @click=\"editForm.color = color\"\n />\n </div>\n </div>\n </div>\n </NModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { NModal, NButton, NInput, NDatePicker } from 'naive-ui'\n import FullCalendar from '@fullcalendar/vue3'\n import { useCalendarEvents } from './composables/useCalendarEvents'\n import type { CalendarProps, CalendarEmits, CalendarExpose } from './types'\n\n defineOptions({ name: 'C_FullCalendar' })\n\n const props = withDefaults(defineProps<CalendarProps>(), {\n events: () => [],\n initialView: 'dayGridMonth',\n editable: true,\n showAddDialog: true,\n showEditDialog: true,\n })\n\n const emit = defineEmits<CalendarEmits>()\n\n const {\n calendarRef,\n calendarOptions,\n showActionDialog,\n showEditModal,\n isEditing,\n selectedEvent,\n editForm,\n eventColors,\n openEditModal,\n saveEvent,\n deleteEvent,\n expose,\n } = useCalendarEvents(props, emit)\n\n defineExpose<CalendarExpose>(expose)\n</script>\n\n<style scoped>\n .c-full-calendar {\n width: 100%;\n }\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"C_FullCalendar2.js","names":[],"sources":["../src/components/C_FullCalendar/data.ts","../src/components/C_FullCalendar/composables/useCalendarEvents.ts","../src/components/C_FullCalendar/index.vue","../src/components/C_FullCalendar/index.vue"],"sourcesContent":["import type { CalendarEditForm } from \"./types\";\r\n\r\nexport const EVENT_COLORS = [\r\n \"#3f86ff\",\r\n \"#ff6b6b\",\r\n \"#67c23a\",\r\n \"#e6a23c\",\r\n \"#9c27b0\",\r\n \"#00bcd4\",\r\n \"#ff5722\",\r\n];\r\n\r\nexport const DEFAULT_EDIT_FORM: CalendarEditForm = {\r\n id: \"\",\r\n title: \"\",\r\n date: Date.now(),\r\n startTime: \"09:00\",\r\n endTime: \"10:00\",\r\n color: \"#3f86ff\",\r\n};\r\n\r\nexport const HEADER_TOOLBAR = {\r\n left: \"prev,next today\",\r\n center: \"title\",\r\n right: \"dayGridMonth,dayGridWeek,dayGridDay,listWeek\",\r\n};\r\n\r\nexport const BUTTON_TEXT = {\r\n today: \"今天\",\r\n month: \"月\",\r\n week: \"周\",\r\n day: \"日\",\r\n list: \"列表\",\r\n};\r\n","import { ref, watch } from \"vue\";\r\nimport { useMessage } from \"naive-ui\";\r\nimport type { Ref } from \"vue\";\r\nimport type { CalendarEvent, CalendarProps, CalendarEditForm } from \"../types\";\r\nimport {\r\n EVENT_COLORS,\r\n DEFAULT_EDIT_FORM,\r\n HEADER_TOOLBAR,\r\n BUTTON_TEXT,\r\n} from \"../data\";\r\nimport dayGridPlugin from \"@fullcalendar/daygrid\";\r\nimport interactionPlugin from \"@fullcalendar/interaction\";\r\nimport listPlugin from \"@fullcalendar/list\";\r\nimport type { CalendarOptions } from \"@fullcalendar/core\";\r\nimport zhCn from \"@fullcalendar/core/locales/zh-cn\";\r\n\r\ntype EmitFn = {\r\n (event: \"update:events\", events: CalendarEvent[]): void;\r\n (event: \"event-added\", eventData: CalendarEvent): void;\r\n (event: \"event-updated\", eventData: Partial<CalendarEvent>): void;\r\n (event: \"event-deleted\", eventData: { id: string; title: string }): void;\r\n (event: \"event-dropped\", eventData: Partial<CalendarEvent>): void;\r\n};\r\n\r\nexport function useCalendarEvents(props: CalendarProps, emit: EmitFn) {\r\n const message = useMessage();\r\n const calendarRef = ref();\r\n\r\n const internalEvents = ref<CalendarEvent[]>([...(props.events ?? [])]);\r\n\r\n const showActionDialog = ref(false);\r\n const showEditModal = ref(false);\r\n const isEditing = ref(false);\r\n const selectedEvent = ref<any>(null);\r\n const editForm = ref<CalendarEditForm>({ ...DEFAULT_EDIT_FORM });\r\n\r\n const addEventToArray = (event: CalendarEvent) => {\r\n internalEvents.value = [...internalEvents.value, event];\r\n emit(\"update:events\", internalEvents.value);\r\n };\r\n\r\n const updateEventInArray = (eventData: Partial<CalendarEvent>) => {\r\n const index = internalEvents.value.findIndex((e) => e.id === eventData.id);\r\n if (index !== -1) {\r\n internalEvents.value = internalEvents.value.map((event, i) =>\r\n i === index ? { ...event, ...eventData } : event,\r\n );\r\n emit(\"update:events\", internalEvents.value);\r\n }\r\n };\r\n\r\n const removeEventFromArray = (eventId: string) => {\r\n internalEvents.value = internalEvents.value.filter((e) => e.id !== eventId);\r\n emit(\"update:events\", internalEvents.value);\r\n };\r\n\r\n function handleEventClick(info: any) {\r\n if (!props.editable) return;\r\n info.jsEvent.preventDefault();\r\n selectedEvent.value = info.event;\r\n if (props.showEditDialog) showActionDialog.value = true;\r\n }\r\n\r\n function handleDateClick(info: any) {\r\n if (!props.editable || !props.showAddDialog) return;\r\n openAddModal(new Date(info.dateStr));\r\n }\r\n\r\n function handleEventDrop(info: any) {\r\n const payload = {\r\n id: info.event.id,\r\n start: info.event.start,\r\n end: info.event.end,\r\n };\r\n updateEventInArray(payload);\r\n emit(\"event-dropped\", payload);\r\n message.success(`事件 \"${info.event.title}\" 时间已更新`);\r\n }\r\n\r\n function handleEventResize(info: any) {\r\n const payload = {\r\n id: info.event.id,\r\n start: info.event.start,\r\n end: info.event.end,\r\n };\r\n updateEventInArray(payload);\r\n emit(\"event-updated\", payload);\r\n }\r\n\r\n function openAddModal(date: Date) {\r\n isEditing.value = false;\r\n editForm.value = {\r\n ...DEFAULT_EDIT_FORM,\r\n date: date.getTime(),\r\n color: EVENT_COLORS[Math.floor(Math.random() * EVENT_COLORS.length)],\r\n };\r\n showEditModal.value = true;\r\n }\r\n\r\n function openEditModal() {\r\n if (!selectedEvent.value) return;\r\n isEditing.value = true;\r\n const event = selectedEvent.value;\r\n const startDate = new Date(event.start);\r\n const endDate = event.end\r\n ? new Date(event.end)\r\n : new Date(event.start.getTime() + 3600000);\r\n\r\n editForm.value = {\r\n id: event.id,\r\n title: event.title,\r\n date: startDate.getTime(),\r\n startTime: `${String(startDate.getHours()).padStart(2, \"0\")}:${String(startDate.getMinutes()).padStart(2, \"0\")}`,\r\n endTime: `${String(endDate.getHours()).padStart(2, \"0\")}:${String(endDate.getMinutes()).padStart(2, \"0\")}`,\r\n color: event.backgroundColor || \"#3f86ff\",\r\n };\r\n showActionDialog.value = false;\r\n showEditModal.value = true;\r\n }\r\n\r\n function saveEvent() {\r\n if (!editForm.value.title.trim()) {\r\n message.error(\"请输入事件标题\");\r\n return false;\r\n }\r\n if (editForm.value.startTime >= editForm.value.endTime) {\r\n message.error(\"结束时间必须晚于开始时间\");\r\n return false;\r\n }\r\n\r\n const dateStr = new Date(editForm.value.date).toISOString().split(\"T\")[0];\r\n const eventData: CalendarEvent = {\r\n id: isEditing.value ? editForm.value.id : Date.now().toString(),\r\n title: editForm.value.title,\r\n start: new Date(`${dateStr}T${editForm.value.startTime}:00`),\r\n end: new Date(`${dateStr}T${editForm.value.endTime}:00`),\r\n color: editForm.value.color,\r\n };\r\n\r\n if (isEditing.value) {\r\n updateEventInArray(eventData);\r\n emit(\"event-updated\", eventData);\r\n message.success(\"事件已更新\");\r\n } else {\r\n addEventToArray(eventData);\r\n emit(\"event-added\", eventData);\r\n message.success(\"事件已添加\");\r\n }\r\n\r\n showEditModal.value = false;\r\n return true;\r\n }\r\n\r\n function deleteEvent() {\r\n if (!selectedEvent.value) return;\r\n const { id, title } = selectedEvent.value;\r\n removeEventFromArray(id);\r\n emit(\"event-deleted\", { id, title });\r\n showActionDialog.value = false;\r\n message.success(`已删除事件: ${title}`);\r\n }\r\n\r\n const calendarOptions: Ref<CalendarOptions> = ref({\r\n plugins: [dayGridPlugin, interactionPlugin, listPlugin],\r\n locale: zhCn,\r\n initialView: props.initialView ?? \"dayGridMonth\",\r\n events: internalEvents.value as any,\r\n headerToolbar: HEADER_TOOLBAR,\r\n buttonText: BUTTON_TEXT,\r\n editable: props.editable ?? true,\r\n eventClick: handleEventClick,\r\n dateClick: handleDateClick,\r\n eventDrop: handleEventDrop,\r\n eventResize: handleEventResize,\r\n });\r\n\r\n watch(\r\n () => props.events,\r\n (newEvents) => {\r\n internalEvents.value = [...(newEvents ?? [])];\r\n },\r\n { deep: true },\r\n );\r\n\r\n watch(\r\n internalEvents,\r\n (newEvents) => {\r\n calendarOptions.value.events = newEvents as any;\r\n },\r\n { deep: true },\r\n );\r\n\r\n return {\r\n calendarRef,\r\n calendarOptions,\r\n showActionDialog,\r\n showEditModal,\r\n isEditing,\r\n selectedEvent,\r\n editForm,\r\n eventColors: EVENT_COLORS,\r\n openEditModal,\r\n saveEvent,\r\n deleteEvent,\r\n expose: {\r\n getApi: () => calendarRef.value?.getApi(),\r\n addEvent: addEventToArray,\r\n updateEvent: updateEventInArray,\r\n deleteEvent: removeEventFromArray,\r\n getEvents: () => internalEvents.value,\r\n },\r\n };\r\n}\r\n","<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2025-06-19\n * @Description: 全局日历组件 — 薄 UI 壳,逻辑由 useCalendarEvents 驱动\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-full-calendar\">\n <FullCalendar\n ref=\"calendarRef\"\n :options=\"calendarOptions\"\n />\n\n <NModal\n v-if=\"showActionDialog\"\n v-model:show=\"showActionDialog\"\n preset=\"dialog\"\n :title=\"`事件操作 - ${selectedEvent?.title}`\"\n style=\"width: 400px\"\n >\n <div class=\"ml-10% mt-20px\">\n <NButton\n type=\"primary\"\n @click=\"openEditModal\"\n style=\"margin-right: 12px\"\n size=\"small\"\n >\n 编辑\n </NButton>\n <NButton\n type=\"error\"\n @click=\"deleteEvent\"\n size=\"small\"\n >\n 删除\n </NButton>\n </div>\n </NModal>\n\n <NModal\n v-model:show=\"showEditModal\"\n preset=\"dialog\"\n :title=\"isEditing ? '编辑事件' : '添加事件'\"\n positive-text=\"保存\"\n negative-text=\"取消\"\n @positive-click=\"saveEvent\"\n >\n <div style=\"padding: 20px\">\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件标题</label\n >\n <NInput\n v-model:value=\"editForm.title\"\n placeholder=\"请输入事件标题\"\n />\n </div>\n\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件日期</label\n >\n <NDatePicker\n v-model:value=\"editForm.date\"\n type=\"date\"\n format=\"yyyy-MM-dd\"\n style=\"width: 100%\"\n />\n </div>\n\n <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px\">\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >开始时间</label\n >\n <NInput\n v-model:value=\"editForm.startTime\"\n placeholder=\"09:00\"\n />\n </div>\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >结束时间</label\n >\n <NInput\n v-model:value=\"editForm.endTime\"\n placeholder=\"10:00\"\n />\n </div>\n </div>\n\n <div style=\"margin-top: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件颜色</label\n >\n <div style=\"display: flex; gap: 8px\">\n <div\n v-for=\"color in eventColors\"\n :key=\"color\"\n :style=\"{\n width: '30px',\n height: '30px',\n backgroundColor: color,\n borderRadius: '50%',\n cursor: 'pointer',\n border:\n editForm.color === color\n ? '3px solid #000'\n : '2px solid #ddd',\n }\"\n @click=\"editForm.color = color\"\n />\n </div>\n </div>\n </div>\n </NModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { NModal, NButton, NInput, NDatePicker } from 'naive-ui'\n import FullCalendar from '@fullcalendar/vue3'\n import { useCalendarEvents } from './composables/useCalendarEvents'\n import type { CalendarProps, CalendarEmits, CalendarExpose } from './types'\n\n defineOptions({ name: 'C_FullCalendar' })\n\n const props = withDefaults(defineProps<CalendarProps>(), {\n events: () => [],\n initialView: 'dayGridMonth',\n editable: true,\n showAddDialog: true,\n showEditDialog: true,\n })\n\n const emit = defineEmits<CalendarEmits>()\n\n const {\n calendarRef,\n calendarOptions,\n showActionDialog,\n showEditModal,\n isEditing,\n selectedEvent,\n editForm,\n eventColors,\n openEditModal,\n saveEvent,\n deleteEvent,\n expose,\n } = useCalendarEvents(props, emit)\n\n defineExpose<CalendarExpose>(expose)\n</script>\n\n<style scoped>\n .c-full-calendar {\n width: 100%;\n }\n</style>\n","<!--\n * @Author: ChenYu ycyplus@gmail.com\n * @Date: 2025-06-19\n * @Description: 全局日历组件 — 薄 UI 壳,逻辑由 useCalendarEvents 驱动\n * @Migration: naive-ui-components 组件库迁移版本\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-full-calendar\">\n <FullCalendar\n ref=\"calendarRef\"\n :options=\"calendarOptions\"\n />\n\n <NModal\n v-if=\"showActionDialog\"\n v-model:show=\"showActionDialog\"\n preset=\"dialog\"\n :title=\"`事件操作 - ${selectedEvent?.title}`\"\n style=\"width: 400px\"\n >\n <div class=\"ml-10% mt-20px\">\n <NButton\n type=\"primary\"\n @click=\"openEditModal\"\n style=\"margin-right: 12px\"\n size=\"small\"\n >\n 编辑\n </NButton>\n <NButton\n type=\"error\"\n @click=\"deleteEvent\"\n size=\"small\"\n >\n 删除\n </NButton>\n </div>\n </NModal>\n\n <NModal\n v-model:show=\"showEditModal\"\n preset=\"dialog\"\n :title=\"isEditing ? '编辑事件' : '添加事件'\"\n positive-text=\"保存\"\n negative-text=\"取消\"\n @positive-click=\"saveEvent\"\n >\n <div style=\"padding: 20px\">\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件标题</label\n >\n <NInput\n v-model:value=\"editForm.title\"\n placeholder=\"请输入事件标题\"\n />\n </div>\n\n <div style=\"margin-bottom: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件日期</label\n >\n <NDatePicker\n v-model:value=\"editForm.date\"\n type=\"date\"\n format=\"yyyy-MM-dd\"\n style=\"width: 100%\"\n />\n </div>\n\n <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px\">\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >开始时间</label\n >\n <NInput\n v-model:value=\"editForm.startTime\"\n placeholder=\"09:00\"\n />\n </div>\n <div>\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >结束时间</label\n >\n <NInput\n v-model:value=\"editForm.endTime\"\n placeholder=\"10:00\"\n />\n </div>\n </div>\n\n <div style=\"margin-top: 16px\">\n <label style=\"display: block; margin-bottom: 8px; font-weight: 500\"\n >事件颜色</label\n >\n <div style=\"display: flex; gap: 8px\">\n <div\n v-for=\"color in eventColors\"\n :key=\"color\"\n :style=\"{\n width: '30px',\n height: '30px',\n backgroundColor: color,\n borderRadius: '50%',\n cursor: 'pointer',\n border:\n editForm.color === color\n ? '3px solid #000'\n : '2px solid #ddd',\n }\"\n @click=\"editForm.color = color\"\n />\n </div>\n </div>\n </div>\n </NModal>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { NModal, NButton, NInput, NDatePicker } from 'naive-ui'\n import FullCalendar from '@fullcalendar/vue3'\n import { useCalendarEvents } from './composables/useCalendarEvents'\n import type { CalendarProps, CalendarEmits, CalendarExpose } from './types'\n\n defineOptions({ name: 'C_FullCalendar' })\n\n const props = withDefaults(defineProps<CalendarProps>(), {\n events: () => [],\n initialView: 'dayGridMonth',\n editable: true,\n showAddDialog: true,\n showEditDialog: true,\n })\n\n const emit = defineEmits<CalendarEmits>()\n\n const {\n calendarRef,\n calendarOptions,\n showActionDialog,\n showEditModal,\n isEditing,\n selectedEvent,\n editForm,\n eventColors,\n openEditModal,\n saveEvent,\n deleteEvent,\n expose,\n } = useCalendarEvents(props, emit)\n\n defineExpose<CalendarExpose>(expose)\n</script>\n\n<style scoped>\n .c-full-calendar {\n width: 100%;\n }\n</style>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"C_GlobalSearch-B6wK3m3k.css","names":[],"sources":["../src/components/C_GlobalSearch/index.vue?vue&type=style&index=0&scoped=4b182fa8&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */[data-v-4b182fa8] .robot-highlight {\n background: linear-gradient(135deg, rgba(255, 193, 7, 0.25), rgba(255, 193, 7, 0.35));\n color: inherit;\n border-radius: 3px;\n padding: 1px 2px;\n font-weight: 600;\n box-shadow: 0 0 0 1px rgba(255, 193, 7, 0.2);\n}\n.dialog-dark[data-v-4b182fa8] .robot-highlight {\n background: linear-gradient(135deg, rgba(255, 193, 7, 0.3), rgba(255, 193, 7, 0.45));\n box-shadow: 0 0 0 1px rgba(255, 193, 7, 0.3);\n}\n.robot-search-trigger[data-v-4b182fa8] {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n padding: 4px 14px;\n background: linear-gradient(145deg, rgba(99, 102, 241, 0.12), rgba(139, 92, 246, 0.08));\n backdrop-filter: blur(20px);\n border: 1px solid rgba(99, 102, 241, 0.2);\n border-radius: 14px;\n font-size: 13px;\n color: #4f46e5;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n min-width: 160px;\n position: relative;\n overflow: hidden;\n}\n.robot-search-trigger[data-v-4b182fa8]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n background: linear-gradient(90deg, transparent, rgba(99, 102, 241, 0.15), transparent);\n transition: left 0.5s ease;\n}\n.robot-search-trigger .robot-trigger-icon[data-v-4b182fa8] {\n font-size: 16px;\n opacity: 0.9;\n flex-shrink: 0;\n transition: all 0.3s ease;\n}\n.robot-search-trigger .robot-trigger-text[data-v-4b182fa8] {\n flex: 1;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n.robot-search-trigger .robot-trigger-shortcut[data-v-4b182fa8] {\n font-size: 11px;\n opacity: 0.9;\n font-family: ui-monospace, \"SF Mono\", Monaco, \"Cascadia Code\", \"Roboto Mono\", Consolas, \"Courier New\", monospace;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(139, 92, 246, 0.12));\n padding: 2px 6px;\n border-radius: 4px;\n border: 1px solid rgba(99, 102, 241, 0.25);\n margin-left: auto;\n color: #3730a3;\n transition: all 0.3s ease;\n}\n.robot-search-trigger[data-v-4b182fa8]:hover {\n background: linear-gradient(145deg, rgba(99, 102, 241, 0.18), rgba(139, 92, 246, 0.12));\n border-color: rgba(99, 102, 241, 0.3);\n color: #3730a3;\n transform: translateY(-1px);\n}\n.robot-search-trigger[data-v-4b182fa8]:hover::before {\n left: 100%;\n}\n.robot-search-trigger:hover .robot-trigger-icon[data-v-4b182fa8] {\n opacity: 1;\n transform: scale(1.05);\n}\n.robot-search-trigger:hover .robot-trigger-shortcut[data-v-4b182fa8] {\n opacity: 1;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.22), rgba(139, 92, 246, 0.18));\n border-color: rgba(99, 102, 241, 0.35);\n color: #312e81;\n transform: scale(1.05);\n}\n.robot-search-trigger[data-v-4b182fa8]:active {\n transform: translateY(0) scale(0.98);\n transition: all 0.1s ease;\n}\n.robot-search-trigger.trigger-dark[data-v-4b182fa8] {\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));\n border-color: rgba(255, 255, 255, 0.12);\n color: #d1d5db;\n}\n.robot-search-trigger.trigger-dark[data-v-4b182fa8]::before {\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);\n}\n.robot-search-trigger.trigger-dark .robot-trigger-shortcut[data-v-4b182fa8] {\n background: rgba(255, 255, 255, 0.1);\n border-color: rgba(255, 255, 255, 0.15);\n color: #b4b8c0;\n}\n.robot-search-trigger.trigger-dark[data-v-4b182fa8]:hover {\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));\n border-color: rgba(255, 255, 255, 0.18);\n color: #e5e7eb;\n}\n.robot-search-trigger.trigger-dark:hover .robot-trigger-shortcut[data-v-4b182fa8] {\n background: rgba(255, 255, 255, 0.15);\n border-color: rgba(255, 255, 255, 0.25);\n color: #d1d5db;\n}\n.robot-dialog-overlay[data-v-4b182fa8] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(135deg, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.4));\n backdrop-filter: blur(12px);\n z-index: 9999;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding: 80px 16px 16px;\n overflow-y: auto;\n}\n.robot-dialog-container[data-v-4b182fa8] {\n width: 100%;\n max-width: 580px;\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.92));\n backdrop-filter: blur(24px);\n border-radius: 16px;\n border: 1px solid rgba(255, 255, 255, 0.4);\n box-shadow: 0 24px 32px -8px rgba(0, 0, 0, 0.12), 0 16px 24px -8px rgba(0, 0, 0, 0.08), 0 8px 16px -4px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(255, 255, 255, 0.1);\n overflow: hidden;\n margin: 0 auto;\n position: relative;\n}\n.robot-dialog-container[data-v-4b182fa8]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);\n}\n.robot-dialog-container.dialog-dark[data-v-4b182fa8] {\n background: linear-gradient(145deg, rgba(24, 24, 27, 0.98), rgba(18, 18, 20, 0.95));\n backdrop-filter: blur(32px);\n border-color: rgba(255, 255, 255, 0.12);\n box-shadow: 0 24px 32px -8px rgba(0, 0, 0, 0.4), 0 16px 24px -8px rgba(0, 0, 0, 0.3), 0 8px 16px -4px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05);\n}\n.robot-dialog-container.dialog-dark[data-v-4b182fa8]::before {\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);\n}\n.robot-search-header[data-v-4b182fa8] {\n display: flex;\n align-items: center;\n padding: 20px 24px;\n gap: 14px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.06);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2));\n}\n.robot-search-header .robot-search-icon[data-v-4b182fa8] {\n color: #6b7280;\n font-size: 20px;\n flex-shrink: 0;\n opacity: 0.8;\n}\n.robot-search-header .robot-search-input[data-v-4b182fa8] {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font-size: 16px;\n color: #1f2937;\n line-height: 1.6;\n font-weight: 400;\n}\n.robot-search-header .robot-search-input[data-v-4b182fa8]::placeholder {\n color: #9ca3af;\n font-weight: 400;\n}\n.robot-search-header .robot-close-btn[data-v-4b182fa8] {\n padding: 8px;\n border: none;\n background: rgba(0, 0, 0, 0.04);\n border-radius: 8px;\n color: #6b7280;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n backdrop-filter: blur(8px);\n}\n.robot-search-header .robot-close-btn[data-v-4b182fa8]:hover {\n background: rgba(0, 0, 0, 0.08);\n color: #374151;\n transform: scale(1.05);\n}\n.robot-search-header .robot-close-btn[data-v-4b182fa8]:active {\n transform: scale(0.95);\n}\n.dialog-dark .robot-search-header[data-v-4b182fa8] {\n border-bottom-color: rgba(255, 255, 255, 0.08);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));\n}\n.dialog-dark .robot-search-header .robot-search-icon[data-v-4b182fa8],\n.dialog-dark .robot-search-header .robot-close-btn[data-v-4b182fa8] {\n color: #9ca3af;\n}\n.dialog-dark .robot-search-header .robot-close-btn[data-v-4b182fa8] {\n background: rgba(255, 255, 255, 0.06);\n}\n.dialog-dark .robot-search-header .robot-close-btn[data-v-4b182fa8]:hover {\n color: #d1d5db;\n background: rgba(255, 255, 255, 0.12);\n}\n.dialog-dark .robot-search-header .robot-search-input[data-v-4b182fa8] {\n color: #f9fafb;\n}\n.dialog-dark .robot-search-header .robot-search-input[data-v-4b182fa8]::placeholder {\n color: #6b7280;\n}\n.robot-search-content[data-v-4b182fa8] {\n max-height: 420px;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n.robot-search-content[data-v-4b182fa8]::-webkit-scrollbar {\n width: 6px;\n}\n.robot-search-content[data-v-4b182fa8]::-webkit-scrollbar-track {\n background: transparent;\n}\n.robot-search-content[data-v-4b182fa8]::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.1);\n border-radius: 3px;\n}\n.robot-search-content[data-v-4b182fa8]::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.15);\n}\n.dialog-dark .robot-search-content[data-v-4b182fa8]::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.1);\n}\n.dialog-dark .robot-search-content[data-v-4b182fa8]::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.15);\n}\n.robot-empty-state[data-v-4b182fa8] {\n padding: 40px 24px;\n text-align: center;\n}\n.robot-empty-state .robot-empty-icon[data-v-4b182fa8] {\n font-size: 36px;\n color: #d1d5db;\n margin-bottom: 16px;\n opacity: 0.8;\n}\n.robot-empty-state p[data-v-4b182fa8] {\n margin: 0;\n font-size: 15px;\n color: #6b7280;\n font-weight: 400;\n line-height: 1.5;\n}\n.dialog-dark .robot-empty-state .robot-empty-icon[data-v-4b182fa8] {\n color: #6b7280;\n}\n.dialog-dark .robot-empty-state p[data-v-4b182fa8] {\n color: #9ca3af;\n}\n.robot-search-results[data-v-4b182fa8] {\n padding: 12px 0 8px;\n}\n.robot-result-group[data-v-4b182fa8]:not(:last-child) {\n margin-bottom: 12px;\n}\n.robot-group-title[data-v-4b182fa8] {\n padding: 16px 24px 10px;\n font-size: 12px;\n font-weight: 700;\n color: #6b7280;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.02), transparent);\n}\n.robot-group-title .robot-group-icon[data-v-4b182fa8] {\n font-size: 14px;\n opacity: 0.8;\n}\n.robot-group-title .robot-group-count[data-v-4b182fa8] {\n margin-left: auto;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(99, 102, 241, 0.05));\n color: #6366f1;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n border: 1px solid rgba(99, 102, 241, 0.15);\n box-shadow: 0 1px 2px rgba(99, 102, 241, 0.1);\n}\n.robot-group-title .robot-clear-history[data-v-4b182fa8] {\n padding: 4px;\n margin-left: 8px;\n background: rgba(239, 68, 68, 0.1);\n border: 1px solid rgba(239, 68, 68, 0.2);\n border-radius: 6px;\n color: #ef4444;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n width: 24px;\n height: 24px;\n}\n.robot-group-title .robot-clear-history div[data-v-4b182fa8] {\n width: 12px;\n height: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.robot-group-title .robot-clear-history[data-v-4b182fa8]:hover {\n background: rgba(239, 68, 68, 0.15);\n border-color: rgba(239, 68, 68, 0.3);\n color: #dc2626;\n transform: scale(1.05);\n}\n.robot-group-title .robot-clear-history[data-v-4b182fa8]:active {\n transform: scale(0.95);\n}\n.dialog-dark .robot-group-title[data-v-4b182fa8] {\n color: #9ca3af;\n background: linear-gradient(90deg, rgba(255, 255, 255, 0.03), transparent);\n}\n.dialog-dark .robot-group-title .robot-group-count[data-v-4b182fa8] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(99, 102, 241, 0.08));\n color: #a5b4fc;\n border-color: rgba(99, 102, 241, 0.2);\n}\n.robot-group-items[data-v-4b182fa8] {\n padding: 0 12px;\n}\n.robot-result-item[data-v-4b182fa8] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 12px 14px;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n margin: 2px 0;\n}\n.robot-result-item[data-v-4b182fa8]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(135deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.01));\n border-radius: 10px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.robot-result-item[data-v-4b182fa8]:hover, .robot-result-item.robot-result-item-selected[data-v-4b182fa8] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.06), rgba(99, 102, 241, 0.03));\n transform: translateX(2px);\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.1), 0 1px 3px rgba(0, 0, 0, 0.05);\n border: 1px solid rgba(99, 102, 241, 0.1);\n}\n.robot-result-item[data-v-4b182fa8]:hover::before, .robot-result-item.robot-result-item-selected[data-v-4b182fa8]::before {\n opacity: 1;\n}\n.robot-result-item:hover .robot-item-icon[data-v-4b182fa8], .robot-result-item.robot-result-item-selected .robot-item-icon[data-v-4b182fa8] {\n transform: scale(1.05);\n color: #6366f1;\n}\n.robot-result-item:hover .robot-item-label[data-v-4b182fa8], .robot-result-item.robot-result-item-selected .robot-item-label[data-v-4b182fa8] {\n color: #4f46e5;\n}\n.robot-result-item:hover.robot-history-item .robot-history-delete[data-v-4b182fa8], .robot-result-item.robot-result-item-selected.robot-history-item .robot-history-delete[data-v-4b182fa8] {\n opacity: 1;\n transform: scale(1);\n}\n.robot-result-item .robot-item-icon[data-v-4b182fa8] {\n font-size: 18px;\n color: #6b7280;\n flex-shrink: 0;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n border-radius: 6px;\n background: rgba(0, 0, 0, 0.02);\n}\n.robot-result-item .robot-item-icon.robot-default-icon[data-v-4b182fa8] {\n opacity: 0.6;\n background: rgba(0, 0, 0, 0.04);\n}\n.robot-result-item .robot-item-content[data-v-4b182fa8] {\n flex: 1;\n min-width: 0;\n}\n.robot-result-item .robot-item-content .robot-item-label[data-v-4b182fa8] {\n font-size: 14px;\n font-weight: 600;\n color: #1f2937;\n line-height: 1.4;\n transition: color 0.2s ease;\n margin-bottom: 1px;\n}\n.robot-result-item .robot-item-content .robot-item-desc[data-v-4b182fa8] {\n font-size: 12px;\n color: #6b7280;\n line-height: 1.3;\n opacity: 0.8;\n font-weight: 400;\n}\n.robot-result-item .robot-item-badge[data-v-4b182fa8] {\n font-size: 10px;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.12), rgba(99, 102, 241, 0.08));\n color: #6366f1;\n padding: 3px 8px;\n border-radius: 12px;\n font-weight: 600;\n min-width: 22px;\n text-align: center;\n border: 1px solid rgba(99, 102, 241, 0.15);\n box-shadow: 0 1px 2px rgba(99, 102, 241, 0.1);\n transition: all 0.2s ease;\n}\n.robot-result-item .robot-history-delete[data-v-4b182fa8] {\n padding: 4px;\n background: rgba(239, 68, 68, 0.08);\n border: 1px solid rgba(239, 68, 68, 0.15);\n border-radius: 6px;\n color: #ef4444;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n opacity: 0;\n transform: scale(0.8);\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n}\n.robot-result-item .robot-history-delete[data-v-4b182fa8]:hover {\n background: rgba(239, 68, 68, 0.15);\n border-color: rgba(239, 68, 68, 0.25);\n color: #dc2626;\n transform: scale(1.05);\n}\n.robot-result-item .robot-history-delete[data-v-4b182fa8]:active {\n transform: scale(0.9);\n}\n.dialog-dark .robot-result-item[data-v-4b182fa8]:hover, .dialog-dark .robot-result-item.robot-result-item-selected[data-v-4b182fa8] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.12), rgba(99, 102, 241, 0.06));\n border-color: rgba(99, 102, 241, 0.15);\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.15), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.dialog-dark .robot-result-item:hover .robot-item-icon[data-v-4b182fa8], .dialog-dark .robot-result-item.robot-result-item-selected .robot-item-icon[data-v-4b182fa8] {\n color: #a5b4fc;\n background: rgba(255, 255, 255, 0.08);\n}\n.dialog-dark .robot-result-item:hover .robot-item-label[data-v-4b182fa8], .dialog-dark .robot-result-item.robot-result-item-selected .robot-item-label[data-v-4b182fa8] {\n color: #c7d2fe;\n}\n.dialog-dark .robot-result-item .robot-item-icon[data-v-4b182fa8] {\n color: #9ca3af;\n background: rgba(255, 255, 255, 0.04);\n}\n.dialog-dark .robot-result-item .robot-item-icon.robot-default-icon[data-v-4b182fa8] {\n background: rgba(255, 255, 255, 0.06);\n}\n.dialog-dark .robot-result-item .robot-item-content .robot-item-label[data-v-4b182fa8] {\n color: #f9fafb;\n}\n.dialog-dark .robot-result-item .robot-item-content .robot-item-desc[data-v-4b182fa8] {\n color: #9ca3af;\n}\n.dialog-dark .robot-result-item .robot-item-badge[data-v-4b182fa8] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(99, 102, 241, 0.12));\n color: #a5b4fc;\n border-color: rgba(99, 102, 241, 0.25);\n}\n.robot-search-footer[data-v-4b182fa8] {\n padding: 16px 24px;\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.01));\n display: flex;\n justify-content: space-between;\n align-items: center;\n backdrop-filter: blur(8px);\n}\n.robot-search-footer .robot-footer-info[data-v-4b182fa8] {\n font-size: 11px;\n color: #9ca3af;\n font-weight: 500;\n}\n.dialog-dark .robot-search-footer[data-v-4b182fa8] {\n border-top-color: rgba(255, 255, 255, 0.08);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));\n}\n.dialog-dark .robot-search-footer .robot-footer-info[data-v-4b182fa8] {\n color: #6b7280;\n}\n.robot-footer-actions[data-v-4b182fa8] {\n display: flex;\n gap: 18px;\n}\n.robot-footer-actions .robot-action-item[data-v-4b182fa8] {\n display: flex;\n align-items: center;\n gap: 7px;\n font-size: 12px;\n color: #6b7280;\n font-weight: 500;\n}\n.robot-footer-actions .robot-action-item kbd[data-v-4b182fa8] {\n padding: 3px 8px;\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.7));\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-radius: 5px;\n font-family: ui-monospace, \"SF Mono\", Monaco, \"Cascadia Code\", \"Roboto Mono\", Consolas, \"Courier New\", monospace;\n font-size: 10px;\n line-height: 1;\n color: #4b5563;\n min-width: 22px;\n text-align: center;\n font-weight: 600;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.8);\n}\n.dialog-dark .robot-footer-actions .robot-action-item kbd[data-v-4b182fa8] {\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.08));\n border-color: rgba(255, 255, 255, 0.18);\n color: #d1d5db;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n.robot-footer-actions .robot-action-item span[data-v-4b182fa8] {\n font-size: 11px;\n font-weight: 500;\n}\n.dialog-dark .robot-footer-actions .robot-action-item[data-v-4b182fa8] {\n color: #9ca3af;\n}\n.robot-dialog-enter-active[data-v-4b182fa8],\n.robot-dialog-leave-active[data-v-4b182fa8] {\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.robot-dialog-enter-from[data-v-4b182fa8],\n.robot-dialog-leave-to[data-v-4b182fa8] {\n opacity: 0;\n}\n.robot-dialog-enter-from .robot-dialog-container[data-v-4b182fa8],\n.robot-dialog-leave-to .robot-dialog-container[data-v-4b182fa8] {\n transform: scale(0.92) translateY(-40px);\n opacity: 0;\n}\n.robot-dialog-enter-to[data-v-4b182fa8] {\n opacity: 1;\n}\n.robot-dialog-enter-to .robot-dialog-container[data-v-4b182fa8] {\n transform: scale(1) translateY(0);\n opacity: 1;\n}\n@media (max-width: 640px) {\n.robot-dialog-overlay[data-v-4b182fa8] {\n padding: 60px 12px 12px;\n}\n.robot-dialog-container[data-v-4b182fa8] {\n border-radius: 12px;\n}\n.robot-search-header[data-v-4b182fa8] {\n padding: 16px 18px;\n}\n.robot-group-title[data-v-4b182fa8] {\n padding: 14px 18px 8px;\n}\n.robot-group-items[data-v-4b182fa8] {\n padding: 0 6px;\n}\n.robot-result-item[data-v-4b182fa8] {\n padding: 10px 12px;\n gap: 12px;\n}\n.robot-search-footer[data-v-4b182fa8] {\n padding: 14px 18px;\n flex-direction: column;\n gap: 8px;\n align-items: stretch;\n}\n.robot-search-footer .robot-footer-actions[data-v-4b182fa8] {\n justify-content: center;\n gap: 14px;\n}\n.robot-search-footer .robot-footer-info[data-v-4b182fa8] {\n text-align: center;\n order: -1;\n}\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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_GlobalSearch-Dq4Wo01K.css","names":[],"sources":["../src/components/C_GlobalSearch/index.vue?vue&type=style&index=0&scoped=0c844dfd&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */[data-v-0c844dfd] .robot-highlight {\n background: linear-gradient(135deg, rgba(255, 193, 7, 0.25), rgba(255, 193, 7, 0.35));\n color: inherit;\n border-radius: 3px;\n padding: 1px 2px;\n font-weight: 600;\n box-shadow: 0 0 0 1px rgba(255, 193, 7, 0.2);\n}\n.dialog-dark[data-v-0c844dfd] .robot-highlight {\n background: linear-gradient(135deg, rgba(255, 193, 7, 0.3), rgba(255, 193, 7, 0.45));\n box-shadow: 0 0 0 1px rgba(255, 193, 7, 0.3);\n}\n.robot-search-trigger[data-v-0c844dfd] {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n padding: 4px 14px;\n background: linear-gradient(145deg, rgba(99, 102, 241, 0.12), rgba(139, 92, 246, 0.08));\n backdrop-filter: blur(20px);\n border: 1px solid rgba(99, 102, 241, 0.2);\n border-radius: 14px;\n font-size: 13px;\n color: #4f46e5;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n min-width: 160px;\n position: relative;\n overflow: hidden;\n}\n.robot-search-trigger[data-v-0c844dfd]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n background: linear-gradient(90deg, transparent, rgba(99, 102, 241, 0.15), transparent);\n transition: left 0.5s ease;\n}\n.robot-search-trigger .robot-trigger-icon[data-v-0c844dfd] {\n font-size: 16px;\n opacity: 0.9;\n flex-shrink: 0;\n transition: all 0.3s ease;\n}\n.robot-search-trigger .robot-trigger-text[data-v-0c844dfd] {\n flex: 1;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n.robot-search-trigger .robot-trigger-shortcut[data-v-0c844dfd] {\n font-size: 11px;\n opacity: 0.9;\n font-family: ui-monospace, \"SF Mono\", Monaco, \"Cascadia Code\", \"Roboto Mono\", Consolas, \"Courier New\", monospace;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(139, 92, 246, 0.12));\n padding: 2px 6px;\n border-radius: 4px;\n border: 1px solid rgba(99, 102, 241, 0.25);\n margin-left: auto;\n color: #3730a3;\n transition: all 0.3s ease;\n}\n.robot-search-trigger[data-v-0c844dfd]:hover {\n background: linear-gradient(145deg, rgba(99, 102, 241, 0.18), rgba(139, 92, 246, 0.12));\n border-color: rgba(99, 102, 241, 0.3);\n color: #3730a3;\n transform: translateY(-1px);\n}\n.robot-search-trigger[data-v-0c844dfd]:hover::before {\n left: 100%;\n}\n.robot-search-trigger:hover .robot-trigger-icon[data-v-0c844dfd] {\n opacity: 1;\n transform: scale(1.05);\n}\n.robot-search-trigger:hover .robot-trigger-shortcut[data-v-0c844dfd] {\n opacity: 1;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.22), rgba(139, 92, 246, 0.18));\n border-color: rgba(99, 102, 241, 0.35);\n color: #312e81;\n transform: scale(1.05);\n}\n.robot-search-trigger[data-v-0c844dfd]:active {\n transform: translateY(0) scale(0.98);\n transition: all 0.1s ease;\n}\n.robot-search-trigger.trigger-dark[data-v-0c844dfd] {\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));\n border-color: rgba(255, 255, 255, 0.12);\n color: #d1d5db;\n}\n.robot-search-trigger.trigger-dark[data-v-0c844dfd]::before {\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);\n}\n.robot-search-trigger.trigger-dark .robot-trigger-shortcut[data-v-0c844dfd] {\n background: rgba(255, 255, 255, 0.1);\n border-color: rgba(255, 255, 255, 0.15);\n color: #b4b8c0;\n}\n.robot-search-trigger.trigger-dark[data-v-0c844dfd]:hover {\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));\n border-color: rgba(255, 255, 255, 0.18);\n color: #e5e7eb;\n}\n.robot-search-trigger.trigger-dark:hover .robot-trigger-shortcut[data-v-0c844dfd] {\n background: rgba(255, 255, 255, 0.15);\n border-color: rgba(255, 255, 255, 0.25);\n color: #d1d5db;\n}\n.robot-dialog-overlay[data-v-0c844dfd] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(135deg, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.4));\n backdrop-filter: blur(12px);\n z-index: 9999;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding: 80px 16px 16px;\n overflow-y: auto;\n}\n.robot-dialog-container[data-v-0c844dfd] {\n width: 100%;\n max-width: 580px;\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.92));\n backdrop-filter: blur(24px);\n border-radius: 16px;\n border: 1px solid rgba(255, 255, 255, 0.4);\n box-shadow: 0 24px 32px -8px rgba(0, 0, 0, 0.12), 0 16px 24px -8px rgba(0, 0, 0, 0.08), 0 8px 16px -4px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(255, 255, 255, 0.1);\n overflow: hidden;\n margin: 0 auto;\n position: relative;\n}\n.robot-dialog-container[data-v-0c844dfd]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);\n}\n.robot-dialog-container.dialog-dark[data-v-0c844dfd] {\n background: linear-gradient(145deg, rgba(24, 24, 27, 0.98), rgba(18, 18, 20, 0.95));\n backdrop-filter: blur(32px);\n border-color: rgba(255, 255, 255, 0.12);\n box-shadow: 0 24px 32px -8px rgba(0, 0, 0, 0.4), 0 16px 24px -8px rgba(0, 0, 0, 0.3), 0 8px 16px -4px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05);\n}\n.robot-dialog-container.dialog-dark[data-v-0c844dfd]::before {\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);\n}\n.robot-search-header[data-v-0c844dfd] {\n display: flex;\n align-items: center;\n padding: 20px 24px;\n gap: 14px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.06);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2));\n}\n.robot-search-header .robot-search-icon[data-v-0c844dfd] {\n color: #6b7280;\n font-size: 20px;\n flex-shrink: 0;\n opacity: 0.8;\n}\n.robot-search-header .robot-search-input[data-v-0c844dfd] {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font-size: 16px;\n color: #1f2937;\n line-height: 1.6;\n font-weight: 400;\n}\n.robot-search-header .robot-search-input[data-v-0c844dfd]::placeholder {\n color: #9ca3af;\n font-weight: 400;\n}\n.robot-search-header .robot-close-btn[data-v-0c844dfd] {\n padding: 8px;\n border: none;\n background: rgba(0, 0, 0, 0.04);\n border-radius: 8px;\n color: #6b7280;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n backdrop-filter: blur(8px);\n}\n.robot-search-header .robot-close-btn[data-v-0c844dfd]:hover {\n background: rgba(0, 0, 0, 0.08);\n color: #374151;\n transform: scale(1.05);\n}\n.robot-search-header .robot-close-btn[data-v-0c844dfd]:active {\n transform: scale(0.95);\n}\n.dialog-dark .robot-search-header[data-v-0c844dfd] {\n border-bottom-color: rgba(255, 255, 255, 0.08);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));\n}\n.dialog-dark .robot-search-header .robot-search-icon[data-v-0c844dfd],\n.dialog-dark .robot-search-header .robot-close-btn[data-v-0c844dfd] {\n color: #9ca3af;\n}\n.dialog-dark .robot-search-header .robot-close-btn[data-v-0c844dfd] {\n background: rgba(255, 255, 255, 0.06);\n}\n.dialog-dark .robot-search-header .robot-close-btn[data-v-0c844dfd]:hover {\n color: #d1d5db;\n background: rgba(255, 255, 255, 0.12);\n}\n.dialog-dark .robot-search-header .robot-search-input[data-v-0c844dfd] {\n color: #f9fafb;\n}\n.dialog-dark .robot-search-header .robot-search-input[data-v-0c844dfd]::placeholder {\n color: #6b7280;\n}\n.robot-search-content[data-v-0c844dfd] {\n max-height: 420px;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n.robot-search-content[data-v-0c844dfd]::-webkit-scrollbar {\n width: 6px;\n}\n.robot-search-content[data-v-0c844dfd]::-webkit-scrollbar-track {\n background: transparent;\n}\n.robot-search-content[data-v-0c844dfd]::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.1);\n border-radius: 3px;\n}\n.robot-search-content[data-v-0c844dfd]::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.15);\n}\n.dialog-dark .robot-search-content[data-v-0c844dfd]::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.1);\n}\n.dialog-dark .robot-search-content[data-v-0c844dfd]::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.15);\n}\n.robot-empty-state[data-v-0c844dfd] {\n padding: 40px 24px;\n text-align: center;\n}\n.robot-empty-state .robot-empty-icon[data-v-0c844dfd] {\n font-size: 36px;\n color: #d1d5db;\n margin-bottom: 16px;\n opacity: 0.8;\n}\n.robot-empty-state p[data-v-0c844dfd] {\n margin: 0;\n font-size: 15px;\n color: #6b7280;\n font-weight: 400;\n line-height: 1.5;\n}\n.dialog-dark .robot-empty-state .robot-empty-icon[data-v-0c844dfd] {\n color: #6b7280;\n}\n.dialog-dark .robot-empty-state p[data-v-0c844dfd] {\n color: #9ca3af;\n}\n.robot-search-results[data-v-0c844dfd] {\n padding: 12px 0 8px;\n}\n.robot-result-group[data-v-0c844dfd]:not(:last-child) {\n margin-bottom: 12px;\n}\n.robot-group-title[data-v-0c844dfd] {\n padding: 16px 24px 10px;\n font-size: 12px;\n font-weight: 700;\n color: #6b7280;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.02), transparent);\n}\n.robot-group-title .robot-group-icon[data-v-0c844dfd] {\n font-size: 14px;\n opacity: 0.8;\n}\n.robot-group-title .robot-group-count[data-v-0c844dfd] {\n margin-left: auto;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(99, 102, 241, 0.05));\n color: #6366f1;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n border: 1px solid rgba(99, 102, 241, 0.15);\n box-shadow: 0 1px 2px rgba(99, 102, 241, 0.1);\n}\n.robot-group-title .robot-clear-history[data-v-0c844dfd] {\n padding: 4px;\n margin-left: 8px;\n background: rgba(239, 68, 68, 0.1);\n border: 1px solid rgba(239, 68, 68, 0.2);\n border-radius: 6px;\n color: #ef4444;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n width: 24px;\n height: 24px;\n}\n.robot-group-title .robot-clear-history div[data-v-0c844dfd] {\n width: 12px;\n height: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.robot-group-title .robot-clear-history[data-v-0c844dfd]:hover {\n background: rgba(239, 68, 68, 0.15);\n border-color: rgba(239, 68, 68, 0.3);\n color: #dc2626;\n transform: scale(1.05);\n}\n.robot-group-title .robot-clear-history[data-v-0c844dfd]:active {\n transform: scale(0.95);\n}\n.dialog-dark .robot-group-title[data-v-0c844dfd] {\n color: #9ca3af;\n background: linear-gradient(90deg, rgba(255, 255, 255, 0.03), transparent);\n}\n.dialog-dark .robot-group-title .robot-group-count[data-v-0c844dfd] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(99, 102, 241, 0.08));\n color: #a5b4fc;\n border-color: rgba(99, 102, 241, 0.2);\n}\n.robot-group-items[data-v-0c844dfd] {\n padding: 0 12px;\n}\n.robot-result-item[data-v-0c844dfd] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 12px 14px;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n margin: 2px 0;\n}\n.robot-result-item[data-v-0c844dfd]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(135deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.01));\n border-radius: 10px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.robot-result-item[data-v-0c844dfd]:hover, .robot-result-item.robot-result-item-selected[data-v-0c844dfd] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.06), rgba(99, 102, 241, 0.03));\n transform: translateX(2px);\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.1), 0 1px 3px rgba(0, 0, 0, 0.05);\n border: 1px solid rgba(99, 102, 241, 0.1);\n}\n.robot-result-item[data-v-0c844dfd]:hover::before, .robot-result-item.robot-result-item-selected[data-v-0c844dfd]::before {\n opacity: 1;\n}\n.robot-result-item:hover .robot-item-icon[data-v-0c844dfd], .robot-result-item.robot-result-item-selected .robot-item-icon[data-v-0c844dfd] {\n transform: scale(1.05);\n color: #6366f1;\n}\n.robot-result-item:hover .robot-item-label[data-v-0c844dfd], .robot-result-item.robot-result-item-selected .robot-item-label[data-v-0c844dfd] {\n color: #4f46e5;\n}\n.robot-result-item:hover.robot-history-item .robot-history-delete[data-v-0c844dfd], .robot-result-item.robot-result-item-selected.robot-history-item .robot-history-delete[data-v-0c844dfd] {\n opacity: 1;\n transform: scale(1);\n}\n.robot-result-item .robot-item-icon[data-v-0c844dfd] {\n font-size: 18px;\n color: #6b7280;\n flex-shrink: 0;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n border-radius: 6px;\n background: rgba(0, 0, 0, 0.02);\n}\n.robot-result-item .robot-item-icon.robot-default-icon[data-v-0c844dfd] {\n opacity: 0.6;\n background: rgba(0, 0, 0, 0.04);\n}\n.robot-result-item .robot-item-content[data-v-0c844dfd] {\n flex: 1;\n min-width: 0;\n}\n.robot-result-item .robot-item-content .robot-item-label[data-v-0c844dfd] {\n font-size: 14px;\n font-weight: 600;\n color: #1f2937;\n line-height: 1.4;\n transition: color 0.2s ease;\n margin-bottom: 1px;\n}\n.robot-result-item .robot-item-content .robot-item-desc[data-v-0c844dfd] {\n font-size: 12px;\n color: #6b7280;\n line-height: 1.3;\n opacity: 0.8;\n font-weight: 400;\n}\n.robot-result-item .robot-item-badge[data-v-0c844dfd] {\n font-size: 10px;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.12), rgba(99, 102, 241, 0.08));\n color: #6366f1;\n padding: 3px 8px;\n border-radius: 12px;\n font-weight: 600;\n min-width: 22px;\n text-align: center;\n border: 1px solid rgba(99, 102, 241, 0.15);\n box-shadow: 0 1px 2px rgba(99, 102, 241, 0.1);\n transition: all 0.2s ease;\n}\n.robot-result-item .robot-history-delete[data-v-0c844dfd] {\n padding: 4px;\n background: rgba(239, 68, 68, 0.08);\n border: 1px solid rgba(239, 68, 68, 0.15);\n border-radius: 6px;\n color: #ef4444;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n opacity: 0;\n transform: scale(0.8);\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n}\n.robot-result-item .robot-history-delete[data-v-0c844dfd]:hover {\n background: rgba(239, 68, 68, 0.15);\n border-color: rgba(239, 68, 68, 0.25);\n color: #dc2626;\n transform: scale(1.05);\n}\n.robot-result-item .robot-history-delete[data-v-0c844dfd]:active {\n transform: scale(0.9);\n}\n.dialog-dark .robot-result-item[data-v-0c844dfd]:hover, .dialog-dark .robot-result-item.robot-result-item-selected[data-v-0c844dfd] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.12), rgba(99, 102, 241, 0.06));\n border-color: rgba(99, 102, 241, 0.15);\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.15), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.dialog-dark .robot-result-item:hover .robot-item-icon[data-v-0c844dfd], .dialog-dark .robot-result-item.robot-result-item-selected .robot-item-icon[data-v-0c844dfd] {\n color: #a5b4fc;\n background: rgba(255, 255, 255, 0.08);\n}\n.dialog-dark .robot-result-item:hover .robot-item-label[data-v-0c844dfd], .dialog-dark .robot-result-item.robot-result-item-selected .robot-item-label[data-v-0c844dfd] {\n color: #c7d2fe;\n}\n.dialog-dark .robot-result-item .robot-item-icon[data-v-0c844dfd] {\n color: #9ca3af;\n background: rgba(255, 255, 255, 0.04);\n}\n.dialog-dark .robot-result-item .robot-item-icon.robot-default-icon[data-v-0c844dfd] {\n background: rgba(255, 255, 255, 0.06);\n}\n.dialog-dark .robot-result-item .robot-item-content .robot-item-label[data-v-0c844dfd] {\n color: #f9fafb;\n}\n.dialog-dark .robot-result-item .robot-item-content .robot-item-desc[data-v-0c844dfd] {\n color: #9ca3af;\n}\n.dialog-dark .robot-result-item .robot-item-badge[data-v-0c844dfd] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(99, 102, 241, 0.12));\n color: #a5b4fc;\n border-color: rgba(99, 102, 241, 0.25);\n}\n.robot-search-footer[data-v-0c844dfd] {\n padding: 16px 24px;\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.01));\n display: flex;\n justify-content: space-between;\n align-items: center;\n backdrop-filter: blur(8px);\n}\n.robot-search-footer .robot-footer-info[data-v-0c844dfd] {\n font-size: 11px;\n color: #9ca3af;\n font-weight: 500;\n}\n.dialog-dark .robot-search-footer[data-v-0c844dfd] {\n border-top-color: rgba(255, 255, 255, 0.08);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));\n}\n.dialog-dark .robot-search-footer .robot-footer-info[data-v-0c844dfd] {\n color: #6b7280;\n}\n.robot-footer-actions[data-v-0c844dfd] {\n display: flex;\n gap: 18px;\n}\n.robot-footer-actions .robot-action-item[data-v-0c844dfd] {\n display: flex;\n align-items: center;\n gap: 7px;\n font-size: 12px;\n color: #6b7280;\n font-weight: 500;\n}\n.robot-footer-actions .robot-action-item kbd[data-v-0c844dfd] {\n padding: 3px 8px;\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.7));\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-radius: 5px;\n font-family: ui-monospace, \"SF Mono\", Monaco, \"Cascadia Code\", \"Roboto Mono\", Consolas, \"Courier New\", monospace;\n font-size: 10px;\n line-height: 1;\n color: #4b5563;\n min-width: 22px;\n text-align: center;\n font-weight: 600;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.8);\n}\n.dialog-dark .robot-footer-actions .robot-action-item kbd[data-v-0c844dfd] {\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.08));\n border-color: rgba(255, 255, 255, 0.18);\n color: #d1d5db;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n.robot-footer-actions .robot-action-item span[data-v-0c844dfd] {\n font-size: 11px;\n font-weight: 500;\n}\n.dialog-dark .robot-footer-actions .robot-action-item[data-v-0c844dfd] {\n color: #9ca3af;\n}\n.robot-dialog-enter-active[data-v-0c844dfd],\n.robot-dialog-leave-active[data-v-0c844dfd] {\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.robot-dialog-enter-from[data-v-0c844dfd],\n.robot-dialog-leave-to[data-v-0c844dfd] {\n opacity: 0;\n}\n.robot-dialog-enter-from .robot-dialog-container[data-v-0c844dfd],\n.robot-dialog-leave-to .robot-dialog-container[data-v-0c844dfd] {\n transform: scale(0.92) translateY(-40px);\n opacity: 0;\n}\n.robot-dialog-enter-to[data-v-0c844dfd] {\n opacity: 1;\n}\n.robot-dialog-enter-to .robot-dialog-container[data-v-0c844dfd] {\n transform: scale(1) translateY(0);\n opacity: 1;\n}\n@media (max-width: 640px) {\n.robot-dialog-overlay[data-v-0c844dfd] {\n padding: 60px 12px 12px;\n}\n.robot-dialog-container[data-v-0c844dfd] {\n border-radius: 12px;\n}\n.robot-search-header[data-v-0c844dfd] {\n padding: 16px 18px;\n}\n.robot-group-title[data-v-0c844dfd] {\n padding: 14px 18px 8px;\n}\n.robot-group-items[data-v-0c844dfd] {\n padding: 0 6px;\n}\n.robot-result-item[data-v-0c844dfd] {\n padding: 10px 12px;\n gap: 12px;\n}\n.robot-search-footer[data-v-0c844dfd] {\n padding: 14px 18px;\n flex-direction: column;\n gap: 8px;\n align-items: stretch;\n}\n.robot-search-footer .robot-footer-actions[data-v-0c844dfd] {\n justify-content: center;\n gap: 14px;\n}\n.robot-search-footer .robot-footer-info[data-v-0c844dfd] {\n text-align: center;\n order: -1;\n}\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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"C_GlobalSearch-DoPjldFm.css","names":[],"sources":["../src/components/C_GlobalSearch/index.vue?vue&type=style&index=0&scoped=4b182fa8&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */[data-v-4b182fa8] .robot-highlight {\n background: linear-gradient(135deg, rgba(255, 193, 7, 0.25), rgba(255, 193, 7, 0.35));\n color: inherit;\n border-radius: 3px;\n padding: 1px 2px;\n font-weight: 600;\n box-shadow: 0 0 0 1px rgba(255, 193, 7, 0.2);\n}\n.dialog-dark[data-v-4b182fa8] .robot-highlight {\n background: linear-gradient(135deg, rgba(255, 193, 7, 0.3), rgba(255, 193, 7, 0.45));\n box-shadow: 0 0 0 1px rgba(255, 193, 7, 0.3);\n}\n.robot-search-trigger[data-v-4b182fa8] {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n padding: 4px 14px;\n background: linear-gradient(145deg, rgba(99, 102, 241, 0.12), rgba(139, 92, 246, 0.08));\n backdrop-filter: blur(20px);\n border: 1px solid rgba(99, 102, 241, 0.2);\n border-radius: 14px;\n font-size: 13px;\n color: #4f46e5;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n min-width: 160px;\n position: relative;\n overflow: hidden;\n}\n.robot-search-trigger[data-v-4b182fa8]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n background: linear-gradient(90deg, transparent, rgba(99, 102, 241, 0.15), transparent);\n transition: left 0.5s ease;\n}\n.robot-search-trigger .robot-trigger-icon[data-v-4b182fa8] {\n font-size: 16px;\n opacity: 0.9;\n flex-shrink: 0;\n transition: all 0.3s ease;\n}\n.robot-search-trigger .robot-trigger-text[data-v-4b182fa8] {\n flex: 1;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n.robot-search-trigger .robot-trigger-shortcut[data-v-4b182fa8] {\n font-size: 11px;\n opacity: 0.9;\n font-family: ui-monospace, \"SF Mono\", Monaco, \"Cascadia Code\", \"Roboto Mono\", Consolas, \"Courier New\", monospace;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(139, 92, 246, 0.12));\n padding: 2px 6px;\n border-radius: 4px;\n border: 1px solid rgba(99, 102, 241, 0.25);\n margin-left: auto;\n color: #3730a3;\n transition: all 0.3s ease;\n}\n.robot-search-trigger[data-v-4b182fa8]:hover {\n background: linear-gradient(145deg, rgba(99, 102, 241, 0.18), rgba(139, 92, 246, 0.12));\n border-color: rgba(99, 102, 241, 0.3);\n color: #3730a3;\n transform: translateY(-1px);\n}\n.robot-search-trigger[data-v-4b182fa8]:hover::before {\n left: 100%;\n}\n.robot-search-trigger:hover .robot-trigger-icon[data-v-4b182fa8] {\n opacity: 1;\n transform: scale(1.05);\n}\n.robot-search-trigger:hover .robot-trigger-shortcut[data-v-4b182fa8] {\n opacity: 1;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.22), rgba(139, 92, 246, 0.18));\n border-color: rgba(99, 102, 241, 0.35);\n color: #312e81;\n transform: scale(1.05);\n}\n.robot-search-trigger[data-v-4b182fa8]:active {\n transform: translateY(0) scale(0.98);\n transition: all 0.1s ease;\n}\n.robot-search-trigger.trigger-dark[data-v-4b182fa8] {\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));\n border-color: rgba(255, 255, 255, 0.12);\n color: #d1d5db;\n}\n.robot-search-trigger.trigger-dark[data-v-4b182fa8]::before {\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);\n}\n.robot-search-trigger.trigger-dark .robot-trigger-shortcut[data-v-4b182fa8] {\n background: rgba(255, 255, 255, 0.1);\n border-color: rgba(255, 255, 255, 0.15);\n color: #b4b8c0;\n}\n.robot-search-trigger.trigger-dark[data-v-4b182fa8]:hover {\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));\n border-color: rgba(255, 255, 255, 0.18);\n color: #e5e7eb;\n}\n.robot-search-trigger.trigger-dark:hover .robot-trigger-shortcut[data-v-4b182fa8] {\n background: rgba(255, 255, 255, 0.15);\n border-color: rgba(255, 255, 255, 0.25);\n color: #d1d5db;\n}\n.robot-dialog-overlay[data-v-4b182fa8] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(135deg, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.4));\n backdrop-filter: blur(12px);\n z-index: 9999;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding: 80px 16px 16px;\n overflow-y: auto;\n}\n.robot-dialog-container[data-v-4b182fa8] {\n width: 100%;\n max-width: 580px;\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.92));\n backdrop-filter: blur(24px);\n border-radius: 16px;\n border: 1px solid rgba(255, 255, 255, 0.4);\n box-shadow: 0 24px 32px -8px rgba(0, 0, 0, 0.12), 0 16px 24px -8px rgba(0, 0, 0, 0.08), 0 8px 16px -4px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(255, 255, 255, 0.1);\n overflow: hidden;\n margin: 0 auto;\n position: relative;\n}\n.robot-dialog-container[data-v-4b182fa8]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);\n}\n.robot-dialog-container.dialog-dark[data-v-4b182fa8] {\n background: linear-gradient(145deg, rgba(24, 24, 27, 0.98), rgba(18, 18, 20, 0.95));\n backdrop-filter: blur(32px);\n border-color: rgba(255, 255, 255, 0.12);\n box-shadow: 0 24px 32px -8px rgba(0, 0, 0, 0.4), 0 16px 24px -8px rgba(0, 0, 0, 0.3), 0 8px 16px -4px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05);\n}\n.robot-dialog-container.dialog-dark[data-v-4b182fa8]::before {\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);\n}\n.robot-search-header[data-v-4b182fa8] {\n display: flex;\n align-items: center;\n padding: 20px 24px;\n gap: 14px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.06);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2));\n}\n.robot-search-header .robot-search-icon[data-v-4b182fa8] {\n color: #6b7280;\n font-size: 20px;\n flex-shrink: 0;\n opacity: 0.8;\n}\n.robot-search-header .robot-search-input[data-v-4b182fa8] {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font-size: 16px;\n color: #1f2937;\n line-height: 1.6;\n font-weight: 400;\n}\n.robot-search-header .robot-search-input[data-v-4b182fa8]::placeholder {\n color: #9ca3af;\n font-weight: 400;\n}\n.robot-search-header .robot-close-btn[data-v-4b182fa8] {\n padding: 8px;\n border: none;\n background: rgba(0, 0, 0, 0.04);\n border-radius: 8px;\n color: #6b7280;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n backdrop-filter: blur(8px);\n}\n.robot-search-header .robot-close-btn[data-v-4b182fa8]:hover {\n background: rgba(0, 0, 0, 0.08);\n color: #374151;\n transform: scale(1.05);\n}\n.robot-search-header .robot-close-btn[data-v-4b182fa8]:active {\n transform: scale(0.95);\n}\n.dialog-dark .robot-search-header[data-v-4b182fa8] {\n border-bottom-color: rgba(255, 255, 255, 0.08);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));\n}\n.dialog-dark .robot-search-header .robot-search-icon[data-v-4b182fa8],\n.dialog-dark .robot-search-header .robot-close-btn[data-v-4b182fa8] {\n color: #9ca3af;\n}\n.dialog-dark .robot-search-header .robot-close-btn[data-v-4b182fa8] {\n background: rgba(255, 255, 255, 0.06);\n}\n.dialog-dark .robot-search-header .robot-close-btn[data-v-4b182fa8]:hover {\n color: #d1d5db;\n background: rgba(255, 255, 255, 0.12);\n}\n.dialog-dark .robot-search-header .robot-search-input[data-v-4b182fa8] {\n color: #f9fafb;\n}\n.dialog-dark .robot-search-header .robot-search-input[data-v-4b182fa8]::placeholder {\n color: #6b7280;\n}\n.robot-search-content[data-v-4b182fa8] {\n max-height: 420px;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n.robot-search-content[data-v-4b182fa8]::-webkit-scrollbar {\n width: 6px;\n}\n.robot-search-content[data-v-4b182fa8]::-webkit-scrollbar-track {\n background: transparent;\n}\n.robot-search-content[data-v-4b182fa8]::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.1);\n border-radius: 3px;\n}\n.robot-search-content[data-v-4b182fa8]::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.15);\n}\n.dialog-dark .robot-search-content[data-v-4b182fa8]::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.1);\n}\n.dialog-dark .robot-search-content[data-v-4b182fa8]::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.15);\n}\n.robot-empty-state[data-v-4b182fa8] {\n padding: 40px 24px;\n text-align: center;\n}\n.robot-empty-state .robot-empty-icon[data-v-4b182fa8] {\n font-size: 36px;\n color: #d1d5db;\n margin-bottom: 16px;\n opacity: 0.8;\n}\n.robot-empty-state p[data-v-4b182fa8] {\n margin: 0;\n font-size: 15px;\n color: #6b7280;\n font-weight: 400;\n line-height: 1.5;\n}\n.dialog-dark .robot-empty-state .robot-empty-icon[data-v-4b182fa8] {\n color: #6b7280;\n}\n.dialog-dark .robot-empty-state p[data-v-4b182fa8] {\n color: #9ca3af;\n}\n.robot-search-results[data-v-4b182fa8] {\n padding: 12px 0 8px;\n}\n.robot-result-group[data-v-4b182fa8]:not(:last-child) {\n margin-bottom: 12px;\n}\n.robot-group-title[data-v-4b182fa8] {\n padding: 16px 24px 10px;\n font-size: 12px;\n font-weight: 700;\n color: #6b7280;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.02), transparent);\n}\n.robot-group-title .robot-group-icon[data-v-4b182fa8] {\n font-size: 14px;\n opacity: 0.8;\n}\n.robot-group-title .robot-group-count[data-v-4b182fa8] {\n margin-left: auto;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(99, 102, 241, 0.05));\n color: #6366f1;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n border: 1px solid rgba(99, 102, 241, 0.15);\n box-shadow: 0 1px 2px rgba(99, 102, 241, 0.1);\n}\n.robot-group-title .robot-clear-history[data-v-4b182fa8] {\n padding: 4px;\n margin-left: 8px;\n background: rgba(239, 68, 68, 0.1);\n border: 1px solid rgba(239, 68, 68, 0.2);\n border-radius: 6px;\n color: #ef4444;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n width: 24px;\n height: 24px;\n}\n.robot-group-title .robot-clear-history div[data-v-4b182fa8] {\n width: 12px;\n height: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.robot-group-title .robot-clear-history[data-v-4b182fa8]:hover {\n background: rgba(239, 68, 68, 0.15);\n border-color: rgba(239, 68, 68, 0.3);\n color: #dc2626;\n transform: scale(1.05);\n}\n.robot-group-title .robot-clear-history[data-v-4b182fa8]:active {\n transform: scale(0.95);\n}\n.dialog-dark .robot-group-title[data-v-4b182fa8] {\n color: #9ca3af;\n background: linear-gradient(90deg, rgba(255, 255, 255, 0.03), transparent);\n}\n.dialog-dark .robot-group-title .robot-group-count[data-v-4b182fa8] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(99, 102, 241, 0.08));\n color: #a5b4fc;\n border-color: rgba(99, 102, 241, 0.2);\n}\n.robot-group-items[data-v-4b182fa8] {\n padding: 0 12px;\n}\n.robot-result-item[data-v-4b182fa8] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 12px 14px;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n margin: 2px 0;\n}\n.robot-result-item[data-v-4b182fa8]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(135deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.01));\n border-radius: 10px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.robot-result-item[data-v-4b182fa8]:hover, .robot-result-item.robot-result-item-selected[data-v-4b182fa8] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.06), rgba(99, 102, 241, 0.03));\n transform: translateX(2px);\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.1), 0 1px 3px rgba(0, 0, 0, 0.05);\n border: 1px solid rgba(99, 102, 241, 0.1);\n}\n.robot-result-item[data-v-4b182fa8]:hover::before, .robot-result-item.robot-result-item-selected[data-v-4b182fa8]::before {\n opacity: 1;\n}\n.robot-result-item:hover .robot-item-icon[data-v-4b182fa8], .robot-result-item.robot-result-item-selected .robot-item-icon[data-v-4b182fa8] {\n transform: scale(1.05);\n color: #6366f1;\n}\n.robot-result-item:hover .robot-item-label[data-v-4b182fa8], .robot-result-item.robot-result-item-selected .robot-item-label[data-v-4b182fa8] {\n color: #4f46e5;\n}\n.robot-result-item:hover.robot-history-item .robot-history-delete[data-v-4b182fa8], .robot-result-item.robot-result-item-selected.robot-history-item .robot-history-delete[data-v-4b182fa8] {\n opacity: 1;\n transform: scale(1);\n}\n.robot-result-item .robot-item-icon[data-v-4b182fa8] {\n font-size: 18px;\n color: #6b7280;\n flex-shrink: 0;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n border-radius: 6px;\n background: rgba(0, 0, 0, 0.02);\n}\n.robot-result-item .robot-item-icon.robot-default-icon[data-v-4b182fa8] {\n opacity: 0.6;\n background: rgba(0, 0, 0, 0.04);\n}\n.robot-result-item .robot-item-content[data-v-4b182fa8] {\n flex: 1;\n min-width: 0;\n}\n.robot-result-item .robot-item-content .robot-item-label[data-v-4b182fa8] {\n font-size: 14px;\n font-weight: 600;\n color: #1f2937;\n line-height: 1.4;\n transition: color 0.2s ease;\n margin-bottom: 1px;\n}\n.robot-result-item .robot-item-content .robot-item-desc[data-v-4b182fa8] {\n font-size: 12px;\n color: #6b7280;\n line-height: 1.3;\n opacity: 0.8;\n font-weight: 400;\n}\n.robot-result-item .robot-item-badge[data-v-4b182fa8] {\n font-size: 10px;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.12), rgba(99, 102, 241, 0.08));\n color: #6366f1;\n padding: 3px 8px;\n border-radius: 12px;\n font-weight: 600;\n min-width: 22px;\n text-align: center;\n border: 1px solid rgba(99, 102, 241, 0.15);\n box-shadow: 0 1px 2px rgba(99, 102, 241, 0.1);\n transition: all 0.2s ease;\n}\n.robot-result-item .robot-history-delete[data-v-4b182fa8] {\n padding: 4px;\n background: rgba(239, 68, 68, 0.08);\n border: 1px solid rgba(239, 68, 68, 0.15);\n border-radius: 6px;\n color: #ef4444;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n opacity: 0;\n transform: scale(0.8);\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n}\n.robot-result-item .robot-history-delete[data-v-4b182fa8]:hover {\n background: rgba(239, 68, 68, 0.15);\n border-color: rgba(239, 68, 68, 0.25);\n color: #dc2626;\n transform: scale(1.05);\n}\n.robot-result-item .robot-history-delete[data-v-4b182fa8]:active {\n transform: scale(0.9);\n}\n.dialog-dark .robot-result-item[data-v-4b182fa8]:hover, .dialog-dark .robot-result-item.robot-result-item-selected[data-v-4b182fa8] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.12), rgba(99, 102, 241, 0.06));\n border-color: rgba(99, 102, 241, 0.15);\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.15), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.dialog-dark .robot-result-item:hover .robot-item-icon[data-v-4b182fa8], .dialog-dark .robot-result-item.robot-result-item-selected .robot-item-icon[data-v-4b182fa8] {\n color: #a5b4fc;\n background: rgba(255, 255, 255, 0.08);\n}\n.dialog-dark .robot-result-item:hover .robot-item-label[data-v-4b182fa8], .dialog-dark .robot-result-item.robot-result-item-selected .robot-item-label[data-v-4b182fa8] {\n color: #c7d2fe;\n}\n.dialog-dark .robot-result-item .robot-item-icon[data-v-4b182fa8] {\n color: #9ca3af;\n background: rgba(255, 255, 255, 0.04);\n}\n.dialog-dark .robot-result-item .robot-item-icon.robot-default-icon[data-v-4b182fa8] {\n background: rgba(255, 255, 255, 0.06);\n}\n.dialog-dark .robot-result-item .robot-item-content .robot-item-label[data-v-4b182fa8] {\n color: #f9fafb;\n}\n.dialog-dark .robot-result-item .robot-item-content .robot-item-desc[data-v-4b182fa8] {\n color: #9ca3af;\n}\n.dialog-dark .robot-result-item .robot-item-badge[data-v-4b182fa8] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(99, 102, 241, 0.12));\n color: #a5b4fc;\n border-color: rgba(99, 102, 241, 0.25);\n}\n.robot-search-footer[data-v-4b182fa8] {\n padding: 16px 24px;\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.01));\n display: flex;\n justify-content: space-between;\n align-items: center;\n backdrop-filter: blur(8px);\n}\n.robot-search-footer .robot-footer-info[data-v-4b182fa8] {\n font-size: 11px;\n color: #9ca3af;\n font-weight: 500;\n}\n.dialog-dark .robot-search-footer[data-v-4b182fa8] {\n border-top-color: rgba(255, 255, 255, 0.08);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));\n}\n.dialog-dark .robot-search-footer .robot-footer-info[data-v-4b182fa8] {\n color: #6b7280;\n}\n.robot-footer-actions[data-v-4b182fa8] {\n display: flex;\n gap: 18px;\n}\n.robot-footer-actions .robot-action-item[data-v-4b182fa8] {\n display: flex;\n align-items: center;\n gap: 7px;\n font-size: 12px;\n color: #6b7280;\n font-weight: 500;\n}\n.robot-footer-actions .robot-action-item kbd[data-v-4b182fa8] {\n padding: 3px 8px;\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.7));\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-radius: 5px;\n font-family: ui-monospace, \"SF Mono\", Monaco, \"Cascadia Code\", \"Roboto Mono\", Consolas, \"Courier New\", monospace;\n font-size: 10px;\n line-height: 1;\n color: #4b5563;\n min-width: 22px;\n text-align: center;\n font-weight: 600;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.8);\n}\n.dialog-dark .robot-footer-actions .robot-action-item kbd[data-v-4b182fa8] {\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.08));\n border-color: rgba(255, 255, 255, 0.18);\n color: #d1d5db;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n.robot-footer-actions .robot-action-item span[data-v-4b182fa8] {\n font-size: 11px;\n font-weight: 500;\n}\n.dialog-dark .robot-footer-actions .robot-action-item[data-v-4b182fa8] {\n color: #9ca3af;\n}\n.robot-dialog-enter-active[data-v-4b182fa8],\n.robot-dialog-leave-active[data-v-4b182fa8] {\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.robot-dialog-enter-from[data-v-4b182fa8],\n.robot-dialog-leave-to[data-v-4b182fa8] {\n opacity: 0;\n}\n.robot-dialog-enter-from .robot-dialog-container[data-v-4b182fa8],\n.robot-dialog-leave-to .robot-dialog-container[data-v-4b182fa8] {\n transform: scale(0.92) translateY(-40px);\n opacity: 0;\n}\n.robot-dialog-enter-to[data-v-4b182fa8] {\n opacity: 1;\n}\n.robot-dialog-enter-to .robot-dialog-container[data-v-4b182fa8] {\n transform: scale(1) translateY(0);\n opacity: 1;\n}\n@media (max-width: 640px) {\n.robot-dialog-overlay[data-v-4b182fa8] {\n padding: 60px 12px 12px;\n}\n.robot-dialog-container[data-v-4b182fa8] {\n border-radius: 12px;\n}\n.robot-search-header[data-v-4b182fa8] {\n padding: 16px 18px;\n}\n.robot-group-title[data-v-4b182fa8] {\n padding: 14px 18px 8px;\n}\n.robot-group-items[data-v-4b182fa8] {\n padding: 0 6px;\n}\n.robot-result-item[data-v-4b182fa8] {\n padding: 10px 12px;\n gap: 12px;\n}\n.robot-search-footer[data-v-4b182fa8] {\n padding: 14px 18px;\n flex-direction: column;\n gap: 8px;\n align-items: stretch;\n}\n.robot-search-footer .robot-footer-actions[data-v-4b182fa8] {\n justify-content: center;\n gap: 14px;\n}\n.robot-search-footer .robot-footer-info[data-v-4b182fa8] {\n text-align: center;\n order: -1;\n}\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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_GlobalSearch-RB7J43gu.css","names":[],"sources":["../src/components/C_GlobalSearch/index.vue?vue&type=style&index=0&scoped=0c844dfd&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */[data-v-0c844dfd] .robot-highlight {\n background: linear-gradient(135deg, rgba(255, 193, 7, 0.25), rgba(255, 193, 7, 0.35));\n color: inherit;\n border-radius: 3px;\n padding: 1px 2px;\n font-weight: 600;\n box-shadow: 0 0 0 1px rgba(255, 193, 7, 0.2);\n}\n.dialog-dark[data-v-0c844dfd] .robot-highlight {\n background: linear-gradient(135deg, rgba(255, 193, 7, 0.3), rgba(255, 193, 7, 0.45));\n box-shadow: 0 0 0 1px rgba(255, 193, 7, 0.3);\n}\n.robot-search-trigger[data-v-0c844dfd] {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n padding: 4px 14px;\n background: linear-gradient(145deg, rgba(99, 102, 241, 0.12), rgba(139, 92, 246, 0.08));\n backdrop-filter: blur(20px);\n border: 1px solid rgba(99, 102, 241, 0.2);\n border-radius: 14px;\n font-size: 13px;\n color: #4f46e5;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n min-width: 160px;\n position: relative;\n overflow: hidden;\n}\n.robot-search-trigger[data-v-0c844dfd]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n background: linear-gradient(90deg, transparent, rgba(99, 102, 241, 0.15), transparent);\n transition: left 0.5s ease;\n}\n.robot-search-trigger .robot-trigger-icon[data-v-0c844dfd] {\n font-size: 16px;\n opacity: 0.9;\n flex-shrink: 0;\n transition: all 0.3s ease;\n}\n.robot-search-trigger .robot-trigger-text[data-v-0c844dfd] {\n flex: 1;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n.robot-search-trigger .robot-trigger-shortcut[data-v-0c844dfd] {\n font-size: 11px;\n opacity: 0.9;\n font-family: ui-monospace, \"SF Mono\", Monaco, \"Cascadia Code\", \"Roboto Mono\", Consolas, \"Courier New\", monospace;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(139, 92, 246, 0.12));\n padding: 2px 6px;\n border-radius: 4px;\n border: 1px solid rgba(99, 102, 241, 0.25);\n margin-left: auto;\n color: #3730a3;\n transition: all 0.3s ease;\n}\n.robot-search-trigger[data-v-0c844dfd]:hover {\n background: linear-gradient(145deg, rgba(99, 102, 241, 0.18), rgba(139, 92, 246, 0.12));\n border-color: rgba(99, 102, 241, 0.3);\n color: #3730a3;\n transform: translateY(-1px);\n}\n.robot-search-trigger[data-v-0c844dfd]:hover::before {\n left: 100%;\n}\n.robot-search-trigger:hover .robot-trigger-icon[data-v-0c844dfd] {\n opacity: 1;\n transform: scale(1.05);\n}\n.robot-search-trigger:hover .robot-trigger-shortcut[data-v-0c844dfd] {\n opacity: 1;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.22), rgba(139, 92, 246, 0.18));\n border-color: rgba(99, 102, 241, 0.35);\n color: #312e81;\n transform: scale(1.05);\n}\n.robot-search-trigger[data-v-0c844dfd]:active {\n transform: translateY(0) scale(0.98);\n transition: all 0.1s ease;\n}\n.robot-search-trigger.trigger-dark[data-v-0c844dfd] {\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));\n border-color: rgba(255, 255, 255, 0.12);\n color: #d1d5db;\n}\n.robot-search-trigger.trigger-dark[data-v-0c844dfd]::before {\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);\n}\n.robot-search-trigger.trigger-dark .robot-trigger-shortcut[data-v-0c844dfd] {\n background: rgba(255, 255, 255, 0.1);\n border-color: rgba(255, 255, 255, 0.15);\n color: #b4b8c0;\n}\n.robot-search-trigger.trigger-dark[data-v-0c844dfd]:hover {\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));\n border-color: rgba(255, 255, 255, 0.18);\n color: #e5e7eb;\n}\n.robot-search-trigger.trigger-dark:hover .robot-trigger-shortcut[data-v-0c844dfd] {\n background: rgba(255, 255, 255, 0.15);\n border-color: rgba(255, 255, 255, 0.25);\n color: #d1d5db;\n}\n.robot-dialog-overlay[data-v-0c844dfd] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(135deg, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.4));\n backdrop-filter: blur(12px);\n z-index: 9999;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding: 80px 16px 16px;\n overflow-y: auto;\n}\n.robot-dialog-container[data-v-0c844dfd] {\n width: 100%;\n max-width: 580px;\n background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.92));\n backdrop-filter: blur(24px);\n border-radius: 16px;\n border: 1px solid rgba(255, 255, 255, 0.4);\n box-shadow: 0 24px 32px -8px rgba(0, 0, 0, 0.12), 0 16px 24px -8px rgba(0, 0, 0, 0.08), 0 8px 16px -4px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(255, 255, 255, 0.1);\n overflow: hidden;\n margin: 0 auto;\n position: relative;\n}\n.robot-dialog-container[data-v-0c844dfd]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);\n}\n.robot-dialog-container.dialog-dark[data-v-0c844dfd] {\n background: linear-gradient(145deg, rgba(24, 24, 27, 0.98), rgba(18, 18, 20, 0.95));\n backdrop-filter: blur(32px);\n border-color: rgba(255, 255, 255, 0.12);\n box-shadow: 0 24px 32px -8px rgba(0, 0, 0, 0.4), 0 16px 24px -8px rgba(0, 0, 0, 0.3), 0 8px 16px -4px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05);\n}\n.robot-dialog-container.dialog-dark[data-v-0c844dfd]::before {\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);\n}\n.robot-search-header[data-v-0c844dfd] {\n display: flex;\n align-items: center;\n padding: 20px 24px;\n gap: 14px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.06);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2));\n}\n.robot-search-header .robot-search-icon[data-v-0c844dfd] {\n color: #6b7280;\n font-size: 20px;\n flex-shrink: 0;\n opacity: 0.8;\n}\n.robot-search-header .robot-search-input[data-v-0c844dfd] {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font-size: 16px;\n color: #1f2937;\n line-height: 1.6;\n font-weight: 400;\n}\n.robot-search-header .robot-search-input[data-v-0c844dfd]::placeholder {\n color: #9ca3af;\n font-weight: 400;\n}\n.robot-search-header .robot-close-btn[data-v-0c844dfd] {\n padding: 8px;\n border: none;\n background: rgba(0, 0, 0, 0.04);\n border-radius: 8px;\n color: #6b7280;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n backdrop-filter: blur(8px);\n}\n.robot-search-header .robot-close-btn[data-v-0c844dfd]:hover {\n background: rgba(0, 0, 0, 0.08);\n color: #374151;\n transform: scale(1.05);\n}\n.robot-search-header .robot-close-btn[data-v-0c844dfd]:active {\n transform: scale(0.95);\n}\n.dialog-dark .robot-search-header[data-v-0c844dfd] {\n border-bottom-color: rgba(255, 255, 255, 0.08);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));\n}\n.dialog-dark .robot-search-header .robot-search-icon[data-v-0c844dfd],\n.dialog-dark .robot-search-header .robot-close-btn[data-v-0c844dfd] {\n color: #9ca3af;\n}\n.dialog-dark .robot-search-header .robot-close-btn[data-v-0c844dfd] {\n background: rgba(255, 255, 255, 0.06);\n}\n.dialog-dark .robot-search-header .robot-close-btn[data-v-0c844dfd]:hover {\n color: #d1d5db;\n background: rgba(255, 255, 255, 0.12);\n}\n.dialog-dark .robot-search-header .robot-search-input[data-v-0c844dfd] {\n color: #f9fafb;\n}\n.dialog-dark .robot-search-header .robot-search-input[data-v-0c844dfd]::placeholder {\n color: #6b7280;\n}\n.robot-search-content[data-v-0c844dfd] {\n max-height: 420px;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n.robot-search-content[data-v-0c844dfd]::-webkit-scrollbar {\n width: 6px;\n}\n.robot-search-content[data-v-0c844dfd]::-webkit-scrollbar-track {\n background: transparent;\n}\n.robot-search-content[data-v-0c844dfd]::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.1);\n border-radius: 3px;\n}\n.robot-search-content[data-v-0c844dfd]::-webkit-scrollbar-thumb:hover {\n background: rgba(0, 0, 0, 0.15);\n}\n.dialog-dark .robot-search-content[data-v-0c844dfd]::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.1);\n}\n.dialog-dark .robot-search-content[data-v-0c844dfd]::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.15);\n}\n.robot-empty-state[data-v-0c844dfd] {\n padding: 40px 24px;\n text-align: center;\n}\n.robot-empty-state .robot-empty-icon[data-v-0c844dfd] {\n font-size: 36px;\n color: #d1d5db;\n margin-bottom: 16px;\n opacity: 0.8;\n}\n.robot-empty-state p[data-v-0c844dfd] {\n margin: 0;\n font-size: 15px;\n color: #6b7280;\n font-weight: 400;\n line-height: 1.5;\n}\n.dialog-dark .robot-empty-state .robot-empty-icon[data-v-0c844dfd] {\n color: #6b7280;\n}\n.dialog-dark .robot-empty-state p[data-v-0c844dfd] {\n color: #9ca3af;\n}\n.robot-search-results[data-v-0c844dfd] {\n padding: 12px 0 8px;\n}\n.robot-result-group[data-v-0c844dfd]:not(:last-child) {\n margin-bottom: 12px;\n}\n.robot-group-title[data-v-0c844dfd] {\n padding: 16px 24px 10px;\n font-size: 12px;\n font-weight: 700;\n color: #6b7280;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n margin: 0;\n display: flex;\n align-items: center;\n gap: 8px;\n background: linear-gradient(90deg, rgba(0, 0, 0, 0.02), transparent);\n}\n.robot-group-title .robot-group-icon[data-v-0c844dfd] {\n font-size: 14px;\n opacity: 0.8;\n}\n.robot-group-title .robot-group-count[data-v-0c844dfd] {\n margin-left: auto;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(99, 102, 241, 0.05));\n color: #6366f1;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n border: 1px solid rgba(99, 102, 241, 0.15);\n box-shadow: 0 1px 2px rgba(99, 102, 241, 0.1);\n}\n.robot-group-title .robot-clear-history[data-v-0c844dfd] {\n padding: 4px;\n margin-left: 8px;\n background: rgba(239, 68, 68, 0.1);\n border: 1px solid rgba(239, 68, 68, 0.2);\n border-radius: 6px;\n color: #ef4444;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n width: 24px;\n height: 24px;\n}\n.robot-group-title .robot-clear-history div[data-v-0c844dfd] {\n width: 12px;\n height: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.robot-group-title .robot-clear-history[data-v-0c844dfd]:hover {\n background: rgba(239, 68, 68, 0.15);\n border-color: rgba(239, 68, 68, 0.3);\n color: #dc2626;\n transform: scale(1.05);\n}\n.robot-group-title .robot-clear-history[data-v-0c844dfd]:active {\n transform: scale(0.95);\n}\n.dialog-dark .robot-group-title[data-v-0c844dfd] {\n color: #9ca3af;\n background: linear-gradient(90deg, rgba(255, 255, 255, 0.03), transparent);\n}\n.dialog-dark .robot-group-title .robot-group-count[data-v-0c844dfd] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(99, 102, 241, 0.08));\n color: #a5b4fc;\n border-color: rgba(99, 102, 241, 0.2);\n}\n.robot-group-items[data-v-0c844dfd] {\n padding: 0 12px;\n}\n.robot-result-item[data-v-0c844dfd] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 12px 14px;\n border-radius: 10px;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n margin: 2px 0;\n}\n.robot-result-item[data-v-0c844dfd]::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(135deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.01));\n border-radius: 10px;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.robot-result-item[data-v-0c844dfd]:hover, .robot-result-item.robot-result-item-selected[data-v-0c844dfd] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.06), rgba(99, 102, 241, 0.03));\n transform: translateX(2px);\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.1), 0 1px 3px rgba(0, 0, 0, 0.05);\n border: 1px solid rgba(99, 102, 241, 0.1);\n}\n.robot-result-item[data-v-0c844dfd]:hover::before, .robot-result-item.robot-result-item-selected[data-v-0c844dfd]::before {\n opacity: 1;\n}\n.robot-result-item:hover .robot-item-icon[data-v-0c844dfd], .robot-result-item.robot-result-item-selected .robot-item-icon[data-v-0c844dfd] {\n transform: scale(1.05);\n color: #6366f1;\n}\n.robot-result-item:hover .robot-item-label[data-v-0c844dfd], .robot-result-item.robot-result-item-selected .robot-item-label[data-v-0c844dfd] {\n color: #4f46e5;\n}\n.robot-result-item:hover.robot-history-item .robot-history-delete[data-v-0c844dfd], .robot-result-item.robot-result-item-selected.robot-history-item .robot-history-delete[data-v-0c844dfd] {\n opacity: 1;\n transform: scale(1);\n}\n.robot-result-item .robot-item-icon[data-v-0c844dfd] {\n font-size: 18px;\n color: #6b7280;\n flex-shrink: 0;\n width: 22px;\n height: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n border-radius: 6px;\n background: rgba(0, 0, 0, 0.02);\n}\n.robot-result-item .robot-item-icon.robot-default-icon[data-v-0c844dfd] {\n opacity: 0.6;\n background: rgba(0, 0, 0, 0.04);\n}\n.robot-result-item .robot-item-content[data-v-0c844dfd] {\n flex: 1;\n min-width: 0;\n}\n.robot-result-item .robot-item-content .robot-item-label[data-v-0c844dfd] {\n font-size: 14px;\n font-weight: 600;\n color: #1f2937;\n line-height: 1.4;\n transition: color 0.2s ease;\n margin-bottom: 1px;\n}\n.robot-result-item .robot-item-content .robot-item-desc[data-v-0c844dfd] {\n font-size: 12px;\n color: #6b7280;\n line-height: 1.3;\n opacity: 0.8;\n font-weight: 400;\n}\n.robot-result-item .robot-item-badge[data-v-0c844dfd] {\n font-size: 10px;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.12), rgba(99, 102, 241, 0.08));\n color: #6366f1;\n padding: 3px 8px;\n border-radius: 12px;\n font-weight: 600;\n min-width: 22px;\n text-align: center;\n border: 1px solid rgba(99, 102, 241, 0.15);\n box-shadow: 0 1px 2px rgba(99, 102, 241, 0.1);\n transition: all 0.2s ease;\n}\n.robot-result-item .robot-history-delete[data-v-0c844dfd] {\n padding: 4px;\n background: rgba(239, 68, 68, 0.08);\n border: 1px solid rgba(239, 68, 68, 0.15);\n border-radius: 6px;\n color: #ef4444;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n opacity: 0;\n transform: scale(0.8);\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n}\n.robot-result-item .robot-history-delete[data-v-0c844dfd]:hover {\n background: rgba(239, 68, 68, 0.15);\n border-color: rgba(239, 68, 68, 0.25);\n color: #dc2626;\n transform: scale(1.05);\n}\n.robot-result-item .robot-history-delete[data-v-0c844dfd]:active {\n transform: scale(0.9);\n}\n.dialog-dark .robot-result-item[data-v-0c844dfd]:hover, .dialog-dark .robot-result-item.robot-result-item-selected[data-v-0c844dfd] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.12), rgba(99, 102, 241, 0.06));\n border-color: rgba(99, 102, 241, 0.15);\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.15), 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.dialog-dark .robot-result-item:hover .robot-item-icon[data-v-0c844dfd], .dialog-dark .robot-result-item.robot-result-item-selected .robot-item-icon[data-v-0c844dfd] {\n color: #a5b4fc;\n background: rgba(255, 255, 255, 0.08);\n}\n.dialog-dark .robot-result-item:hover .robot-item-label[data-v-0c844dfd], .dialog-dark .robot-result-item.robot-result-item-selected .robot-item-label[data-v-0c844dfd] {\n color: #c7d2fe;\n}\n.dialog-dark .robot-result-item .robot-item-icon[data-v-0c844dfd] {\n color: #9ca3af;\n background: rgba(255, 255, 255, 0.04);\n}\n.dialog-dark .robot-result-item .robot-item-icon.robot-default-icon[data-v-0c844dfd] {\n background: rgba(255, 255, 255, 0.06);\n}\n.dialog-dark .robot-result-item .robot-item-content .robot-item-label[data-v-0c844dfd] {\n color: #f9fafb;\n}\n.dialog-dark .robot-result-item .robot-item-content .robot-item-desc[data-v-0c844dfd] {\n color: #9ca3af;\n}\n.dialog-dark .robot-result-item .robot-item-badge[data-v-0c844dfd] {\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(99, 102, 241, 0.12));\n color: #a5b4fc;\n border-color: rgba(99, 102, 241, 0.25);\n}\n.robot-search-footer[data-v-0c844dfd] {\n padding: 16px 24px;\n border-top: 1px solid rgba(0, 0, 0, 0.06);\n background: linear-gradient(180deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.01));\n display: flex;\n justify-content: space-between;\n align-items: center;\n backdrop-filter: blur(8px);\n}\n.robot-search-footer .robot-footer-info[data-v-0c844dfd] {\n font-size: 11px;\n color: #9ca3af;\n font-weight: 500;\n}\n.dialog-dark .robot-search-footer[data-v-0c844dfd] {\n border-top-color: rgba(255, 255, 255, 0.08);\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));\n}\n.dialog-dark .robot-search-footer .robot-footer-info[data-v-0c844dfd] {\n color: #6b7280;\n}\n.robot-footer-actions[data-v-0c844dfd] {\n display: flex;\n gap: 18px;\n}\n.robot-footer-actions .robot-action-item[data-v-0c844dfd] {\n display: flex;\n align-items: center;\n gap: 7px;\n font-size: 12px;\n color: #6b7280;\n font-weight: 500;\n}\n.robot-footer-actions .robot-action-item kbd[data-v-0c844dfd] {\n padding: 3px 8px;\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.7));\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-radius: 5px;\n font-family: ui-monospace, \"SF Mono\", Monaco, \"Cascadia Code\", \"Roboto Mono\", Consolas, \"Courier New\", monospace;\n font-size: 10px;\n line-height: 1;\n color: #4b5563;\n min-width: 22px;\n text-align: center;\n font-weight: 600;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.8);\n}\n.dialog-dark .robot-footer-actions .robot-action-item kbd[data-v-0c844dfd] {\n background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.08));\n border-color: rgba(255, 255, 255, 0.18);\n color: #d1d5db;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n.robot-footer-actions .robot-action-item span[data-v-0c844dfd] {\n font-size: 11px;\n font-weight: 500;\n}\n.dialog-dark .robot-footer-actions .robot-action-item[data-v-0c844dfd] {\n color: #9ca3af;\n}\n.robot-dialog-enter-active[data-v-0c844dfd],\n.robot-dialog-leave-active[data-v-0c844dfd] {\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.robot-dialog-enter-from[data-v-0c844dfd],\n.robot-dialog-leave-to[data-v-0c844dfd] {\n opacity: 0;\n}\n.robot-dialog-enter-from .robot-dialog-container[data-v-0c844dfd],\n.robot-dialog-leave-to .robot-dialog-container[data-v-0c844dfd] {\n transform: scale(0.92) translateY(-40px);\n opacity: 0;\n}\n.robot-dialog-enter-to[data-v-0c844dfd] {\n opacity: 1;\n}\n.robot-dialog-enter-to .robot-dialog-container[data-v-0c844dfd] {\n transform: scale(1) translateY(0);\n opacity: 1;\n}\n@media (max-width: 640px) {\n.robot-dialog-overlay[data-v-0c844dfd] {\n padding: 60px 12px 12px;\n}\n.robot-dialog-container[data-v-0c844dfd] {\n border-radius: 12px;\n}\n.robot-search-header[data-v-0c844dfd] {\n padding: 16px 18px;\n}\n.robot-group-title[data-v-0c844dfd] {\n padding: 14px 18px 8px;\n}\n.robot-group-items[data-v-0c844dfd] {\n padding: 0 6px;\n}\n.robot-result-item[data-v-0c844dfd] {\n padding: 10px 12px;\n gap: 12px;\n}\n.robot-search-footer[data-v-0c844dfd] {\n padding: 14px 18px;\n flex-direction: column;\n gap: 8px;\n align-items: stretch;\n}\n.robot-search-footer .robot-footer-actions[data-v-0c844dfd] {\n justify-content: center;\n gap: 14px;\n}\n.robot-search-footer .robot-footer-info[data-v-0c844dfd] {\n text-align: center;\n order: -1;\n}\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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}