hermes-web-ui 0.4.3 → 0.4.4

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 (202) hide show
  1. package/README.md +2 -1
  2. package/dist/client/assets/Add-C5vmHXvi.js +1 -0
  3. package/dist/client/assets/{Button-vKfgky-Y.js → Button-BkFCVws1.js} +3 -3
  4. package/dist/client/assets/{ChannelsView-CHWtzAkF.js → ChannelsView-kmohhCQz.js} +1 -1
  5. package/dist/client/assets/ChatView-BqERLIKm.js +3 -0
  6. package/dist/client/assets/{ChatView-b0_L3ucp.css → ChatView-CjCcr65D.css} +1 -1
  7. package/dist/client/assets/{Close-Brba3ay5.js → Close-BQv4cWxW.js} +2 -2
  8. package/dist/client/assets/Dropdown-CalW5lgg.js +125 -0
  9. package/dist/client/assets/Empty-Crwpm9aR.js +24 -0
  10. package/dist/client/assets/FilesView-BIhdGj93.css +1 -0
  11. package/dist/client/assets/FilesView-DDqOER0C.js +279 -0
  12. package/dist/client/assets/{FormItem-kXuCeSKq.js → FormItem-rZXpOEwq.js} +3 -3
  13. package/dist/client/assets/GatewaysView-CBisX7sg.js +1 -0
  14. package/dist/client/assets/Input-CACQWEc-.js +234 -0
  15. package/dist/client/assets/{InputNumber-BXy4reTI.js → InputNumber-BtDJhuZ_.js} +2 -2
  16. package/dist/client/assets/JobsView-D2rkutWf.js +2 -0
  17. package/dist/client/assets/LoginView-fbo3JyWY.js +1 -0
  18. package/dist/client/assets/LogsView-D6S5uWNR.js +1 -0
  19. package/dist/client/assets/{MarkdownRenderer-B7t0ZEw0.js → MarkdownRenderer-4flsL0HK.js} +17 -17
  20. package/dist/client/assets/MemoryView-Ct-Xub44.js +7 -0
  21. package/dist/client/assets/{Modal-6Bv1v4kO.js → Modal-pv2obz6L.js} +4 -4
  22. package/dist/client/assets/{ModelsView-BStkMmEH.css → ModelsView-DoxebjaU.css} +1 -1
  23. package/dist/client/assets/ModelsView-NQaSxgAw.js +1 -0
  24. package/dist/client/assets/Popconfirm-BtGpKlX7.js +16 -0
  25. package/dist/client/assets/Popover-CrGHm4Ci.js +117 -0
  26. package/dist/client/assets/ProfilesView-BkxAC36G.js +1 -0
  27. package/dist/client/assets/Select-D9RT-keZ.js +317 -0
  28. package/dist/client/assets/SettingRow-Uz-cvlWh.js +1 -0
  29. package/dist/client/assets/SettingsView-ZqYSPWDq.js +352 -0
  30. package/dist/client/assets/SkillsView-CynAdT4a.js +1 -0
  31. package/dist/client/assets/{Spin-DKwUVt1F.js → Spin-Cl861IYY.js} +3 -3
  32. package/dist/client/assets/Suffix-lZvgRyRJ.js +90 -0
  33. package/dist/client/assets/{Switch-DG-3EwdR.js → Switch-Cgr6t0l5.js} +2 -2
  34. package/dist/client/assets/{Tag-BWD1u63m.js → Tag-DTjJYhIj.js} +2 -2
  35. package/dist/client/assets/{TerminalView-DTR8bNOy.js → TerminalView-B-24Rkd7.js} +6 -6
  36. package/dist/client/assets/Tooltip-BSRTJcks.js +1 -0
  37. package/dist/client/assets/Upload-GVPlkKwO.js +440 -0
  38. package/dist/client/assets/UsageView-MG6jNAat.js +1 -0
  39. package/dist/client/assets/{Warning-CCZES7el.js → Warning-C_N-vtES.js} +1 -1
  40. package/dist/client/assets/{_plugin-vue_export-helper-Bl_Pm_OI.js → _plugin-vue_export-helper-BQLp1Z61.js} +2 -2
  41. package/dist/client/assets/abap-Cj2ZJqTY.js +1 -0
  42. package/dist/client/assets/apex-DMOzUZZB.js +1 -0
  43. package/dist/client/assets/app-CawwM3Gr.js +1 -0
  44. package/dist/client/assets/app-DMdMpEzR.js +1 -0
  45. package/dist/client/assets/{auth-BPBv1nNQ.js → auth-Bkk8rJhI.js} +1 -1
  46. package/dist/client/assets/azcli-BJqyCQCD.js +1 -0
  47. package/dist/client/assets/bat-D9jfAgXL.js +1 -0
  48. package/dist/client/assets/bicep-IyCF8AHg.js +2 -0
  49. package/dist/client/assets/browser-C0KKMpa8.js +47 -0
  50. package/dist/client/assets/cameligo-DqphQ1Vf.js +1 -0
  51. package/dist/client/assets/chat-BdoAzXti.js +6 -0
  52. package/dist/client/assets/chunk-DECur_0Z.js +1 -0
  53. package/dist/client/assets/clipboard-D5ziXDzU.js +1 -0
  54. package/dist/client/assets/clojure-CqmBZ3SB.js +1 -0
  55. package/dist/client/assets/codicon-ngg6Pgfi.ttf +0 -0
  56. package/dist/client/assets/coffee-CD7nYioG.js +1 -0
  57. package/dist/client/assets/composables-gdfCfHJJ.js +1 -0
  58. package/dist/client/assets/cpp-CJjcH3OV.js +1 -0
  59. package/dist/client/assets/{create-5zWq3BEB.js → create-DgSD0xTd.js} +1 -1
  60. package/dist/client/assets/csharp-Bh3KEkzK.js +1 -0
  61. package/dist/client/assets/csp-Bwqlbr_S.js +1 -0
  62. package/dist/client/assets/css-CoIOcuFa.js +3 -0
  63. package/dist/client/assets/css.worker-DyDu5ynT.js +89 -0
  64. package/dist/client/assets/cssMode-DEq9g7fF.js +1 -0
  65. package/dist/client/assets/cypher-BI5xYxDU.js +1 -0
  66. package/dist/client/assets/dart-C48Nsypx.js +1 -0
  67. package/dist/client/assets/dockerfile-ueCsFBIO.js +1 -0
  68. package/dist/client/assets/ecl-bYObu0Am.js +1 -0
  69. package/dist/client/assets/editor-Br_kD0ds.css +1 -0
  70. package/dist/client/assets/editor.api2-Be2SWebq.js +872 -0
  71. package/dist/client/assets/editor.worker-Dpt_xPrs.js +26 -0
  72. package/dist/client/assets/elixir-C3hRLmcx.js +1 -0
  73. package/dist/client/assets/fade-in.cssr-D3Wt-ego.js +12 -0
  74. package/dist/client/assets/flow9-DFj18iNE.js +1 -0
  75. package/dist/client/assets/freemarker2-DL4Fzu5B.js +3 -0
  76. package/dist/client/assets/fsharp-AnzNBUww.js +1 -0
  77. package/dist/client/assets/go-tJ6Rmw6i.js +1 -0
  78. package/dist/client/assets/graphql-C0hIG8nm.js +1 -0
  79. package/dist/client/assets/handlebars-BHnMuvUj.js +1 -0
  80. package/dist/client/assets/hcl-BuyUNygY.js +1 -0
  81. package/dist/client/assets/html-GXFtBUzj.js +1 -0
  82. package/dist/client/assets/html.worker-IWNXhnIC.js +502 -0
  83. package/dist/client/assets/htmlMode-BcCXcf_0.js +1 -0
  84. package/dist/client/assets/index-8ao2g7sV.js +284 -0
  85. package/dist/client/assets/{index-BRXOdlZt.css → index-C9EadcMt.css} +1 -1
  86. package/dist/client/assets/ini-BeJtyijW.js +1 -0
  87. package/dist/client/assets/java-C2VAgfs1.js +1 -0
  88. package/dist/client/assets/javascript-U_9WP-aM.js +1 -0
  89. package/dist/client/assets/jobs-B5TmkmHx.js +1 -0
  90. package/dist/client/assets/jobs-ByeskmbT.js +1 -0
  91. package/dist/client/assets/json.worker-c4h5s80L.js +58 -0
  92. package/dist/client/assets/jsonMode-tONQS06s.js +7 -0
  93. package/dist/client/assets/julia-L5N2QjZH.js +1 -0
  94. package/dist/client/assets/kotlin-CoM2kw6K.js +1 -0
  95. package/dist/client/assets/less-zbg2EZtP.js +2 -0
  96. package/dist/client/assets/lexon-DYXVK96z.js +1 -0
  97. package/dist/client/assets/{light-DLz3o2il.js → light-0XEUqxc9.js} +1 -1
  98. package/dist/client/assets/{light-BNuYwJcs.js → light-5OhOi42N.js} +1 -1
  99. package/dist/client/assets/light-B2F950-4.js +1 -0
  100. package/dist/client/assets/{light-DcGe0-g1.js → light-CqEvxEaQ.js} +1 -1
  101. package/dist/client/assets/{light-DbUQYfY2.js → light-KCWDej_e.js} +1 -1
  102. package/dist/client/assets/{light-cIgLWDVk.js → light-Q_cJ87-J.js} +1 -1
  103. package/dist/client/assets/light-m-6OEHOE.js +1 -0
  104. package/dist/client/assets/liquid-B0bBAmrr.js +1 -0
  105. package/dist/client/assets/lspLanguageFeatures-CTVvD5p-.js +4 -0
  106. package/dist/client/assets/lua-BLOIBWLB.js +1 -0
  107. package/dist/client/assets/m3-cDvqo2bv.js +1 -0
  108. package/dist/client/assets/markdown-Dl_DNBM2.js +1 -0
  109. package/dist/client/assets/mdx-RopAvSlP.js +1 -0
  110. package/dist/client/assets/mips-BzzKjtTI.js +1 -0
  111. package/dist/client/assets/{models-EKNn3-zC.js → models-B81NGa-M.js} +1 -1
  112. package/dist/client/assets/monaco.contribution-BEuTYscZ.js +2 -0
  113. package/dist/client/assets/msdax-sEefJb9Q.js +1 -0
  114. package/dist/client/assets/mysql-DRV1IKn4.js +1 -0
  115. package/dist/client/assets/objective-c-DYtfYpNc.js +1 -0
  116. package/dist/client/assets/pascal-CpR5h_uZ.js +1 -0
  117. package/dist/client/assets/pascaligo-BI_Gz9Bp.js +1 -0
  118. package/dist/client/assets/perl-K9wCPr4J.js +1 -0
  119. package/dist/client/assets/pgsql-NrZG2xAf.js +1 -0
  120. package/dist/client/assets/php-DT0D5Htf.js +1 -0
  121. package/dist/client/assets/{pinia-C8BDM-Fc.js → pinia-Bf3FnMGw.js} +1 -1
  122. package/dist/client/assets/pla-COSVs9tJ.js +1 -0
  123. package/dist/client/assets/postiats-CpQICSCZ.js +1 -0
  124. package/dist/client/assets/powerquery-hpQUPY_r.js +1 -0
  125. package/dist/client/assets/powershell-CXKJShJs.js +1 -0
  126. package/dist/client/assets/preload-helper-rov5CBGT.js +1 -0
  127. package/dist/client/assets/profiles-CySy48VW.js +1 -0
  128. package/dist/client/assets/protobuf-VEer4AfK.js +2 -0
  129. package/dist/client/assets/pug-CCviz4wy.js +1 -0
  130. package/dist/client/assets/python-DPgAafol.js +1 -0
  131. package/dist/client/assets/qsharp-DTveMB6M.js +1 -0
  132. package/dist/client/assets/r-CnY31RFU.js +1 -0
  133. package/dist/client/assets/razor-BRbs1kR5.js +1 -0
  134. package/dist/client/assets/redis-1g6etttg.js +1 -0
  135. package/dist/client/assets/redshift-BQFehQo7.js +1 -0
  136. package/dist/client/assets/restructuredtext-CR8m-OPX.js +1 -0
  137. package/dist/client/assets/router-DSISOBmz.js +4 -0
  138. package/dist/client/assets/ruby-BljIZnPI.js +1 -0
  139. package/dist/client/assets/rust-C7icjueR.js +1 -0
  140. package/dist/client/assets/sb-Cl_sCxp1.js +1 -0
  141. package/dist/client/assets/scala-CT-TSn-3.js +1 -0
  142. package/dist/client/assets/scheme-BkJvX1f4.js +1 -0
  143. package/dist/client/assets/scss-B5N7uefM.js +3 -0
  144. package/dist/client/assets/{session-browser-prefs-BI-rZu2N.js → session-browser-prefs-LLoiG_YM.js} +1 -1
  145. package/dist/client/assets/{sessions-CJI89wYu.js → sessions-LymnKAC6.js} +1 -1
  146. package/dist/client/assets/shell-DGQq63Qg.js +1 -0
  147. package/dist/client/assets/{skills-DjdZmDZP.js → skills-5sEozVye.js} +1 -1
  148. package/dist/client/assets/solidity-BGsdM1K-.js +1 -0
  149. package/dist/client/assets/sophia-2vdPWHk_.js +1 -0
  150. package/dist/client/assets/sparql-BVtOOc6V.js +1 -0
  151. package/dist/client/assets/sql-ceGY-xNe.js +1 -0
  152. package/dist/client/assets/st-DupPN7oj.js +1 -0
  153. package/dist/client/assets/swift-BVzV3sGw.js +1 -0
  154. package/dist/client/assets/systemverilog-hp5X8uST.js +1 -0
  155. package/dist/client/assets/tcl-D56hFaYe.js +1 -0
  156. package/dist/client/assets/ts.worker-BwM5Ha3L.js +67719 -0
  157. package/dist/client/assets/tsMode-DGr7-1MY.js +11 -0
  158. package/dist/client/assets/twig-C2ivmPwo.js +1 -0
  159. package/dist/client/assets/typescript-yGuzzsRv.js +1 -0
  160. package/dist/client/assets/typespec-DxADZqov.js +1 -0
  161. package/dist/client/assets/{use-message-sSsrvqld.js → use-message-DOCgeMXd.js} +1 -1
  162. package/dist/client/assets/{useTheme-DgQIobZP.js → useTheme-Dm7n8Zfn.js} +1 -1
  163. package/dist/client/assets/vb-EBCrbQ4-.js +1 -0
  164. package/dist/client/assets/wgsl-9pwzQzLa.js +298 -0
  165. package/dist/client/assets/workers-LkP66fNk.js +1 -0
  166. package/dist/client/assets/xml-Dnyprwt6.js +1 -0
  167. package/dist/client/assets/yaml-BU-x4ie7.js +1 -0
  168. package/dist/client/index.html +36 -31
  169. package/dist/server/index.js +2201 -398
  170. package/dist/server/index.js.map +4 -4
  171. package/package.json +18 -4
  172. package/dist/client/assets/Add-DiTv65Se.js +0 -1
  173. package/dist/client/assets/ChatView--lvFbW3I.js +0 -127
  174. package/dist/client/assets/GatewaysView-DUPP1UyD.js +0 -1
  175. package/dist/client/assets/Input-BS71ZaoJ.js +0 -234
  176. package/dist/client/assets/JobsView-CXa1h0NF.js +0 -2
  177. package/dist/client/assets/LoginView-Cpod3SAL.js +0 -1
  178. package/dist/client/assets/LogsView-CgxeVMn-.js +0 -1
  179. package/dist/client/assets/MemoryView-BQjYVDJc.js +0 -7
  180. package/dist/client/assets/ModelsView-CVghPzgk.js +0 -1
  181. package/dist/client/assets/Popconfirm-Bpz_dC1j.js +0 -16
  182. package/dist/client/assets/Popover-CXrjClQw.js +0 -117
  183. package/dist/client/assets/ProfilesView-Brpyzl-Q.js +0 -440
  184. package/dist/client/assets/Select-Z20Mp4nQ.js +0 -340
  185. package/dist/client/assets/SettingRow-Cz749k-e.js +0 -1
  186. package/dist/client/assets/SettingsView-C3HbKb4w.js +0 -352
  187. package/dist/client/assets/SkillsView-qVZkbI37.js +0 -1
  188. package/dist/client/assets/Suffix-C1Mw6UwH.js +0 -90
  189. package/dist/client/assets/Tooltip-Dka1-DNs.js +0 -1
  190. package/dist/client/assets/UsageView-elTUQCED.js +0 -1
  191. package/dist/client/assets/app-BMD_VOYs.js +0 -1
  192. package/dist/client/assets/app-y8cD3FPg.js +0 -1
  193. package/dist/client/assets/browser-DlPqZ-4M.js +0 -47
  194. package/dist/client/assets/chat-3-o9JAHE.js +0 -6
  195. package/dist/client/assets/composables-CoSqDggz.js +0 -1
  196. package/dist/client/assets/fade-in.cssr-D0suZaLL.js +0 -12
  197. package/dist/client/assets/index-CeFFa_Wg.js +0 -284
  198. package/dist/client/assets/jobs-DMiCP2Li.js +0 -1
  199. package/dist/client/assets/profiles-1vZTTlBc.js +0 -1
  200. package/dist/client/assets/router-kR4kqS2l.js +0 -4
  201. /package/dist/client/assets/{_common-D_mHAddk.js → _common-DdtSL-nr.js} +0 -0
  202. /package/dist/client/assets/{logo-Cd-t_oGE.js → logo-D12u0f1i.js} +0 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "hermes-web-ui",
3
- "version": "0.4.3",
4
- "description": "Web dashboard for Hermes Agent — multi-platform AI chat, session management, scheduled jobs, usage analytics & channel configuration (Telegram, Discord, Slack, WhatsApp)",
3
+ "version": "0.4.4",
4
+ "description": "Self-hosted AI chat dashboard for Hermes Agent — multi-model (Claude, GPT, Gemini, DeepSeek) web UI with Telegram, Discord, Slack, WhatsApp integration",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/EKKOLearnAI/hermes-web-ui.git"
@@ -13,10 +13,23 @@
13
13
  },
14
14
  "keywords": [
15
15
  "hermes",
16
+ "hermes-agent",
17
+ "hermes-web",
18
+ "agent",
19
+ "ai",
16
20
  "ai-agent",
21
+ "ai-chat",
22
+ "ai-dashboard",
23
+ "chatgpt",
24
+ "claude",
25
+ "openai",
26
+ "gemini",
27
+ "deepseek",
17
28
  "llm",
29
+ "multi-model",
18
30
  "chat-ui",
19
31
  "dashboard",
32
+ "self-hosted",
20
33
  "telegram",
21
34
  "discord",
22
35
  "slack",
@@ -26,8 +39,7 @@
26
39
  "weixin",
27
40
  "multi-platform",
28
41
  "vue3",
29
- "typescript",
30
- "naive-ui"
42
+ "typescript"
31
43
  ],
32
44
  "bin": {
33
45
  "hermes-web-ui": "./bin/hermes-web-ui.mjs"
@@ -38,6 +50,7 @@
38
50
  "dev:client": "vite --host",
39
51
  "dev:server": "nodemon --signal SIGTERM --watch packages/server/src -e ts,tsx --exec TS_NODE_PROJECT=packages/server/tsconfig.json node -r ts-node/register packages/server/src/index.ts",
40
52
  "build": "vue-tsc -b && vite build && tsc --noEmit -p packages/server/tsconfig.json && node scripts/build-server.mjs",
53
+ "prepare": "[ -d dist ] || npm run build",
41
54
  "preview": "vite preview",
42
55
  "test": "vitest run",
43
56
  "test:watch": "vitest",
@@ -80,6 +93,7 @@
80
93
  "koa-send": "^5.0.1",
81
94
  "koa-static": "^5.0.0",
82
95
  "markdown-it": "^14.1.1",
96
+ "monaco-editor": "^0.55.1",
83
97
  "naive-ui": "^2.44.1",
84
98
  "nodemon": "^3.1.14",
85
99
  "pinia": "^3.0.4",
@@ -1 +0,0 @@
1
- import{M as e,P as t}from"./router-kR4kqS2l.js";var n=e({name:`Add`,render(){return t(`svg`,{width:`512`,height:`512`,viewBox:`0 0 512 512`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},t(`path`,{d:`M256 112V400M400 256H112`,stroke:`currentColor`,"stroke-width":`32`,"stroke-linecap":`round`,"stroke-linejoin":`round`}))}});export{n as t};
@@ -1,127 +0,0 @@
1
- import{$ as e,A as t,D as n,E as r,G as i,H as a,I as o,J as s,K as c,M as l,O as u,P as d,R as f,T as p,V as m,W as h,Z as g,_,_t as v,b as y,ct as b,et as x,f as S,ft as C,gt as w,h as T,ht as E,j as D,lt as O,mt as k,q as A,s as j,st as M,v as N,w as P,z as F}from"./router-kR4kqS2l.js";import{r as I,t as L}from"./_plugin-vue_export-helper-Bl_Pm_OI.js";import{t as R}from"./logo-Cd-t_oGE.js";import{$ as z,B,X as V,c as H,ct as U,dt as W,ft as ee,pt as G,q as K,st as q,tt as J,ut as Y,z as te}from"./browser-DlPqZ-4M.js";import{C as ne,E as re,N as X,S as ie,T as ae,c as Z,g as oe,k as se,l as ce,m as le,n as ue,o as de,r as fe,t as pe}from"./Popover-CXrjClQw.js";import{r as me,t as he}from"./create-5zWq3BEB.js";import{d as ge,f as _e,p as ve,r as ye}from"./Suffix-C1Mw6UwH.js";import{t as be}from"./Modal-6Bv1v4kO.js";import{t as Q}from"./Button-vKfgky-Y.js";import{t as xe}from"./Input-BS71ZaoJ.js";import{i as Se,n as Ce,t as we}from"./chat-3-o9JAHE.js";import{t as Te}from"./Tooltip-Dka1-DNs.js";import{t as Ee}from"./use-message-sSsrvqld.js";import{t as De}from"./Popconfirm-Bpz_dC1j.js";import{t as Oe}from"./useTheme-DgQIobZP.js";import{t as ke}from"./app-y8cD3FPg.js";import{t as Ae}from"./profiles-1vZTTlBc.js";import{n as je,o as Me}from"./sessions-CJI89wYu.js";import{t as Ne}from"./session-browser-prefs-BI-rZu2N.js";import{i as Pe,n as Fe,r as Ie,t as Le}from"./MarkdownRenderer-B7t0ZEw0.js";function Re(e={},t){let n=M({ctrl:!1,command:!1,win:!1,shift:!1,tab:!1}),{keydown:r,keyup:i}=e,o=e=>{switch(e.key){case`Control`:n.ctrl=!0;break;case`Meta`:n.command=!0,n.win=!0;break;case`Shift`:n.shift=!0;break;case`Tab`:n.tab=!0;break}r!==void 0&&Object.keys(r).forEach(t=>{if(t!==e.key)return;let n=r[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},s=e=>{switch(e.key){case`Control`:n.ctrl=!1;break;case`Meta`:n.command=!1,n.win=!1;break;case`Shift`:n.shift=!1;break;case`Tab`:n.tab=!1;break}i!==void 0&&Object.keys(i).forEach(t=>{if(t!==e.key)return;let n=i[t];if(typeof n==`function`)n(e);else{let{stop:t=!1,prevent:r=!1}=n;t&&e.stopPropagation(),r&&e.preventDefault(),n.handler(e)}})},c=()=>{(t===void 0||t.value)&&(ve(`keydown`,document,o),ve(`keyup`,document,s)),t!==void 0&&g(t,e=>{e?(ve(`keydown`,document,o),ve(`keyup`,document,s)):(_e(`keydown`,document,o),_e(`keyup`,document,s))})};return X()?(m(c),a(()=>{(t===void 0||t.value)&&(_e(`keydown`,document,o),_e(`keyup`,document,s))})):c(),b(n)}function ze(e,t,n){if(!t)return e;let r=O(e.value),i=null;return g(e,e=>{i!==null&&window.clearTimeout(i),e===!0?n&&!n.value?r.value=!0:i=window.setTimeout(()=>{r.value=!0},t):r.value=!1}),r}function Be(e){return t=>{t?e.value=t.$el:e.value=null}}var Ve=l({name:`ChevronRight`,render(){return d(`svg`,{viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`},d(`path`,{d:`M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z`,fill:`currentColor`}))}}),He=z(`n-dropdown-menu`),Ue=z(`n-dropdown`),We=z(`n-dropdown-option`),Ge=l({name:`DropdownDivider`,props:{clsPrefix:{type:String,required:!0}},render(){return d(`div`,{class:`${this.clsPrefix}-dropdown-divider`})}}),Ke=l({name:`DropdownGroupHeader`,props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0}},setup(){let{showIconRef:e,hasSubmenuRef:t}=o(He),{renderLabelRef:n,labelFieldRef:r,nodePropsRef:i,renderOptionRef:a}=o(Ue);return{labelField:r,showIcon:e,hasSubmenu:t,renderLabel:n,nodeProps:i,renderOption:a}},render(){let{clsPrefix:e,hasSubmenu:t,showIcon:n,nodeProps:r,renderLabel:i,renderOption:a}=this,{rawNode:o}=this.tmNode,s=d(`div`,Object.assign({class:`${e}-dropdown-option`},r?.(o)),d(`div`,{class:`${e}-dropdown-option-body ${e}-dropdown-option-body--group`},d(`div`,{"data-dropdown-option":!0,class:[`${e}-dropdown-option-body__prefix`,n&&`${e}-dropdown-option-body__prefix--show-icon`]},Z(o.icon)),d(`div`,{class:`${e}-dropdown-option-body__label`,"data-dropdown-option":!0},i?i(o):Z(o.title??o[this.labelField])),d(`div`,{class:[`${e}-dropdown-option-body__suffix`,t&&`${e}-dropdown-option-body__suffix--has-submenu`],"data-dropdown-option":!0})));return a?a({node:s,option:o}):s}}),qe=U(`icon`,`
2
- height: 1em;
3
- width: 1em;
4
- line-height: 1em;
5
- text-align: center;
6
- display: inline-block;
7
- position: relative;
8
- fill: currentColor;
9
- `,[W(`color-transition`,{transition:`color .3s var(--n-bezier)`}),W(`depth`,{color:`var(--n-color)`},[q(`svg`,{opacity:`var(--n-opacity)`,transition:`opacity .3s var(--n-bezier)`})]),q(`svg`,{height:`1em`,width:`1em`})]),Je=l({_n_icon__:!0,name:`Icon`,inheritAttrs:!1,props:Object.assign(Object.assign({},H.props),{depth:[String,Number],size:[Number,String],color:String,component:[Object,Function]}),setup(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:n}=B(e),r=H(`Icon`,`-icon`,qe,Ce,e,t),i=P(()=>{let{depth:t}=e,{common:{cubicBezierEaseInOut:n},self:i}=r.value;if(t!==void 0){let{color:e,[`opacity${t}Depth`]:r}=i;return{"--n-bezier":n,"--n-color":e,"--n-opacity":r}}return{"--n-bezier":n,"--n-color":``,"--n-opacity":``}}),a=n?te(`icon`,P(()=>`${e.depth||`d`}`),i,e):void 0;return{mergedClsPrefix:t,mergedStyle:P(()=>{let{size:t,color:n}=e;return{fontSize:le(t),color:n}}),cssVars:n?void 0:i,themeClass:a?.themeClass,onRender:a?.onRender}},render(){let{$parent:e,depth:t,mergedClsPrefix:n,component:r,onRender:i,themeClass:a}=this;return e?.$options?._n_icon__&&V(`icon`,"don't wrap `n-icon` inside `n-icon`"),i?.(),d(`i`,f(this.$attrs,{role:`img`,class:[`${n}-icon`,a,{[`${n}-icon--depth`]:t,[`${n}-icon--color-transition`]:t!==void 0}],style:[this.cssVars,this.mergedStyle]}),r?d(r):this.$slots)}});function Ye(e,t){return e.type===`submenu`||e.type===void 0&&e[t]!==void 0}function Xe(e){return e.type===`group`}function Ze(e){return e.type===`divider`}function Qe(e){return e.type===`render`}var $e=l({name:`DropdownOption`,props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0},parentKey:{type:[String,Number],default:null},placement:{type:String,default:`right-start`},props:Object,scrollable:Boolean},setup(e){let t=o(Ue),{hoverKeyRef:n,keyboardKeyRef:r,lastToggledSubmenuKeyRef:i,pendingKeyPathRef:a,activeKeyPathRef:s,animatedRef:c,mergedShowRef:l,renderLabelRef:u,renderIconRef:d,labelFieldRef:f,childrenFieldRef:p,renderOptionRef:m,nodePropsRef:h,menuPropsRef:g}=t,_=o(We,null),v=o(He),y=o(ae),b=P(()=>e.tmNode.rawNode),x=P(()=>{let{value:t}=p;return Ye(e.tmNode.rawNode,t)}),S=P(()=>{let{disabled:t}=e.tmNode;return t}),C=ze(P(()=>{if(!x.value)return!1;let{key:t,disabled:o}=e.tmNode;if(o)return!1;let{value:s}=n,{value:c}=r,{value:l}=i,{value:u}=a;return s===null?c===null?l===null?!1:u.includes(t):u.includes(t)&&u[u.length-1]!==t:u.includes(t)}),300,P(()=>r.value===null&&!c.value)),w=P(()=>!!_?.enteringSubmenuRef.value),T=O(!1);A(We,{enteringSubmenuRef:T});function E(){T.value=!0}function D(){T.value=!1}function k(){let{parentKey:t,tmNode:a}=e;a.disabled||l.value&&(i.value=t,r.value=null,n.value=a.key)}function j(){let{tmNode:t}=e;t.disabled||l.value&&n.value!==t.key&&k()}function M(t){if(e.tmNode.disabled||!l.value)return;let{relatedTarget:r}=t;r&&!me({target:r},`dropdownOption`)&&!me({target:r},`scrollbarRail`)&&(n.value=null)}function N(){let{value:n}=x,{tmNode:r}=e;l.value&&!n&&!r.disabled&&(t.doSelect(r.key,r.rawNode),t.doUpdateShow(!1))}return{labelField:f,renderLabel:u,renderIcon:d,siblingHasIcon:v.showIconRef,siblingHasSubmenu:v.hasSubmenuRef,menuProps:g,popoverBody:y,animated:c,mergedShowSubmenu:P(()=>C.value&&!w.value),rawNode:b,hasSubmenu:x,pending:J(()=>{let{value:t}=a,{key:n}=e.tmNode;return t.includes(n)}),childActive:J(()=>{let{value:t}=s,{key:n}=e.tmNode,r=t.findIndex(e=>n===e);return r===-1?!1:r<t.length-1}),active:J(()=>{let{value:t}=s,{key:n}=e.tmNode,r=t.findIndex(e=>n===e);return r===-1?!1:r===t.length-1}),mergedDisabled:S,renderOption:m,nodeProps:h,handleClick:N,handleMouseMove:j,handleMouseEnter:k,handleMouseLeave:M,handleSubmenuBeforeEnter:E,handleSubmenuAfterEnter:D}},render(){let{animated:e,rawNode:t,mergedShowSubmenu:n,clsPrefix:r,siblingHasIcon:i,siblingHasSubmenu:a,renderLabel:o,renderIcon:s,renderOption:c,nodeProps:l,props:u,scrollable:p}=this,m=null;if(n){let e=this.menuProps?.call(this,t,t.children);m=d(nt,Object.assign({},e,{clsPrefix:r,scrollable:this.scrollable,tmNodes:this.tmNode.children,parentKey:this.tmNode.key}))}let h={class:[`${r}-dropdown-option-body`,this.pending&&`${r}-dropdown-option-body--pending`,this.active&&`${r}-dropdown-option-body--active`,this.childActive&&`${r}-dropdown-option-body--child-active`,this.mergedDisabled&&`${r}-dropdown-option-body--disabled`],onMousemove:this.handleMouseMove,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onClick:this.handleClick},g=l?.(t),_=d(`div`,Object.assign({class:[`${r}-dropdown-option`,g?.class],"data-dropdown-option":!0},g),d(`div`,f(h,u),[d(`div`,{class:[`${r}-dropdown-option-body__prefix`,i&&`${r}-dropdown-option-body__prefix--show-icon`]},[s?s(t):Z(t.icon)]),d(`div`,{"data-dropdown-option":!0,class:`${r}-dropdown-option-body__label`},o?o(t):Z(t[this.labelField]??t.title)),d(`div`,{"data-dropdown-option":!0,class:[`${r}-dropdown-option-body__suffix`,a&&`${r}-dropdown-option-body__suffix--has-submenu`]},this.hasSubmenu?d(Je,null,{default:()=>d(Ve,null)}):null)]),this.hasSubmenu?d(ne,null,{default:()=>[d(ie,null,{default:()=>d(`div`,{class:`${r}-dropdown-offset-container`},d(oe,{show:this.mergedShowSubmenu,placement:this.placement,to:p&&this.popoverBody||void 0,teleportDisabled:!p},{default:()=>d(`div`,{class:`${r}-dropdown-menu-wrapper`},e?d(S,{onBeforeEnter:this.handleSubmenuBeforeEnter,onAfterEnter:this.handleSubmenuAfterEnter,name:`fade-in-scale-up-transition`,appear:!0},{default:()=>m}):m)}))})]}):null);return c?c({node:_,option:t}):_}}),et=l({name:`NDropdownGroup`,props:{clsPrefix:{type:String,required:!0},tmNode:{type:Object,required:!0},parentKey:{type:[String,Number],default:null}},render(){let{tmNode:e,parentKey:t,clsPrefix:n}=this,{children:r}=e;return d(y,null,d(Ke,{clsPrefix:n,tmNode:e,key:e.key}),r?.map(e=>{let{rawNode:r}=e;return r.show===!1?null:Ze(r)?d(Ge,{clsPrefix:n,key:e.key}):e.isGroup?(V(`dropdown`,"`group` node is not allowed to be put in `group` node."),null):d($e,{clsPrefix:n,tmNode:e,parentKey:t,key:e.key})}))}}),tt=l({name:`DropdownRenderOption`,props:{tmNode:{type:Object,required:!0}},render(){let{rawNode:{render:e,props:t}}=this.tmNode;return d(`div`,t,[e?.()])}}),nt=l({name:`DropdownMenu`,props:{scrollable:Boolean,showArrow:Boolean,arrowStyle:[String,Object],clsPrefix:{type:String,required:!0},tmNodes:{type:Array,default:()=>[]},parentKey:{type:[String,Number],default:null}},setup(e){let{renderIconRef:t,childrenFieldRef:n}=o(Ue);A(He,{showIconRef:P(()=>{let n=t.value;return e.tmNodes.some(e=>{if(e.isGroup)return e.children?.some(({rawNode:e})=>n?n(e):e.icon);let{rawNode:t}=e;return n?n(t):t.icon})}),hasSubmenuRef:P(()=>{let{value:t}=n;return e.tmNodes.some(e=>{if(e.isGroup)return e.children?.some(({rawNode:e})=>Ye(e,t));let{rawNode:n}=e;return Ye(n,t)})})});let r=O(null);return A(re,null),A(se,null),A(ae,r),{bodyRef:r}},render(){let{parentKey:e,clsPrefix:t,scrollable:n}=this,r=this.tmNodes.map(r=>{let{rawNode:i}=r;return i.show===!1?null:Qe(i)?d(tt,{tmNode:r,key:r.key}):Ze(i)?d(Ge,{clsPrefix:t,key:r.key}):Xe(i)?d(et,{clsPrefix:t,tmNode:r,parentKey:e,key:r.key}):d($e,{clsPrefix:t,tmNode:r,parentKey:e,key:r.key,props:i.props,scrollable:n})});return d(`div`,{class:[`${t}-dropdown-menu`,n&&`${t}-dropdown-menu--scrollable`],ref:`bodyRef`},n?d(ye,{contentClass:`${t}-dropdown-menu__content`},{default:()=>r}):r,this.showArrow?fe({clsPrefix:t,arrowStyle:this.arrowStyle,arrowClass:void 0,arrowWrapperClass:void 0,arrowWrapperStyle:void 0}):null)}}),rt=U(`dropdown-menu`,`
10
- transform-origin: var(--v-transform-origin);
11
- background-color: var(--n-color);
12
- border-radius: var(--n-border-radius);
13
- box-shadow: var(--n-box-shadow);
14
- position: relative;
15
- transition:
16
- background-color .3s var(--n-bezier),
17
- box-shadow .3s var(--n-bezier);
18
- `,[de(),U(`dropdown-option`,`
19
- position: relative;
20
- `,[q(`a`,`
21
- text-decoration: none;
22
- color: inherit;
23
- outline: none;
24
- `,[q(`&::before`,`
25
- content: "";
26
- position: absolute;
27
- left: 0;
28
- right: 0;
29
- top: 0;
30
- bottom: 0;
31
- `)]),U(`dropdown-option-body`,`
32
- display: flex;
33
- cursor: pointer;
34
- position: relative;
35
- height: var(--n-option-height);
36
- line-height: var(--n-option-height);
37
- font-size: var(--n-font-size);
38
- color: var(--n-option-text-color);
39
- transition: color .3s var(--n-bezier);
40
- `,[q(`&::before`,`
41
- content: "";
42
- position: absolute;
43
- top: 0;
44
- bottom: 0;
45
- left: 4px;
46
- right: 4px;
47
- transition: background-color .3s var(--n-bezier);
48
- border-radius: var(--n-border-radius);
49
- `),ee(`disabled`,[W(`pending`,`
50
- color: var(--n-option-text-color-hover);
51
- `,[Y(`prefix, suffix`,`
52
- color: var(--n-option-text-color-hover);
53
- `),q(`&::before`,`background-color: var(--n-option-color-hover);`)]),W(`active`,`
54
- color: var(--n-option-text-color-active);
55
- `,[Y(`prefix, suffix`,`
56
- color: var(--n-option-text-color-active);
57
- `),q(`&::before`,`background-color: var(--n-option-color-active);`)]),W(`child-active`,`
58
- color: var(--n-option-text-color-child-active);
59
- `,[Y(`prefix, suffix`,`
60
- color: var(--n-option-text-color-child-active);
61
- `)])]),W(`disabled`,`
62
- cursor: not-allowed;
63
- opacity: var(--n-option-opacity-disabled);
64
- `),W(`group`,`
65
- font-size: calc(var(--n-font-size) - 1px);
66
- color: var(--n-group-header-text-color);
67
- `,[Y(`prefix`,`
68
- width: calc(var(--n-option-prefix-width) / 2);
69
- `,[W(`show-icon`,`
70
- width: calc(var(--n-option-icon-prefix-width) / 2);
71
- `)])]),Y(`prefix`,`
72
- width: var(--n-option-prefix-width);
73
- display: flex;
74
- justify-content: center;
75
- align-items: center;
76
- color: var(--n-prefix-color);
77
- transition: color .3s var(--n-bezier);
78
- z-index: 1;
79
- `,[W(`show-icon`,`
80
- width: var(--n-option-icon-prefix-width);
81
- `),U(`icon`,`
82
- font-size: var(--n-option-icon-size);
83
- `)]),Y(`label`,`
84
- white-space: nowrap;
85
- flex: 1;
86
- z-index: 1;
87
- `),Y(`suffix`,`
88
- box-sizing: border-box;
89
- flex-grow: 0;
90
- flex-shrink: 0;
91
- display: flex;
92
- justify-content: flex-end;
93
- align-items: center;
94
- min-width: var(--n-option-suffix-width);
95
- padding: 0 8px;
96
- transition: color .3s var(--n-bezier);
97
- color: var(--n-suffix-color);
98
- z-index: 1;
99
- `,[W(`has-submenu`,`
100
- width: var(--n-option-icon-suffix-width);
101
- `),U(`icon`,`
102
- font-size: var(--n-option-icon-size);
103
- `)]),U(`dropdown-menu`,`pointer-events: all;`)]),U(`dropdown-offset-container`,`
104
- pointer-events: none;
105
- position: absolute;
106
- left: 0;
107
- right: 0;
108
- top: -4px;
109
- bottom: -4px;
110
- `)]),U(`dropdown-divider`,`
111
- transition: background-color .3s var(--n-bezier);
112
- background-color: var(--n-divider-color);
113
- height: 1px;
114
- margin: 4px 0;
115
- `),U(`dropdown-menu-wrapper`,`
116
- transform-origin: var(--v-transform-origin);
117
- width: fit-content;
118
- `),q(`>`,[U(`scrollbar`,`
119
- height: inherit;
120
- max-height: inherit;
121
- `)]),ee(`scrollable`,`
122
- padding: var(--n-padding);
123
- `),W(`scrollable`,[Y(`content`,`
124
- padding: var(--n-padding);
125
- `)])]),it={animated:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},size:String,inverted:Boolean,placement:{type:String,default:`bottom`},onSelect:[Function,Array],options:{type:Array,default:()=>[]},menuProps:Function,showArrow:Boolean,renderLabel:Function,renderIcon:Function,renderOption:Function,nodeProps:Function,labelField:{type:String,default:`label`},keyField:{type:String,default:`key`},childrenField:{type:String,default:`children`},value:[String,Number]},at=Object.keys(ue),ot=l({name:`Dropdown`,inheritAttrs:!1,props:Object.assign(Object.assign(Object.assign({},ue),it),H.props),setup(e){let t=O(!1),n=ge(C(e,`show`),t),r=P(()=>{let{keyField:t,childrenField:n}=e;return he(e.options,{getKey(e){return e[t]},getDisabled(e){return e.disabled===!0},getIgnored(e){return e.type===`divider`||e.type===`render`},getChildren(e){return e[n]}})}),i=P(()=>r.value.treeNodes),a=O(null),o=O(null),s=O(null),c=P(()=>a.value??o.value??s.value??null),l=P(()=>r.value.getPath(c.value).keyPath),u=P(()=>r.value.getPath(e.value).keyPath),d=J(()=>e.keyboard&&n.value);Re({keydown:{ArrowUp:{prevent:!0,handler:T},ArrowRight:{prevent:!0,handler:w},ArrowDown:{prevent:!0,handler:E},ArrowLeft:{prevent:!0,handler:S},Enter:{prevent:!0,handler:D},Escape:x}},d);let{mergedClsPrefixRef:f,inlineThemeDisabled:p,mergedComponentPropsRef:m}=B(e),h=P(()=>e.size||m?.value?.Dropdown?.size||`medium`),_=H(`Dropdown`,`-dropdown`,rt,Se,e,f);A(Ue,{labelFieldRef:C(e,`labelField`),childrenFieldRef:C(e,`childrenField`),renderLabelRef:C(e,`renderLabel`),renderIconRef:C(e,`renderIcon`),hoverKeyRef:a,keyboardKeyRef:o,lastToggledSubmenuKeyRef:s,pendingKeyPathRef:l,activeKeyPathRef:u,animatedRef:C(e,`animated`),mergedShowRef:n,nodePropsRef:C(e,`nodeProps`),renderOptionRef:C(e,`renderOption`),menuPropsRef:C(e,`menuProps`),doSelect:v,doUpdateShow:y}),g(n,t=>{!e.animated&&!t&&b()});function v(t,n){let{onSelect:r}=e;r&&K(r,t,n)}function y(n){let{"onUpdate:show":r,onUpdateShow:i}=e;r&&K(r,n),i&&K(i,n),t.value=n}function b(){a.value=null,o.value=null,s.value=null}function x(){y(!1)}function S(){j(`left`)}function w(){j(`right`)}function T(){j(`up`)}function E(){j(`down`)}function D(){let e=k();e?.isLeaf&&n.value&&(v(e.key,e.rawNode),y(!1))}function k(){let{value:e}=r,{value:t}=c;return!e||t===null?null:e.getNode(t)??null}function j(e){let{value:t}=c,{value:{getFirstAvailableNode:n}}=r,i=null;if(t===null){let e=n();e!==null&&(i=e.key)}else{let t=k();if(t){let n;switch(e){case`down`:n=t.getNext();break;case`up`:n=t.getPrev();break;case`right`:n=t.getChild();break;case`left`:n=t.getParent();break}n&&(i=n.key)}}i!==null&&(a.value=null,o.value=i)}let M=P(()=>{let{inverted:t}=e,n=h.value,{common:{cubicBezierEaseInOut:r},self:i}=_.value,{padding:a,dividerColor:o,borderRadius:s,optionOpacityDisabled:c,[G(`optionIconSuffixWidth`,n)]:l,[G(`optionSuffixWidth`,n)]:u,[G(`optionIconPrefixWidth`,n)]:d,[G(`optionPrefixWidth`,n)]:f,[G(`fontSize`,n)]:p,[G(`optionHeight`,n)]:m,[G(`optionIconSize`,n)]:g}=i,v={"--n-bezier":r,"--n-font-size":p,"--n-padding":a,"--n-border-radius":s,"--n-option-height":m,"--n-option-prefix-width":f,"--n-option-icon-prefix-width":d,"--n-option-suffix-width":u,"--n-option-icon-suffix-width":l,"--n-option-icon-size":g,"--n-divider-color":o,"--n-option-opacity-disabled":c};return t?(v[`--n-color`]=i.colorInverted,v[`--n-option-color-hover`]=i.optionColorHoverInverted,v[`--n-option-color-active`]=i.optionColorActiveInverted,v[`--n-option-text-color`]=i.optionTextColorInverted,v[`--n-option-text-color-hover`]=i.optionTextColorHoverInverted,v[`--n-option-text-color-active`]=i.optionTextColorActiveInverted,v[`--n-option-text-color-child-active`]=i.optionTextColorChildActiveInverted,v[`--n-prefix-color`]=i.prefixColorInverted,v[`--n-suffix-color`]=i.suffixColorInverted,v[`--n-group-header-text-color`]=i.groupHeaderTextColorInverted):(v[`--n-color`]=i.color,v[`--n-option-color-hover`]=i.optionColorHover,v[`--n-option-color-active`]=i.optionColorActive,v[`--n-option-text-color`]=i.optionTextColor,v[`--n-option-text-color-hover`]=i.optionTextColorHover,v[`--n-option-text-color-active`]=i.optionTextColorActive,v[`--n-option-text-color-child-active`]=i.optionTextColorChildActive,v[`--n-prefix-color`]=i.prefixColor,v[`--n-suffix-color`]=i.suffixColor,v[`--n-group-header-text-color`]=i.groupHeaderTextColor),v}),N=p?te(`dropdown`,P(()=>`${h.value[0]}${e.inverted?`i`:``}`),M,e):void 0;return{mergedClsPrefix:f,mergedTheme:_,mergedSize:h,tmNodes:i,mergedShow:n,handleAfterLeave:()=>{e.animated&&b()},doUpdateShow:y,cssVars:p?void 0:M,themeClass:N?.themeClass,onRender:N?.onRender}},render(){let e=(e,t,n,r,i)=>{var a;let{mergedClsPrefix:o,menuProps:s}=this;(a=this.onRender)==null||a.call(this);let c=s?.(void 0,this.tmNodes.map(e=>e.rawNode))||{},l={ref:Be(t),class:[e,`${o}-dropdown`,`${o}-dropdown--${this.mergedSize}-size`,this.themeClass],clsPrefix:o,tmNodes:this.tmNodes,style:[...n,this.cssVars],showArrow:this.showArrow,arrowStyle:this.arrowStyle,scrollable:this.scrollable,onMouseenter:r,onMouseleave:i};return d(nt,f(this.$attrs,l,c))},{mergedTheme:t}=this,n={show:this.mergedShow,theme:t.peers.Popover,themeOverrides:t.peerOverrides.Popover,internalOnAfterLeave:this.handleAfterLeave,internalRenderBody:e,onUpdateShow:this.doUpdateShow,"onUpdate:show":void 0};return d(pe,Object.assign({},ce(this.$props,at),n),{trigger:()=>{var e;return(e=this.$slots).default?.call(e)}})}}),st={telegram:`Telegram`,api_server:`API Server`,cli:`CLI`,discord:`Discord`,slack:`Slack`,matrix:`Matrix`,whatsapp:`WhatsApp`,signal:`Signal`,email:`Email`,sms:`SMS`,dingtalk:`DingTalk`,feishu:`Feishu`,wecom:`WeCom`,weixin:`WeChat`,bluebubbles:`iMessage`,mattermost:`Mattermost`,cron:`Cron`};function ct(e){return e?st[e]||e:``}function lt(e){if(!e)return``;let t=new Date(e),n=new Date;return t.toDateString()===n.toDateString()?t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):t.toLocaleDateString([],{month:`short`,day:`numeric`})}function ut(e){return lt(e*1e3)}var dt={class:`chat-input-area`},ft={class:`input-top-bar`},pt={key:1,class:`context-bar`},mt={key:0,class:`attachment-previews`},ht=[`src`,`alt`],gt={key:1,class:`attachment-file`},_t={class:`file-name`},vt={class:`file-size`},yt=[`onClick`],bt=[`placeholder`],xt={class:`input-actions`},St=2e5,Ct=L(l({__name:`ChatInput`,setup(i){let a=we(),{t:o}=I(),l=O(``),d=O(),f=O(),m=O([]),_=O(!1),b=O(0),S=O(!1),C=P(()=>l.value.trim()||m.value.length>0),A=O(2e5);async function j(){try{A.value=await je(Ae().activeProfileName||void 0)}catch{A.value=St}}h(j),g(()=>Ae().activeProfileName,j),g(()=>ke().selectedModel,j);let M=P(()=>(a.activeSession?.inputTokens??0)+(a.activeSession?.outputTokens??0)),N=P(()=>A.value-M.value),F=P(()=>Math.min(M.value/A.value*100,100));function L(e){return e>=1e6?(e/1e6).toFixed(1)+`M`:e>=1e3?(e/1e3).toFixed(1)+`k`:String(e)}function R(e){if(m.value.find(t=>t.name===e.name))return;let t=Date.now().toString(36)+Math.random().toString(36).slice(2,8),n=URL.createObjectURL(e);m.value.push({id:t,name:e.name,type:e.type,size:e.size,url:n,file:e})}function z(){f.value?.click()}function B(e){let t=e.target;if(t.files){for(let e of t.files)R(e);t.value=``}}function V(e){let t=Array.from(e.clipboardData?.items||[]).filter(e=>e.type.startsWith(`image/`));if(t.length){e.preventDefault();for(let e of t){let t=e.getAsFile();if(!t)continue;let n=e.type.split(`/`)[1]||`png`;R(new File([t],`pasted-${Date.now()}.${n}`,{type:e.type}))}}}function H(e){e.preventDefault()}function U(e){e.preventDefault(),e.dataTransfer?.types.includes(`Files`)&&(b.value++,_.value=!0)}function W(){b.value--,b.value<=0&&(b.value=0,_.value=!1)}function ee(e){e.preventDefault(),b.value=0,_.value=!1;let t=Array.from(e.dataTransfer?.files||[]);if(t.length){for(let e of t)R(e);d.value?.focus()}}function G(){let e=l.value.trim();!e&&m.value.length===0||(a.sendMessage(e,m.value.length>0?m.value:void 0),l.value=``,m.value=[],d.value&&(d.value.style.height=`auto`))}function K(){S.value=!0}function q(){requestAnimationFrame(()=>{S.value=!1})}function J(e){return S.value||e.isComposing||e.keyCode===229}function Y(e){e.key!==`Enter`||e.shiftKey||J(e)||(e.preventDefault(),G())}function te(e){let t=e.target;t.style.height=`auto`,t.style.height=Math.min(t.scrollHeight,100)+`px`}function ne(e){let t=m.value.findIndex(t=>t.id===e);t!==-1&&(URL.revokeObjectURL(m.value[t].url),m.value.splice(t,1))}function re(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}function X(e){return e.startsWith(`image/`)}return(i,h)=>(c(),u(`div`,dt,[p(`div`,ft,[D(k(Te),{trigger:`hover`},{trigger:e(()=>[D(k(Q),{quaternary:``,size:`tiny`,onClick:z,circle:``},{icon:e(()=>[...h[2]||=[p(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[p(`path`,{d:`M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48`})],-1)]]),_:1})]),default:e(()=>[t(` `+v(k(o)(`chat.attachFiles`)),1)]),_:1}),M.value>0?(c(),u(`span`,{key:0,class:E([`context-info`,{"context-warning":F.value>80}])},v(L(M.value))+` / `+v(L(A.value))+` · `+v(k(o)(`chat.contextRemaining`))+` `+v(L(N.value)),3)):n(``,!0),M.value>0?(c(),u(`div`,pt,[p(`div`,{class:E([`context-bar-fill`,{"context-bar-warn":F.value>60&&F.value<=80,"context-bar-danger":F.value>80}]),style:w({width:`${F.value}%`})},null,6)])):n(``,!0)]),m.value.length>0?(c(),u(`div`,mt,[(c(!0),u(y,null,s(m.value,e=>(c(),u(`div`,{key:e.id,class:E([`attachment-preview`,{image:X(e.type)}])},[X(e.type)?(c(),u(`img`,{key:0,src:e.url,alt:e.name,class:`attachment-thumb`},null,8,ht)):(c(),u(`div`,gt,[h[3]||=p(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[p(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),p(`polyline`,{points:`14 2 14 8 20 8`})],-1),p(`span`,_t,v(e.name),1),p(`span`,vt,v(re(e.size)),1)])),p(`button`,{class:`attachment-remove`,onClick:t=>ne(e.id)},[...h[4]||=[p(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[p(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),p(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,yt)],2))),128))])):n(``,!0),p(`div`,{class:E([`input-wrapper`,{"drag-over":_.value}]),onDragover:H,onDragenter:U,onDragleave:W,onDrop:ee},[p(`input`,{ref_key:`fileInputRef`,ref:f,type:`file`,multiple:``,class:`file-input-hidden`,onChange:B},null,544),x(p(`textarea`,{ref_key:`textareaRef`,ref:d,"onUpdate:modelValue":h[0]||=e=>l.value=e,class:`input-textarea`,placeholder:k(o)(`chat.inputPlaceholder`),rows:`1`,onKeydown:Y,onCompositionstart:K,onCompositionend:q,onInput:te,onPaste:V},null,40,bt),[[T,l.value]]),p(`div`,xt,[k(a).isStreaming?(c(),r(k(Q),{key:0,size:`small`,type:`error`,onClick:h[1]||=e=>k(a).stopStreaming()},{default:e(()=>[t(v(k(o)(`chat.stop`)),1)]),_:1})):n(``,!0),D(k(Q),{size:`small`,type:`primary`,disabled:!C.value||k(a).isStreaming,onClick:G},{icon:e(()=>[...h[5]||=[p(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[p(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`}),p(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`})],-1)]]),default:e(()=>[t(` `+v(k(o)(`chat.send`)),1)]),_:1},8,[`disabled`])])],34)]))}}),[[`__scopeId`,`data-v-86c00ae3`]]);async function wt(e={}){let t=new URLSearchParams;return e.humanOnly===!1&&t.set(`humanOnly`,`false`),e.source&&t.set(`source`,e.source),e.limit!=null&&t.set(`limit`,String(e.limit)),(await j(`/api/hermes/sessions/conversations${t.toString()?`?${t.toString()}`:``}`)).sessions}async function Tt(e,t={}){let n=new URLSearchParams;t.humanOnly===!1&&n.set(`humanOnly`,`false`),t.source&&n.set(`source`,t.source);let r=n.toString()?`?${n.toString()}`:``;return j(`/api/hermes/sessions/conversations/${encodeURIComponent(e)}/messages${r}`)}var Et={class:`conversation-monitor`},Dt={class:`conversation-monitor__sidebar`},Ot={key:0,class:`conversation-monitor__empty`},kt={key:1,class:`conversation-monitor__empty`},At=[`aria-pressed`,`onClick`],jt={class:`conversation-monitor__session-title-row`},Mt={class:`conversation-monitor__session-title`},Nt={key:0,class:`conversation-monitor__session-live`},Pt={class:`conversation-monitor__session-meta`},Ft={key:0,class:`conversation-monitor__session-preview`},It={class:`conversation-monitor__detail`},Lt={key:0,class:`conversation-monitor__detail-header`},Rt={class:`conversation-monitor__detail-title`},zt={class:`conversation-monitor__detail-meta`},Bt={key:1,class:`conversation-monitor__empty conversation-monitor__empty--error`},Vt={key:2,class:`conversation-monitor__empty`},Ht={key:3,class:`conversation-monitor__empty`},Ut={key:4,class:`conversation-monitor__messages`},Wt={class:`conversation-monitor__message-meta`},Gt={class:`conversation-monitor__message-content`},Kt=15e3,qt=L(l({__name:`ConversationMonitorPane`,props:{humanOnly:{type:Boolean}},setup(e){let t=e,{t:r}=I(),a=O([]),o=O(null),l=O(null),d=O(!1),f=O(!1),m=O(``),_=null,b=0,x=0,S=P(()=>a.value.find(e=>e.id===o.value)||null);function C(e){return r(e===`user`?`chat.monitorRoleUser`:`chat.monitorRoleAssistant`)}function w(e){return r(`chat.linkedSessions`,{count:e})}function T(){b+=1,x+=1}async function D(e=!1){let n=++b;e||(d.value=!0,m.value=``);try{let e=await wt({humanOnly:t.humanOnly});if(n!==b)return;if(a.value=e,!e.length){o.value=null,l.value=null;return}(!o.value||!e.some(e=>e.id===o.value))&&(o.value=e[0].id)}catch(t){if(n!==b||e)return;m.value=t?.message||String(t),a.value=[],o.value=null,l.value=null}finally{!e&&n===b&&(d.value=!1)}}async function A(e,n=!1){let r=++x;if(!e){l.value=null;return}let i=t.humanOnly;n||(f.value=!0,m.value=``);try{let n=await Tt(e,{humanOnly:i});if(r!==x||e!==o.value||i!==t.humanOnly)return;l.value=n}catch(e){if(r!==x||n)return;m.value=e?.message||String(e),l.value=null}finally{!n&&r===x&&(f.value=!1)}}return g(o,async e=>{await A(e,!1)}),g(()=>t.humanOnly,async()=>{T(),o.value=null,l.value=null,await D(!1)}),h(async()=>{await D(!1),_=setInterval(async()=>{await D(!0),o.value&&await A(o.value,!0)},Kt)}),i(()=>{T(),_&&clearInterval(_)}),(e,t)=>(c(),u(`div`,Et,[p(`aside`,Dt,[d.value&&a.value.length===0?(c(),u(`div`,Ot,v(k(r)(`common.loading`)),1)):a.value.length===0?(c(),u(`div`,kt,v(k(r)(`chat.noSessions`)),1)):n(``,!0),(c(!0),u(y,null,s(a.value,e=>(c(),u(`button`,{key:e.id,class:E([`conversation-monitor__session`,{active:e.id===o.value}]),"aria-pressed":e.id===o.value,onClick:t=>o.value=e.id},[p(`div`,jt,[p(`span`,Mt,v(e.title||e.preview||e.id),1),e.is_active?(c(),u(`span`,Nt,v(k(r)(`chat.recentBadge`)),1)):n(``,!0)]),p(`div`,Pt,v(k(ct)(e.source))+` · `+v(k(ut)(e.last_active)),1),e.preview?(c(),u(`div`,Ft,v(e.preview),1)):n(``,!0)],10,At))),128))]),p(`section`,It,[S.value?(c(),u(`header`,Lt,[p(`div`,Rt,v(S.value.title||S.value.preview||S.value.id),1),p(`div`,zt,[p(`span`,null,v(k(ct)(S.value.source)),1),t[0]||=p(`span`,null,`·`,-1),p(`span`,null,v(S.value.model),1),t[1]||=p(`span`,null,`·`,-1),p(`span`,null,v(w(S.value.thread_session_count)),1)])])):n(``,!0),m.value?(c(),u(`div`,Bt,v(m.value),1)):f.value&&!l.value?(c(),u(`div`,Vt,v(k(r)(`common.loading`)),1)):!l.value||l.value.messages.length===0?(c(),u(`div`,Ht,v(k(r)(`chat.noVisibleMessages`)),1)):(c(),u(`div`,Ut,[(c(!0),u(y,null,s(l.value.messages,e=>(c(),u(`article`,{key:`${e.session_id}-${e.id}`,class:E([`conversation-monitor__message`,`role-${e.role}`])},[p(`div`,Wt,v(C(e.role))+` · `+v(k(ut)(e.timestamp)),1),p(`div`,Gt,v(e.content),1)],2))),128))]))])]))}}),[[`__scopeId`,`data-v-be298d0d`]]),Jt=[`id`],Yt={key:1,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-icon`},Xt={class:`tool-name`},Zt={key:2,class:`tool-preview`},Qt={key:3,class:`tool-spinner`},$t={key:4,class:`tool-error-badge`},en={key:0,class:`tool-detail-section`,"data-copy-source":`tool-args`},tn={class:`tool-detail-label`},nn=[`innerHTML`],rn={key:1,class:`tool-detail-section`,"data-copy-source":`tool-result`},an={class:`tool-detail-label`},on=[`innerHTML`],sn={key:1,class:`msg-body`},cn={key:0,src:R,alt:`Hermes`,class:`msg-avatar`},ln={key:0,class:`msg-attachments`},un=[`src`,`alt`],dn={key:1,class:`msg-attachment-file`},fn={class:`att-name`},pn={class:`att-size`},mn={key:2,class:`streaming-dots`},hn={class:`message-time`},$=2e3,gn=L(l({__name:`MessageItem`,props:{message:{},highlight:{type:Boolean}},setup(e){let t=e,{t:i}=I(),a=P(()=>t.message.role===`system`),o=O(!1),l=P(()=>new Date(t.message.timestamp).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}));function d(e){return e.startsWith(`image/`)}function f(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}function m(e){if(!e)return{full:``,display:``};try{let t=JSON.stringify(JSON.parse(e),null,2);return{full:t,display:t.length>$?t.slice(0,$)+`
126
- `+i(`chat.truncated`):t,language:`json`}}catch{return{full:e,display:e.length>$?e.slice(0,$)+`
127
- `+i(`chat.truncated`):e}}}function h(e,t){return Pe(e,t,i(`common.copy`),{maxHighlightLength:$})}async function g(e){let t=e.target;if(!(t instanceof HTMLElement))return;let n=t.closest(`[data-copy-code="true"]`);if(!n)return;e.preventDefault();let r=n.closest(`[data-copy-source]`)?.dataset.copySource;if(r===`tool-args`&&C.value){await Fe(C.value);return}if(r===`tool-result`&&T.value){await Fe(T.value);return}await Ie(e)}let _=P(()=>(t.message.attachments?.length??0)>0),b=P(()=>!!(t.message.toolArgs||t.message.toolResult)),x=P(()=>m(t.message.toolArgs)),S=P(()=>m(t.message.toolResult)),C=P(()=>x.value.full),w=P(()=>x.value.display),T=P(()=>S.value.full),D=P(()=>S.value.display),A=P(()=>w.value?h(w.value,x.value.language):``),j=P(()=>D.value?h(D.value,S.value.language):``);return(t,m)=>(c(),u(`div`,{class:E([`message`,[e.message.role,{highlight:e.highlight}]]),id:`message-${e.message.id}`},[e.message.role===`tool`?(c(),u(y,{key:0},[p(`div`,{class:E([`tool-line`,{expandable:b.value}]),onClick:m[0]||=e=>b.value&&(o.value=!o.value)},[b.value?(c(),u(`svg`,{key:0,width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:E([`tool-chevron`,{rotated:o.value}])},[...m[1]||=[p(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)):(c(),u(`svg`,Yt,[...m[2]||=[p(`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z`},null,-1)]])),p(`span`,Xt,v(e.message.toolName),1),e.message.toolPreview&&!o.value?(c(),u(`span`,Zt,v(e.message.toolPreview),1)):n(``,!0),e.message.toolStatus===`running`?(c(),u(`span`,Qt)):n(``,!0),e.message.toolStatus===`error`?(c(),u(`span`,$t,v(k(i)(`chat.error`)),1)):n(``,!0)],2),o.value&&b.value?(c(),u(`div`,{key:0,class:`tool-details`,onClick:g},[w.value?(c(),u(`div`,en,[p(`div`,tn,v(k(i)(`chat.arguments`)),1),p(`div`,{class:`tool-detail-code-block`,innerHTML:A.value},null,8,nn)])):n(``,!0),D.value?(c(),u(`div`,rn,[p(`div`,an,v(k(i)(`chat.result`)),1),p(`div`,{class:`tool-detail-code-block`,innerHTML:j.value},null,8,on)])):n(``,!0)])):n(``,!0)],64)):(c(),u(`div`,sn,[e.message.role===`assistant`?(c(),u(`img`,cn)):n(``,!0),p(`div`,{class:E([`msg-content`,e.message.role])},[p(`div`,{class:E([`message-bubble`,{system:a.value}])},[_.value?(c(),u(`div`,ln,[(c(!0),u(y,null,s(e.message.attachments,e=>(c(),u(`div`,{key:e.id,class:E([`msg-attachment`,{image:d(e.type)}])},[d(e.type)&&e.url?(c(),u(`img`,{key:0,src:e.url,alt:e.name,class:`msg-attachment-thumb`},null,8,un)):(c(),u(`div`,dn,[m[3]||=p(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[p(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),p(`polyline`,{points:`14 2 14 8 20 8`})],-1),p(`span`,fn,v(e.name),1),p(`span`,pn,v(f(e.size)),1)]))],2))),128))])):n(``,!0),e.message.content?(c(),r(Le,{key:1,content:e.message.content},null,8,[`content`])):n(``,!0),e.message.isStreaming&&!e.message.content?(c(),u(`span`,mn,[...m[4]||=[p(`span`,null,null,-1),p(`span`,null,null,-1),p(`span`,null,null,-1)]])):n(``,!0)],2),p(`div`,hn,v(l.value),1)],2)]))],10,Jt))}}),[[`__scopeId`,`data-v-7ea3d568`]]),_n=`/assets/thinking-light-BjeGd2gJ.mp4`,vn=`/assets/thinking-dark-yYkYRZLs.mp4`,yn={key:0,class:`empty-state`},bn={key:0,class:`streaming-indicator`},xn=[`src`],Sn={key:0,class:`tool-calls-panel`},Cn={class:`tool-call-name`},wn={key:0,class:`tool-call-preview`},Tn={key:1,class:`tool-call-spinner`},En={key:2,class:`tool-call-error`},Dn=L(l({__name:`MessageList`,setup(t){let i=we(),{t:a}=I(),{isDark:o}=Oe(),l=O(),d=P(()=>i.messages.filter(e=>e.role!==`tool`)),f=P(()=>{let e=i.messages,t=-1;for(let n=e.length-1;n>=0;n--)if(e[n].role===`user`){t=n;break}return[...e.filter((e,n)=>e.role===`tool`&&n>t)].reverse()});function m(e=200){let t=l.value;return t?t.scrollHeight-t.scrollTop-t.clientHeight<e:!0}function h(){F(()=>{l.value&&(l.value.scrollTop=l.value.scrollHeight)})}function _(e){F(()=>{let t=document.getElementById(`message-${e}`);t&&t.scrollIntoView({block:`center`})})}return g(()=>i.activeSessionId,e=>{if(e){if(i.focusMessageId){_(i.focusMessageId);return}h()}},{immediate:!0}),g(()=>i.focusMessageId,e=>{e&&_(e)}),g(()=>i.isRunActive,e=>{e&&h()}),g(()=>i.messages[i.messages.length-1]?.content,()=>{if(i.focusMessageId){_(i.focusMessageId);return}if(!i.isStreaming){h();return}m()&&h()}),g(f,()=>{if(i.focusMessageId){_(i.focusMessageId);return}if(!i.isStreaming){h();return}m()&&h()}),(t,m)=>(c(),u(`div`,{ref_key:`listRef`,ref:l,class:`message-list`},[k(i).messages.length===0?(c(),u(`div`,yn,[m[0]||=p(`img`,{src:`/logo.png`,alt:`Hermes`,class:`empty-logo`},null,-1),p(`p`,null,v(k(a)(`chat.emptyState`)),1)])):n(``,!0),(c(!0),u(y,null,s(d.value,e=>(c(),r(gn,{key:e.id,message:e,highlight:k(i).focusMessageId===e.id},null,8,[`message`,`highlight`]))),128)),D(S,{name:`fade`},{default:e(()=>[k(i).isRunActive?(c(),u(`div`,bn,[p(`video`,{src:k(o)?k(vn):k(_n),autoplay:``,loop:``,muted:``,playsinline:``,class:`thinking-video`},null,8,xn),f.value.length>0?(c(),u(`div`,Sn,[(c(!0),u(y,null,s(f.value,e=>(c(),u(`div`,{key:e.id,class:`tool-call-item`},[m[1]||=p(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-call-icon`},[p(`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z`})],-1),p(`span`,Cn,v(e.toolName),1),e.toolPreview?(c(),u(`span`,wn,v(e.toolPreview),1)):n(``,!0),e.toolStatus===`running`?(c(),u(`span`,Tn)):n(``,!0),e.toolStatus===`error`?(c(),u(`span`,En,v(k(a)(`chat.error`)),1)):n(``,!0)]))),128))])):n(``,!0)])):n(``,!0)]),_:1})],512))}}),[[`__scopeId`,`data-v-aa66438c`]]),On=[`aria-current`],kn={class:`session-item-content`},An={class:`session-item-title-row`},jn={key:0,class:`session-item-active-indicator`,"aria-hidden":`true`},Mn={key:1,class:`session-item-pin`,"aria-hidden":`true`},Nn={class:`session-item-title`},Pn={class:`session-item-meta`},Fn={key:0,class:`session-item-model`},In={class:`session-item-time`},Ln=l({__name:`SessionListItem`,props:{session:{},active:{type:Boolean},live:{type:Boolean},pinned:{type:Boolean},canDelete:{type:Boolean}},emits:[`select`,`contextmenu`,`delete`],setup(i,{emit:a}){let o=a,{t:s}=I();return(a,l)=>(c(),u(`button`,{class:E([`session-item`,{active:i.active,live:i.live}]),"aria-current":i.active?`page`:void 0,onClick:l[2]||=e=>o(`select`),onContextmenu:l[3]||=e=>o(`contextmenu`,e)},[p(`div`,kn,[p(`span`,An,[i.live?(c(),u(`span`,jn,[...l[4]||=[p(`svg`,{class:`session-item-active-spinner`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`},[p(`circle`,{cx:`12`,cy:`12`,r:`8`,opacity:`0.2`}),p(`path`,{d:`M20 12a8 8 0 0 0-8-8`})],-1)]])):n(``,!0),i.pinned?(c(),u(`span`,Mn,[...l[5]||=[p(`svg`,{width:`11`,height:`11`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[p(`path`,{d:`M12 17v5`}),p(`path`,{d:`M5 8l14 0`}),p(`path`,{d:`M8 3l8 0 0 5 3 5-14 0 3-5z`})],-1)]])):n(``,!0),p(`span`,Nn,v(i.session.title),1)]),p(`span`,Pn,[i.session.model?(c(),u(`span`,Fn,v(i.session.model),1)):n(``,!0),p(`span`,In,v(k(lt)(i.session.createdAt)),1)])]),i.canDelete?(c(),r(k(De),{key:0,onPositiveClick:l[1]||=e=>o(`delete`)},{trigger:e(()=>[p(`button`,{class:`session-item-delete`,onClick:l[0]||=N(()=>{},[`stop`])},[...l[6]||=[p(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[p(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),p(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]])]),default:e(()=>[t(` `+v(k(s)(`chat.deleteSession`)),1)]),_:1})):n(``,!0)],42,On))}}),Rn={class:`chat-panel`},zn={class:`session-list-header`},Bn={key:0,class:`session-list-title`},Vn={class:`session-list-actions`},Hn={key:0,class:`session-items`},Un={key:0,class:`session-loading`},Wn={key:1,class:`session-empty`},Gn={class:`session-group-header session-group-header--static`},Kn={class:`session-group-label`},qn={class:`session-group-count`},Jn=[`onClick`],Yn={class:`session-group-label`},Xn={class:`session-group-count`},Zn={class:`chat-main`},Qn={class:`chat-header`},$n={class:`header-left`},er={class:`header-session-title`},tr={key:1,class:`source-badge`},nr={class:`header-actions`},rr={class:`chat-mode-toggle`},ir=L(l({__name:`ChatPanel`,setup(a){let o=we(),l=Ne(),d=Ee(),{t:f}=I(),m=O(`chat`),b=O(typeof window>`u`||!window.matchMedia(`(max-width: 768px)`).matches),x=O(b.value),S=null,C=O(!1);function w(e){o.switchSession(e),S?.matches&&(b.value=!1)}function T(e){e!==m.value&&(e===`live`?(x.value=b.value,b.value=!1):b.value=S?.matches?!1:x.value,m.value=e)}function A(e){C.value=e.matches,e.matches&&b.value&&(b.value=!1)}h(()=>{S=window.matchMedia(`(max-width: 768px)`),A(S),S.addEventListener(`change`,A)}),i(()=>{S?.removeEventListener(`change`,A)});let j=O(!1),M=O(``),N=O(null),L=O(null),R=O(new Set(JSON.parse(localStorage.getItem(`hermes_collapsed_groups`)||`[]`)));function z(e){return e===`api_server`?-1:e===`cron`?999:0}function B(e){return[...e].sort((e,t)=>{let n=o.isSessionLive(e.id);return n===o.isSessionLive(t.id)?(t.updatedAt||0)-(e.updatedAt||0):n?-1:1})}let V=P(()=>B(o.sessions.filter(e=>l.isPinned(e.id)))),H=P(()=>{let e=new Map;for(let t of o.sessions){if(l.isPinned(t.id))continue;let n=t.source||``;e.has(n)||e.set(n,[]),e.get(n).push(t)}return[...e.keys()].sort((t,n)=>{let r=e.get(t)?.some(e=>o.isSessionLive(e.id))||!1;if(r!==(e.get(n)?.some(e=>o.isSessionLive(e.id))||!1))return r?-1:1;let i=z(t),a=z(n);return i===a?t.localeCompare(n):i-a}).map(t=>({source:t,label:t?ct(t):f(`chat.other`),sessions:B(e.get(t))}))});function U(e){if(!R.value.has(e))R.value=new Set([...R.value,e]);else{R.value=new Set(H.value.map(e=>e.source).filter(t=>t!==e));let t=H.value.find(t=>t.source===e);t?.sessions.length&&o.switchSession(t.sessions[0].id)}localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...R.value]))}g(H,e=>{if(localStorage.getItem(`hermes_collapsed_groups`)!==null){let e=o.activeSession?.source;e&&R.value.has(e)&&(R.value=new Set([...R.value].filter(t=>t!==e)),localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...R.value])));return}R.value=new Set(e.slice(1).map(e=>e.source)),localStorage.setItem(`hermes_collapsed_groups`,JSON.stringify([...R.value]))},{once:!0}),g(()=>[o.sessionsLoaded,...o.sessions.map(e=>e.id)],e=>{let t=e.slice(1);!e[0]||t.length===0||l.pruneMissingSessions(t)},{immediate:!0});let W=P(()=>o.activeSession?.title||f(`chat.newChat`)),ee=P(()=>m.value===`live`?f(`chat.liveSessions`):W.value),G=P(()=>m.value===`chat`&&o.activeSession?.source||``);function K(){o.newChat()}function q(e){let t=e||o.activeSessionId;t&&(navigator.clipboard.writeText(t),d.success(f(`common.copied`)))}function J(e){l.removePinned(e),o.deleteSession(e),d.success(f(`chat.sessionDeleted`))}let Y=O(null),te=P(()=>Y.value?l.isPinned(Y.value):!1),ne=P(()=>[{label:f(te.value?`chat.unpin`:`chat.pin`),key:`pin`},{label:f(`chat.rename`),key:`rename`},{label:f(`chat.copySessionId`),key:`copy-id`}]);function re(e,t){e.preventDefault(),Y.value=t,X.value=!0,ie.value=e.clientX,ae.value=e.clientY}let X=O(!1),ie=O(0),ae=O(0);function Z(e){if(X.value=!1,Y.value){if(e===`pin`){l.togglePinned(Y.value);return}if(e===`copy-id`)q(Y.value);else if(e===`rename`){let e=o.sessions.find(e=>e.id===Y.value);N.value=Y.value,M.value=e?.title||``,j.value=!0,F(()=>{L.value?.focus()})}}}function oe(){X.value=!1}async function se(){if(!(!N.value||!M.value.trim())){if(await Me(N.value,M.value.trim())){let e=o.sessions.find(e=>e.id===N.value);e&&(e.title=M.value.trim()),o.activeSession?.id===N.value&&(o.activeSession.title=M.value.trim()),d.success(f(`chat.renamed`))}else d.error(f(`chat.renameFailed`));j.value=!1}}return(i,a)=>(c(),u(`div`,Rn,[m.value===`chat`?(c(),u(`div`,{key:0,class:E([`session-backdrop`,{active:b.value}]),onClick:a[0]||=e=>b.value=!1},null,2)):n(``,!0),m.value===`chat`?(c(),u(`aside`,{key:1,class:E([`session-list`,{collapsed:!b.value}])},[p(`div`,zn,[b.value?(c(),u(`span`,Bn,v(k(f)(`chat.sessions`)),1)):n(``,!0),p(`div`,Vn,[p(`button`,{class:`session-close-btn`,onClick:a[1]||=e=>b.value=!1},[...a[8]||=[p(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[p(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),p(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]]),D(k(Q),{quaternary:``,size:`tiny`,onClick:K,circle:``},{icon:e(()=>[...a[9]||=[p(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[p(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),p(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),_:1})])]),b.value?(c(),u(`div`,Hn,[k(o).isLoadingSessions&&k(o).sessions.length===0?(c(),u(`div`,Un,v(k(f)(`common.loading`)),1)):k(o).sessions.length===0?(c(),u(`div`,Wn,v(k(f)(`chat.noSessions`)),1)):n(``,!0),V.value.length>0?(c(),u(y,{key:2},[p(`div`,Gn,[p(`span`,Kn,v(k(f)(`chat.pinned`)),1),p(`span`,qn,v(V.value.length),1)]),(c(!0),u(y,null,s(V.value,e=>(c(),r(Ln,{key:`pinned-${e.id}`,session:e,active:e.id===k(o).activeSessionId,live:k(o).isSessionLive(e.id),pinned:!0,"can-delete":e.id!==k(o).activeSessionId||k(o).sessions.length>1,onSelect:t=>w(e.id),onContextmenu:t=>re(t,e.id),onDelete:t=>J(e.id)},null,8,[`session`,`active`,`live`,`can-delete`,`onSelect`,`onContextmenu`,`onDelete`]))),128))],64)):n(``,!0),(c(!0),u(y,null,s(H.value,e=>(c(),u(y,{key:e.source},[p(`div`,{class:`session-group-header`,onClick:t=>U(e.source)},[(c(),u(`svg`,{width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,class:E([`group-chevron`,{collapsed:R.value.has(e.source)}])},[...a[10]||=[p(`polyline`,{points:`9 18 15 12 9 6`},null,-1)]],2)),p(`span`,Yn,v(e.label),1),p(`span`,Xn,v(e.sessions.length),1)],8,Jn),R.value.has(e.source)?n(``,!0):(c(!0),u(y,{key:0},s(e.sessions,e=>(c(),r(Ln,{key:e.id,session:e,active:e.id===k(o).activeSessionId,live:k(o).isSessionLive(e.id),pinned:!1,"can-delete":e.id!==k(o).activeSessionId||k(o).sessions.length>1,onSelect:t=>w(e.id),onContextmenu:t=>re(t,e.id),onDelete:t=>J(e.id)},null,8,[`session`,`active`,`live`,`can-delete`,`onSelect`,`onContextmenu`,`onDelete`]))),128))],64))),128))])):n(``,!0)],2)):n(``,!0),D(k(ot),{placement:`bottom-start`,trigger:`manual`,x:ie.value,y:ae.value,options:ne.value,show:X.value,onSelect:Z,onClickoutside:oe},null,8,[`x`,`y`,`options`,`show`]),D(k(be),{show:j.value,"onUpdate:show":a[3]||=e=>j.value=e,preset:`dialog`,title:k(f)(`chat.renameSession`),"positive-text":k(f)(`common.ok`),"negative-text":k(f)(`common.cancel`),onPositiveClick:se},{default:e(()=>[D(k(xe),{ref_key:`renameInputRef`,ref:L,value:M.value,"onUpdate:value":a[2]||=e=>M.value=e,placeholder:k(f)(`chat.enterNewTitle`),onKeydown:_(se,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`show`,`title`,`positive-text`,`negative-text`]),p(`div`,Zn,[p(`header`,Qn,[p(`div`,$n,[m.value===`chat`?(c(),r(k(Q),{key:0,quaternary:``,size:`small`,onClick:a[4]||=e=>b.value=!b.value,circle:``},{icon:e(()=>[...a[11]||=[p(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[p(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`}),p(`rect`,{x:`14`,y:`3`,width:`7`,height:`7`}),p(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`}),p(`rect`,{x:`14`,y:`14`,width:`7`,height:`7`})],-1)]]),_:1})):n(``,!0),p(`span`,er,v(ee.value),1),G.value?(c(),u(`span`,tr,v(k(ct)(G.value)),1)):n(``,!0)]),p(`div`,nr,[p(`div`,rr,[D(k(Q),{size:`small`,type:m.value===`chat`?`primary`:`default`,"aria-pressed":m.value===`chat`,onClick:a[5]||=e=>T(`chat`)},{default:e(()=>[t(v(k(f)(`chat.chatMode`)),1)]),_:1},8,[`type`,`aria-pressed`]),D(k(Q),{size:`small`,type:m.value===`live`?`primary`:`default`,"aria-pressed":m.value===`live`,onClick:a[6]||=e=>T(`live`)},{default:e(()=>[t(v(k(f)(`chat.liveMode`)),1)]),_:1},8,[`type`,`aria-pressed`])]),m.value===`chat`?(c(),u(y,{key:0},[D(k(Te),{trigger:`hover`},{trigger:e(()=>[D(k(Q),{quaternary:``,size:`small`,onClick:a[7]||=e=>q(),circle:``},{icon:e(()=>[...a[12]||=[p(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[p(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`,ry:`2`}),p(`path`,{d:`M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1`})],-1)]]),_:1})]),default:e(()=>[t(` `+v(k(f)(`chat.copySessionId`)),1)]),_:1}),D(k(Q),{size:`small`,circle:C.value,onClick:K},{icon:e(()=>[...a[13]||=[p(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[p(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),p(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:e(()=>[C.value?n(``,!0):(c(),u(y,{key:0},[t(v(k(f)(`chat.newChat`)),1)],64))]),_:1},8,[`circle`])],64)):n(``,!0)])]),m.value===`chat`?(c(),u(y,{key:0},[D(Dn),D(Ct)],64)):(c(),r(qt,{key:1,"human-only":k(l).humanOnly},null,8,[`human-only`]))])]))}}),[[`__scopeId`,`data-v-a80a58ac`]]),ar={class:`chat-view`},or=L(l({__name:`ChatView`,setup(e){let t=ke(),n=we(),r=Ae();return h(async()=>{t.loadModels(),await r.fetchProfiles(),n.loadSessions()}),(e,t)=>(c(),u(`div`,ar,[D(ir)]))}}),[[`__scopeId`,`data-v-6dae3628`]]);export{or as default};
@@ -1 +0,0 @@
1
- import{$ as e,A as t,D as n,J as r,K as i,M as a,O as o,T as s,W as c,_t as l,b as u,j as d,lt as f,mt as p,s as m}from"./router-kR4kqS2l.js";import{n as h}from"./pinia-C8BDM-Fc.js";import{r as g,t as _}from"./_plugin-vue_export-helper-Bl_Pm_OI.js";import{t as v}from"./Button-vKfgky-Y.js";import{t as y}from"./Tag-BWD1u63m.js";import{t as b}from"./use-message-sSsrvqld.js";import{t as x}from"./Spin-DKwUVt1F.js";async function S(){return(await m(`/api/hermes/gateways`)).gateways}async function C(e){return(await m(`/api/hermes/gateways/${e}/start`,{method:`POST`})).gateway}async function w(e){await m(`/api/hermes/gateways/${e}/stop`,{method:`POST`})}var T=h(`gateways`,()=>{let e=f([]),t=f(!1);async function n(){t.value=!0;try{let t=await S();e.value=Array.isArray(t)?t:Object.values(t||{})}finally{t.value=!1}}async function r(n){t.value=!0;try{let t=await C(n),r=e.value.findIndex(e=>e.profile===n);r>=0?e.value[r]=t:e.value.push(t)}finally{t.value=!1}}async function i(n){t.value=!0;try{await w(n);let t=e.value.find(e=>e.profile===n);t&&(t.running=!1,t.pid=void 0)}finally{t.value=!1}}return{gateways:e,loading:t,fetchStatus:n,start:r,stop:i}}),E={class:`gateways-view`},D={class:`page-header`},O={class:`header-title`},k={class:`gateways-content`},A={key:0,class:`empty-state`},j={key:1,class:`gateway-list`},M={class:`gateway-info`},N={class:`gateway-name`},P={class:`gateway-meta`},F={class:`meta-item`},I={key:0,class:`meta-item`},L={class:`gateway-actions`},R=_(a({__name:`GatewaysView`,setup(a){let{t:f}=g(),m=b(),h=T();c(()=>{h.fetchStatus()});async function _(e,t){try{t?(await h.stop(e),m.success(`${f(`gateways.stopped`)}: ${e}`)):(await h.start(e),m.success(`${f(`gateways.started`)}: ${e}`))}catch(e){m.error(e.message)}}return(a,c)=>(i(),o(`div`,E,[s(`header`,D,[s(`h2`,O,l(p(f)(`gateways.title`)),1)]),s(`div`,k,[d(p(x),{show:p(h).loading,size:`large`},{default:e(()=>[p(h).gateways.length===0?(i(),o(`div`,A,l(p(f)(`common.noData`)),1)):(i(),o(`div`,j,[(i(!0),o(u,null,r(p(h).gateways,r=>(i(),o(`div`,{key:r.profile,class:`gateway-card`},[s(`div`,M,[s(`div`,N,l(r.profile),1),s(`div`,P,[s(`span`,F,l(r.host)+`:`+l(r.port),1),r.pid?(i(),o(`span`,I,`PID: `+l(r.pid),1)):n(``,!0)])]),s(`div`,L,[d(p(y),{type:r.running?`success`:`default`,size:`small`,round:``},{default:e(()=>[t(l(r.running?p(f)(`gateways.running`):p(f)(`gateways.stopped`)),1)]),_:2},1032,[`type`]),d(p(v),{size:`small`,type:r.running?`warning`:`primary`,round:``,onClick:e=>_(r.profile,r.running)},{default:e(()=>[t(l(r.running?p(f)(`common.stop`):p(f)(`common.start`)),1)]),_:2},1032,[`type`,`onClick`])])]))),128))]))]),_:1},8,[`show`])])]))}}),[[`__scopeId`,`data-v-d70aa8a3`]]);export{R as default};
@@ -1,234 +0,0 @@
1
- import{I as e,M as t,N as n,P as r,Q as i,W as a,Z as o,b as s,ft as c,lt as l,q as u,w as d,z as f}from"./router-kR4kqS2l.js";import{$ as p,B as m,G as h,K as g,R as _,W as v,c as y,ct as b,d as ee,dt as x,ft as S,l as C,n as w,nt as T,pt as E,q as D,s as O,st as k,t as te,tt as A,ut as j,z as ne}from"./browser-DlPqZ-4M.js";import{d as re,f as M,i as N,l as P,n as F,o as I,p as L,s as ie,t as R}from"./Suffix-C1Mw6UwH.js";import{c as ae,r as z}from"./fade-in.cssr-D0suZaLL.js";var B=t({name:`Eye`,render(){return r(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},r(`path`,{d:`M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z`,fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`32`}),r(`circle`,{cx:`256`,cy:`256`,r:`80`,fill:`none`,stroke:`currentColor`,"stroke-miterlimit":`10`,"stroke-width":`32`}))}}),V=t({name:`EyeOff`,render(){return r(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},r(`path`,{d:`M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z`,fill:`currentColor`}),r(`path`,{d:`M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z`,fill:`currentColor`}),r(`path`,{d:`M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z`,fill:`currentColor`}),r(`path`,{d:`M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z`,fill:`currentColor`}),r(`path`,{d:`M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z`,fill:`currentColor`}))}}),H={paddingTiny:`0 8px`,paddingSmall:`0 10px`,paddingMedium:`0 12px`,paddingLarge:`0 14px`,clearSize:`16px`};function U(e){let{textColor2:t,textColor3:n,textColorDisabled:r,primaryColor:i,primaryColorHover:a,inputColor:o,inputColorDisabled:s,borderColor:c,warningColor:l,warningColorHover:u,errorColor:d,errorColorHover:f,borderRadius:p,lineHeight:m,fontSizeTiny:h,fontSizeSmall:g,fontSizeMedium:_,fontSizeLarge:v,heightTiny:y,heightSmall:b,heightMedium:ee,heightLarge:x,actionColor:S,clearColor:C,clearColorHover:w,clearColorPressed:E,placeholderColor:D,placeholderColorDisabled:O,iconColor:k,iconColorDisabled:te,iconColorHover:A,iconColorPressed:j,fontWeight:ne}=e;return Object.assign(Object.assign({},H),{fontWeight:ne,countTextColorDisabled:r,countTextColor:n,heightTiny:y,heightSmall:b,heightMedium:ee,heightLarge:x,fontSizeTiny:h,fontSizeSmall:g,fontSizeMedium:_,fontSizeLarge:v,lineHeight:m,lineHeightTextarea:m,borderRadius:p,iconSize:`16px`,groupLabelColor:S,groupLabelTextColor:t,textColor:t,textColorDisabled:r,textDecorationColor:t,caretColor:i,placeholderColor:D,placeholderColorDisabled:O,color:o,colorDisabled:s,colorFocus:o,groupLabelBorder:`1px solid ${c}`,border:`1px solid ${c}`,borderHover:`1px solid ${a}`,borderDisabled:`1px solid ${c}`,borderFocus:`1px solid ${a}`,boxShadowFocus:`0 0 0 2px ${T(i,{alpha:.2})}`,loadingColor:i,loadingColorWarning:l,borderWarning:`1px solid ${l}`,borderHoverWarning:`1px solid ${u}`,colorFocusWarning:o,borderFocusWarning:`1px solid ${u}`,boxShadowFocusWarning:`0 0 0 2px ${T(l,{alpha:.2})}`,caretColorWarning:l,loadingColorError:d,borderError:`1px solid ${d}`,borderHoverError:`1px solid ${f}`,colorFocusError:o,borderFocusError:`1px solid ${f}`,boxShadowFocusError:`0 0 0 2px ${T(d,{alpha:.2})}`,caretColorError:d,clearColor:C,clearColorHover:w,clearColorPressed:E,iconColor:k,iconColorDisabled:te,iconColorHover:A,iconColorPressed:j,suffixTextColor:t})}var W=O({name:`Input`,common:w,peers:{Scrollbar:N},self:U}),oe=p(`n-input`),se=b(`input`,`
2
- max-width: 100%;
3
- cursor: text;
4
- line-height: 1.5;
5
- z-index: auto;
6
- outline: none;
7
- box-sizing: border-box;
8
- position: relative;
9
- display: inline-flex;
10
- border-radius: var(--n-border-radius);
11
- background-color: var(--n-color);
12
- transition: background-color .3s var(--n-bezier);
13
- font-size: var(--n-font-size);
14
- font-weight: var(--n-font-weight);
15
- --n-padding-vertical: calc((var(--n-height) - 1.5 * var(--n-font-size)) / 2);
16
- `,[j(`input, textarea`,`
17
- overflow: hidden;
18
- flex-grow: 1;
19
- position: relative;
20
- `),j(`input-el, textarea-el, input-mirror, textarea-mirror, separator, placeholder`,`
21
- box-sizing: border-box;
22
- font-size: inherit;
23
- line-height: 1.5;
24
- font-family: inherit;
25
- border: none;
26
- outline: none;
27
- background-color: #0000;
28
- text-align: inherit;
29
- transition:
30
- -webkit-text-fill-color .3s var(--n-bezier),
31
- caret-color .3s var(--n-bezier),
32
- color .3s var(--n-bezier),
33
- text-decoration-color .3s var(--n-bezier);
34
- `),j(`input-el, textarea-el`,`
35
- -webkit-appearance: none;
36
- scrollbar-width: none;
37
- width: 100%;
38
- min-width: 0;
39
- text-decoration-color: var(--n-text-decoration-color);
40
- color: var(--n-text-color);
41
- caret-color: var(--n-caret-color);
42
- background-color: transparent;
43
- `,[k(`&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb`,`
44
- width: 0;
45
- height: 0;
46
- display: none;
47
- `),k(`&::placeholder`,`
48
- color: #0000;
49
- -webkit-text-fill-color: transparent !important;
50
- `),k(`&:-webkit-autofill ~`,[j(`placeholder`,`display: none;`)])]),x(`round`,[S(`textarea`,`border-radius: calc(var(--n-height) / 2);`)]),j(`placeholder`,`
51
- pointer-events: none;
52
- position: absolute;
53
- left: 0;
54
- right: 0;
55
- top: 0;
56
- bottom: 0;
57
- overflow: hidden;
58
- color: var(--n-placeholder-color);
59
- `,[k(`span`,`
60
- width: 100%;
61
- display: inline-block;
62
- `)]),x(`textarea`,[j(`placeholder`,`overflow: visible;`)]),S(`autosize`,`width: 100%;`),x(`autosize`,[j(`textarea-el, input-el`,`
63
- position: absolute;
64
- top: 0;
65
- left: 0;
66
- height: 100%;
67
- `)]),b(`input-wrapper`,`
68
- overflow: hidden;
69
- display: inline-flex;
70
- flex-grow: 1;
71
- position: relative;
72
- padding-left: var(--n-padding-left);
73
- padding-right: var(--n-padding-right);
74
- `),j(`input-mirror`,`
75
- padding: 0;
76
- height: var(--n-height);
77
- line-height: var(--n-height);
78
- overflow: hidden;
79
- visibility: hidden;
80
- position: static;
81
- white-space: pre;
82
- pointer-events: none;
83
- `),j(`input-el`,`
84
- padding: 0;
85
- height: var(--n-height);
86
- line-height: var(--n-height);
87
- `,[k(`&[type=password]::-ms-reveal`,`display: none;`),k(`+`,[j(`placeholder`,`
88
- display: flex;
89
- align-items: center;
90
- `)])]),S(`textarea`,[j(`placeholder`,`white-space: nowrap;`)]),j(`eye`,`
91
- display: flex;
92
- align-items: center;
93
- justify-content: center;
94
- transition: color .3s var(--n-bezier);
95
- `),x(`textarea`,`width: 100%;`,[b(`input-word-count`,`
96
- position: absolute;
97
- right: var(--n-padding-right);
98
- bottom: var(--n-padding-vertical);
99
- `),x(`resizable`,[b(`input-wrapper`,`
100
- resize: vertical;
101
- min-height: var(--n-height);
102
- `)]),j(`textarea-el, textarea-mirror, placeholder`,`
103
- height: 100%;
104
- padding-left: 0;
105
- padding-right: 0;
106
- padding-top: var(--n-padding-vertical);
107
- padding-bottom: var(--n-padding-vertical);
108
- word-break: break-word;
109
- display: inline-block;
110
- vertical-align: bottom;
111
- box-sizing: border-box;
112
- line-height: var(--n-line-height-textarea);
113
- margin: 0;
114
- resize: none;
115
- white-space: pre-wrap;
116
- scroll-padding-block-end: var(--n-padding-vertical);
117
- `),j(`textarea-mirror`,`
118
- width: 100%;
119
- pointer-events: none;
120
- overflow: hidden;
121
- visibility: hidden;
122
- position: static;
123
- white-space: pre-wrap;
124
- overflow-wrap: break-word;
125
- `)]),x(`pair`,[j(`input-el, placeholder`,`text-align: center;`),j(`separator`,`
126
- display: flex;
127
- align-items: center;
128
- transition: color .3s var(--n-bezier);
129
- color: var(--n-text-color);
130
- white-space: nowrap;
131
- `,[b(`icon`,`
132
- color: var(--n-icon-color);
133
- `),b(`base-icon`,`
134
- color: var(--n-icon-color);
135
- `)])]),x(`disabled`,`
136
- cursor: not-allowed;
137
- background-color: var(--n-color-disabled);
138
- `,[j(`border`,`border: var(--n-border-disabled);`),j(`input-el, textarea-el`,`
139
- cursor: not-allowed;
140
- color: var(--n-text-color-disabled);
141
- text-decoration-color: var(--n-text-color-disabled);
142
- `),j(`placeholder`,`color: var(--n-placeholder-color-disabled);`),j(`separator`,`color: var(--n-text-color-disabled);`,[b(`icon`,`
143
- color: var(--n-icon-color-disabled);
144
- `),b(`base-icon`,`
145
- color: var(--n-icon-color-disabled);
146
- `)]),b(`input-word-count`,`
147
- color: var(--n-count-text-color-disabled);
148
- `),j(`suffix, prefix`,`color: var(--n-text-color-disabled);`,[b(`icon`,`
149
- color: var(--n-icon-color-disabled);
150
- `),b(`internal-icon`,`
151
- color: var(--n-icon-color-disabled);
152
- `)])]),S(`disabled`,[j(`eye`,`
153
- color: var(--n-icon-color);
154
- cursor: pointer;
155
- `,[k(`&:hover`,`
156
- color: var(--n-icon-color-hover);
157
- `),k(`&:active`,`
158
- color: var(--n-icon-color-pressed);
159
- `)]),k(`&:hover`,[j(`state-border`,`border: var(--n-border-hover);`)]),x(`focus`,`background-color: var(--n-color-focus);`,[j(`state-border`,`
160
- border: var(--n-border-focus);
161
- box-shadow: var(--n-box-shadow-focus);
162
- `)])]),j(`border, state-border`,`
163
- box-sizing: border-box;
164
- position: absolute;
165
- left: 0;
166
- right: 0;
167
- top: 0;
168
- bottom: 0;
169
- pointer-events: none;
170
- border-radius: inherit;
171
- border: var(--n-border);
172
- transition:
173
- box-shadow .3s var(--n-bezier),
174
- border-color .3s var(--n-bezier);
175
- `),j(`state-border`,`
176
- border-color: #0000;
177
- z-index: 1;
178
- `),j(`prefix`,`margin-right: 4px;`),j(`suffix`,`
179
- margin-left: 4px;
180
- `),j(`suffix, prefix`,`
181
- transition: color .3s var(--n-bezier);
182
- flex-wrap: nowrap;
183
- flex-shrink: 0;
184
- line-height: var(--n-height);
185
- white-space: nowrap;
186
- display: inline-flex;
187
- align-items: center;
188
- justify-content: center;
189
- color: var(--n-suffix-text-color);
190
- `,[b(`base-loading`,`
191
- font-size: var(--n-icon-size);
192
- margin: 0 2px;
193
- color: var(--n-loading-color);
194
- `),b(`base-clear`,`
195
- font-size: var(--n-icon-size);
196
- `,[j(`placeholder`,[b(`base-icon`,`
197
- transition: color .3s var(--n-bezier);
198
- color: var(--n-icon-color);
199
- font-size: var(--n-icon-size);
200
- `)])]),k(`>`,[b(`icon`,`
201
- transition: color .3s var(--n-bezier);
202
- color: var(--n-icon-color);
203
- font-size: var(--n-icon-size);
204
- `)]),b(`base-icon`,`
205
- font-size: var(--n-icon-size);
206
- `)]),b(`input-word-count`,`
207
- pointer-events: none;
208
- line-height: 1.5;
209
- font-size: .85em;
210
- color: var(--n-count-text-color);
211
- transition: color .3s var(--n-bezier);
212
- margin-left: 4px;
213
- font-variant: tabular-nums;
214
- `),[`warning`,`error`].map(e=>x(`${e}-status`,[S(`disabled`,[b(`base-loading`,`
215
- color: var(--n-loading-color-${e})
216
- `),j(`input-el, textarea-el`,`
217
- caret-color: var(--n-caret-color-${e});
218
- `),j(`state-border`,`
219
- border: var(--n-border-${e});
220
- `),k(`&:hover`,[j(`state-border`,`
221
- border: var(--n-border-hover-${e});
222
- `)]),k(`&:focus`,`
223
- background-color: var(--n-color-focus-${e});
224
- `,[j(`state-border`,`
225
- box-shadow: var(--n-box-shadow-focus-${e});
226
- border: var(--n-border-focus-${e});
227
- `)]),x(`focus`,`
228
- background-color: var(--n-color-focus-${e});
229
- `,[j(`state-border`,`
230
- box-shadow: var(--n-box-shadow-focus-${e});
231
- border: var(--n-border-focus-${e});
232
- `)])])]))]),ce=b(`input`,[x(`disabled`,[j(`input-el, textarea-el`,`
233
- -webkit-text-fill-color: var(--n-text-color-disabled);
234
- `)])]);function G(e){let t=0;for(let n of e)t++;return t}function K(e){return e===``||e==null}function le(e){let t=l(null);function n(){let{value:n}=e;if(!n?.focus){i();return}let{selectionStart:r,selectionEnd:a,value:o}=n;if(r==null||a==null){i();return}t.value={start:r,end:a,beforeText:o.slice(0,r),afterText:o.slice(a)}}function r(){var n;let{value:r}=t,{value:i}=e;if(!r||!i)return;let{value:a}=i,{start:o,beforeText:s,afterText:c}=r,l=a.length;if(a.endsWith(c))l=a.length-c.length;else if(a.startsWith(s))l=s.length;else{let e=s[o-1],t=a.indexOf(e,o-1);t!==-1&&(l=t+1)}(n=i.setSelectionRange)==null||n.call(i,l,l)}function i(){t.value=null}return o(e,i),{recordCursor:n,restoreCursor:r}}var q=t({name:`InputWordCount`,setup(t,{slots:n}){let{mergedValueRef:i,maxlengthRef:a,mergedClsPrefixRef:o,countGraphemesRef:s}=e(oe),c=d(()=>{let{value:e}=i;return e===null||Array.isArray(e)?0:(s.value||G)(e)});return()=>{let{value:e}=a,{value:t}=i;return r(`span`,{class:`${o.value}-input-word-count`},h(n.default,{value:t===null||Array.isArray(t)?``:t},()=>[e===void 0?c.value:`${c.value} / ${e}`]))}}}),J=t({name:`Input`,props:Object.assign(Object.assign({},y.props),{bordered:{type:Boolean,default:void 0},type:{type:String,default:`text`},placeholder:[Array,String],defaultValue:{type:[String,Array],default:null},value:[String,Array],disabled:{type:Boolean,default:void 0},size:String,rows:{type:[Number,String],default:3},round:Boolean,minlength:[String,Number],maxlength:[String,Number],clearable:Boolean,autosize:{type:[Boolean,Object],default:!1},pair:Boolean,separator:String,readonly:{type:[String,Boolean],default:!1},passivelyActivated:Boolean,showPasswordOn:String,stateful:{type:Boolean,default:!0},autofocus:Boolean,inputProps:Object,resizable:{type:Boolean,default:!0},showCount:Boolean,loading:{type:Boolean,default:void 0},allowInput:Function,renderCount:Function,onMousedown:Function,onKeydown:Function,onKeyup:[Function,Array],onInput:[Function,Array],onFocus:[Function,Array],onBlur:[Function,Array],onClick:[Function,Array],onChange:[Function,Array],onClear:[Function,Array],countGraphemes:Function,status:String,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],textDecoration:[String,Array],attrSize:{type:Number,default:20},onInputBlur:[Function,Array],onInputFocus:[Function,Array],onDeactivate:[Function,Array],onActivate:[Function,Array],onWrapperFocus:[Function,Array],onWrapperBlur:[Function,Array],internalDeactivateOnEnter:Boolean,internalForceFocus:Boolean,internalLoadingBeforeSuffix:{type:Boolean,default:!0},showPasswordToggle:Boolean}),slots:Object,setup(e){let{mergedClsPrefixRef:t,mergedBorderedRef:r,inlineThemeDisabled:s,mergedRtlRef:p,mergedComponentPropsRef:h}=m(e),g=y(`Input`,`-input`,se,W,e,t);te&&C(`-input-safari`,ce,t);let v=l(null),b=l(null),x=l(null),S=l(null),w=l(null),T=l(null),O=l(null),k=le(O),j=l(null),{localeRef:N}=ie(`Input`),P=l(e.defaultValue),F=re(c(e,`value`),P),I=_(e,{mergedSize:t=>{let{size:n}=e;if(n)return n;let{mergedSize:r}=t||{};return r?.value?r.value:h?.value?.Input?.size||`medium`}}),{mergedSizeRef:R,mergedDisabledRef:z,mergedStatusRef:B}=I,V=l(!1),H=l(!1),U=l(!1),G=l(!1),q=null,J=d(()=>{let{placeholder:t,pair:n}=e;return n?Array.isArray(t)?t:t===void 0?[``,``]:[t,t]:t===void 0?[N.value.placeholder]:[t]}),ue=d(()=>{let{value:e}=U,{value:t}=F,{value:n}=J;return!e&&(K(t)||Array.isArray(t)&&K(t[0]))&&n[0]}),de=d(()=>{let{value:e}=U,{value:t}=F,{value:n}=J;return!e&&n[1]&&(K(t)||Array.isArray(t)&&K(t[1]))}),fe=A(()=>e.internalForceFocus||V.value),pe=A(()=>{if(z.value||e.readonly||!e.clearable||!fe.value&&!H.value)return!1;let{value:t}=F,{value:n}=fe;return e.pair?!!(Array.isArray(t)&&(t[0]||t[1]))&&(H.value||n):!!t&&(H.value||n)}),me=d(()=>{let{showPasswordOn:t}=e;if(t)return t;if(e.showPasswordToggle)return`click`}),Y=l(!1),he=d(()=>{let{textDecoration:t}=e;return t?Array.isArray(t)?t.map(e=>({textDecoration:e})):[{textDecoration:t}]:[``,``]}),ge=l(void 0),_e=()=>{if(e.type===`textarea`){let{autosize:t}=e;if(t&&(ge.value=j.value?.$el?.offsetWidth),!b.value||typeof t==`boolean`)return;let{paddingTop:n,paddingBottom:r,lineHeight:i}=window.getComputedStyle(b.value),a=Number(n.slice(0,-2)),o=Number(r.slice(0,-2)),s=Number(i.slice(0,-2)),{value:c}=x;if(!c)return;if(t.minRows){let e=Math.max(t.minRows,1),n=`${a+o+s*e}px`;c.style.minHeight=n}if(t.maxRows){let e=`${a+o+s*t.maxRows}px`;c.style.maxHeight=e}}},ve=d(()=>{let{maxlength:t}=e;return t===void 0?void 0:Number(t)});a(()=>{let{value:e}=F;Array.isArray(e)||nt(e)});let ye=n().proxy;function X(t,n){let{onUpdateValue:r,"onUpdate:value":i,onInput:a}=e,{nTriggerFormInput:o}=I;r&&D(r,t,n),i&&D(i,t,n),a&&D(a,t,n),P.value=t,o()}function Z(t,n){let{onChange:r}=e,{nTriggerFormChange:i}=I;r&&D(r,t,n),P.value=t,i()}function be(t){let{onBlur:n}=e,{nTriggerFormBlur:r}=I;n&&D(n,t),r()}function xe(t){let{onFocus:n}=e,{nTriggerFormFocus:r}=I;n&&D(n,t),r()}function Se(t){let{onClear:n}=e;n&&D(n,t)}function Ce(t){let{onInputBlur:n}=e;n&&D(n,t)}function we(t){let{onInputFocus:n}=e;n&&D(n,t)}function Te(){let{onDeactivate:t}=e;t&&D(t)}function Ee(){let{onActivate:t}=e;t&&D(t)}function De(t){let{onClick:n}=e;n&&D(n,t)}function Oe(t){let{onWrapperFocus:n}=e;n&&D(n,t)}function ke(t){let{onWrapperBlur:n}=e;n&&D(n,t)}function Ae(){U.value=!0}function je(e){U.value=!1,e.target===T.value?Q(e,1):Q(e,0)}function Q(t,n=0,r=`input`){let i=t.target.value;if(nt(i),t instanceof InputEvent&&!t.isComposing&&(U.value=!1),e.type===`textarea`){let{value:e}=j;e&&e.syncUnifiedContainer()}if(q=i,U.value)return;k.recordCursor();let a=Me(i);if(a)if(!e.pair)r===`input`?X(i,{source:n}):Z(i,{source:n});else{let{value:e}=F;e=Array.isArray(e)?[e[0],e[1]]:[``,``],e[n]=i,r===`input`?X(e,{source:n}):Z(e,{source:n})}ye.$forceUpdate(),a||f(k.restoreCursor)}function Me(t){let{countGraphemes:n,maxlength:r,minlength:i}=e;if(n){let e;if(r!==void 0&&(e===void 0&&(e=n(t)),e>Number(r))||i!==void 0&&(e===void 0&&(e=n(t)),e<Number(r)))return!1}let{allowInput:a}=e;return typeof a==`function`?a(t):!0}function Ne(e){Ce(e),e.relatedTarget===v.value&&Te(),e.relatedTarget!==null&&(e.relatedTarget===w.value||e.relatedTarget===T.value||e.relatedTarget===b.value)||(G.value=!1),$(e,`blur`),O.value=null}function Pe(e,t){we(e),V.value=!0,G.value=!0,Ee(),$(e,`focus`),t===0?O.value=w.value:t===1?O.value=T.value:t===2&&(O.value=b.value)}function Fe(t){e.passivelyActivated&&(ke(t),$(t,`blur`))}function Ie(t){e.passivelyActivated&&(V.value=!0,Oe(t),$(t,`focus`))}function $(e,t){e.relatedTarget!==null&&(e.relatedTarget===w.value||e.relatedTarget===T.value||e.relatedTarget===b.value||e.relatedTarget===v.value)||(t===`focus`?(xe(e),V.value=!0):t===`blur`&&(be(e),V.value=!1))}function Le(e,t){Q(e,t,`change`)}function Re(e){De(e)}function ze(e){Se(e),Be()}function Be(){e.pair?(X([``,``],{source:`clear`}),Z([``,``],{source:`clear`})):(X(``,{source:`clear`}),Z(``,{source:`clear`}))}function Ve(t){let{onMousedown:n}=e;n&&n(t);let{tagName:r}=t.target;if(r!==`INPUT`&&r!==`TEXTAREA`){if(e.resizable){let{value:e}=v;if(e){let{left:n,top:r,width:i,height:a}=e.getBoundingClientRect();if(n+i-14<t.clientX&&t.clientX<n+i&&r+a-14<t.clientY&&t.clientY<r+a)return}}t.preventDefault(),V.value||Xe()}}function He(){var t;H.value=!0,e.type===`textarea`&&((t=j.value)==null||t.handleMouseEnterWrapper())}function Ue(){var t;H.value=!1,e.type===`textarea`&&((t=j.value)==null||t.handleMouseLeaveWrapper())}function We(){z.value||me.value===`click`&&(Y.value=!Y.value)}function Ge(e){if(z.value)return;e.preventDefault();let t=e=>{e.preventDefault(),M(`mouseup`,document,t)};if(L(`mouseup`,document,t),me.value!==`mousedown`)return;Y.value=!0;let n=()=>{Y.value=!1,M(`mouseup`,document,n)};L(`mouseup`,document,n)}function Ke(t){e.onKeyup&&D(e.onKeyup,t)}function qe(t){switch(e.onKeydown&&D(e.onKeydown,t),t.key){case`Escape`:Ye();break;case`Enter`:Je(t);break}}function Je(t){var n,r;if(e.passivelyActivated){let{value:i}=G;if(i){e.internalDeactivateOnEnter&&Ye();return}t.preventDefault(),e.type===`textarea`?(n=b.value)==null||n.focus():(r=w.value)==null||r.focus()}}function Ye(){e.passivelyActivated&&(G.value=!1,f(()=>{var e;(e=v.value)==null||e.focus()}))}function Xe(){var t,n,r;z.value||(e.passivelyActivated?(t=v.value)==null||t.focus():((n=b.value)==null||n.focus(),(r=w.value)==null||r.focus()))}function Ze(){v.value?.contains(document.activeElement)&&document.activeElement.blur()}function Qe(){var e,t;(e=b.value)==null||e.select(),(t=w.value)==null||t.select()}function $e(){z.value||(b.value?b.value.focus():w.value&&w.value.focus())}function et(){let{value:e}=v;e?.contains(document.activeElement)&&e!==document.activeElement&&Ye()}function tt(t){if(e.type===`textarea`){let{value:e}=b;e?.scrollTo(t)}else{let{value:e}=w;e?.scrollTo(t)}}function nt(t){let{type:n,pair:r,autosize:i}=e;if(!r&&i)if(n===`textarea`){let{value:e}=x;e&&(e.textContent=`${t??``}\r\n`)}else{let{value:e}=S;e&&(t?e.textContent=t:e.innerHTML=`&nbsp;`)}}function rt(){_e()}let it=l({top:`0`});function at(e){var t;let{scrollTop:n}=e.target;it.value.top=`${-n}px`,(t=j.value)==null||t.syncUnifiedContainer()}let ot=null;i(()=>{let{autosize:t,type:n}=e;t&&n===`textarea`?ot=o(F,e=>{!Array.isArray(e)&&e!==q&&nt(e)}):ot?.()});let st=null;i(()=>{e.type===`textarea`?st=o(F,e=>{var t;!Array.isArray(e)&&e!==q&&((t=j.value)==null||t.syncUnifiedContainer())}):st?.()}),u(oe,{mergedValueRef:F,maxlengthRef:ve,mergedClsPrefixRef:t,countGraphemesRef:c(e,`countGraphemes`)});let ct={wrapperElRef:v,inputElRef:w,textareaElRef:b,isCompositing:U,clear:Be,focus:Xe,blur:Ze,select:Qe,deactivate:et,activate:$e,scrollTo:tt},lt=ee(`Input`,p,t),ut=d(()=>{let{value:e}=R,{common:{cubicBezierEaseInOut:t},self:{color:n,borderRadius:r,textColor:i,caretColor:a,caretColorError:o,caretColorWarning:s,textDecorationColor:c,border:l,borderDisabled:u,borderHover:d,borderFocus:f,placeholderColor:p,placeholderColorDisabled:m,lineHeightTextarea:h,colorDisabled:_,colorFocus:v,textColorDisabled:y,boxShadowFocus:b,iconSize:ee,colorFocusWarning:x,boxShadowFocusWarning:S,borderWarning:C,borderFocusWarning:w,borderHoverWarning:T,colorFocusError:D,boxShadowFocusError:O,borderError:k,borderFocusError:te,borderHoverError:A,clearSize:j,clearColor:ne,clearColorHover:re,clearColorPressed:M,iconColor:N,iconColorDisabled:P,suffixTextColor:F,countTextColor:I,countTextColorDisabled:L,iconColorHover:ie,iconColorPressed:z,loadingColor:B,loadingColorError:V,loadingColorWarning:H,fontWeight:U,[E(`padding`,e)]:W,[E(`fontSize`,e)]:oe,[E(`height`,e)]:se}}=g.value,{left:ce,right:G}=ae(W);return{"--n-bezier":t,"--n-count-text-color":I,"--n-count-text-color-disabled":L,"--n-color":n,"--n-font-size":oe,"--n-font-weight":U,"--n-border-radius":r,"--n-height":se,"--n-padding-left":ce,"--n-padding-right":G,"--n-text-color":i,"--n-caret-color":a,"--n-text-decoration-color":c,"--n-border":l,"--n-border-disabled":u,"--n-border-hover":d,"--n-border-focus":f,"--n-placeholder-color":p,"--n-placeholder-color-disabled":m,"--n-icon-size":ee,"--n-line-height-textarea":h,"--n-color-disabled":_,"--n-color-focus":v,"--n-text-color-disabled":y,"--n-box-shadow-focus":b,"--n-loading-color":B,"--n-caret-color-warning":s,"--n-color-focus-warning":x,"--n-box-shadow-focus-warning":S,"--n-border-warning":C,"--n-border-focus-warning":w,"--n-border-hover-warning":T,"--n-loading-color-warning":H,"--n-caret-color-error":o,"--n-color-focus-error":D,"--n-box-shadow-focus-error":O,"--n-border-error":k,"--n-border-focus-error":te,"--n-border-hover-error":A,"--n-loading-color-error":V,"--n-clear-color":ne,"--n-clear-size":j,"--n-clear-color-hover":re,"--n-clear-color-pressed":M,"--n-icon-color":N,"--n-icon-color-hover":ie,"--n-icon-color-pressed":z,"--n-icon-color-disabled":P,"--n-suffix-text-color":F}}),dt=s?ne(`input`,d(()=>{let{value:e}=R;return e[0]}),ut,e):void 0;return Object.assign(Object.assign({},ct),{wrapperElRef:v,inputElRef:w,inputMirrorElRef:S,inputEl2Ref:T,textareaElRef:b,textareaMirrorElRef:x,textareaScrollbarInstRef:j,rtlEnabled:lt,uncontrolledValue:P,mergedValue:F,passwordVisible:Y,mergedPlaceholder:J,showPlaceholder1:ue,showPlaceholder2:de,mergedFocus:fe,isComposing:U,activated:G,showClearButton:pe,mergedSize:R,mergedDisabled:z,textDecorationStyle:he,mergedClsPrefix:t,mergedBordered:r,mergedShowPasswordOn:me,placeholderStyle:it,mergedStatus:B,textAreaScrollContainerWidth:ge,handleTextAreaScroll:at,handleCompositionStart:Ae,handleCompositionEnd:je,handleInput:Q,handleInputBlur:Ne,handleInputFocus:Pe,handleWrapperBlur:Fe,handleWrapperFocus:Ie,handleMouseEnter:He,handleMouseLeave:Ue,handleMouseDown:Ve,handleChange:Le,handleClick:Re,handleClear:ze,handlePasswordToggleClick:We,handlePasswordToggleMousedown:Ge,handleWrapperKeydown:qe,handleWrapperKeyup:Ke,handleTextAreaMirrorResize:rt,getTextareaScrollContainer:()=>b.value,mergedTheme:g,cssVars:s?void 0:ut,themeClass:dt?.themeClass,onRender:dt?.onRender})},render(){let{mergedClsPrefix:e,mergedStatus:t,themeClass:n,type:i,countGraphemes:a,onRender:o}=this,c=this.$slots;return o?.(),r(`div`,{ref:`wrapperElRef`,class:[`${e}-input`,`${e}-input--${this.mergedSize}-size`,n,t&&`${e}-input--${t}-status`,{[`${e}-input--rtl`]:this.rtlEnabled,[`${e}-input--disabled`]:this.mergedDisabled,[`${e}-input--textarea`]:i===`textarea`,[`${e}-input--resizable`]:this.resizable&&!this.autosize,[`${e}-input--autosize`]:this.autosize,[`${e}-input--round`]:this.round&&i!==`textarea`,[`${e}-input--pair`]:this.pair,[`${e}-input--focus`]:this.mergedFocus,[`${e}-input--stateful`]:this.stateful}],style:this.cssVars,tabindex:!this.mergedDisabled&&this.passivelyActivated&&!this.activated?0:void 0,onFocus:this.handleWrapperFocus,onBlur:this.handleWrapperBlur,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onCompositionstart:this.handleCompositionStart,onCompositionend:this.handleCompositionEnd,onKeyup:this.handleWrapperKeyup,onKeydown:this.handleWrapperKeydown},r(`div`,{class:`${e}-input-wrapper`},g(c.prefix,t=>t&&r(`div`,{class:`${e}-input__prefix`},t)),i===`textarea`?r(F,{ref:`textareaScrollbarInstRef`,class:`${e}-input__textarea`,container:this.getTextareaScrollContainer,theme:this.theme?.peers?.Scrollbar,themeOverrides:this.themeOverrides?.peers?.Scrollbar,triggerDisplayManually:!0,useUnifiedContainer:!0,internalHoistYRail:!0},{default:()=>{let{textAreaScrollContainerWidth:t}=this,n={width:this.autosize&&t&&`${t}px`};return r(s,null,r(`textarea`,Object.assign({},this.inputProps,{ref:`textareaElRef`,class:[`${e}-input__textarea-el`,this.inputProps?.class],autofocus:this.autofocus,rows:Number(this.rows),placeholder:this.placeholder,value:this.mergedValue,disabled:this.mergedDisabled,maxlength:a?void 0:this.maxlength,minlength:a?void 0:this.minlength,readonly:this.readonly,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,style:[this.textDecorationStyle[0],this.inputProps?.style,n],onBlur:this.handleInputBlur,onFocus:e=>{this.handleInputFocus(e,2)},onInput:this.handleInput,onChange:this.handleChange,onScroll:this.handleTextAreaScroll})),this.showPlaceholder1?r(`div`,{class:`${e}-input__placeholder`,style:[this.placeholderStyle,n],key:`placeholder`},this.mergedPlaceholder[0]):null,this.autosize?r(P,{onResize:this.handleTextAreaMirrorResize},{default:()=>r(`div`,{ref:`textareaMirrorElRef`,class:`${e}-input__textarea-mirror`,key:`mirror`})}):null)}}):r(`div`,{class:`${e}-input__input`},r(`input`,Object.assign({type:i===`password`&&this.mergedShowPasswordOn&&this.passwordVisible?`text`:i},this.inputProps,{ref:`inputElRef`,class:[`${e}-input__input-el`,this.inputProps?.class],style:[this.textDecorationStyle[0],this.inputProps?.style],tabindex:this.passivelyActivated&&!this.activated?-1:this.inputProps?.tabindex,placeholder:this.mergedPlaceholder[0],disabled:this.mergedDisabled,maxlength:a?void 0:this.maxlength,minlength:a?void 0:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[0]:this.mergedValue,readonly:this.readonly,autofocus:this.autofocus,size:this.attrSize,onBlur:this.handleInputBlur,onFocus:e=>{this.handleInputFocus(e,0)},onInput:e=>{this.handleInput(e,0)},onChange:e=>{this.handleChange(e,0)}})),this.showPlaceholder1?r(`div`,{class:`${e}-input__placeholder`},r(`span`,null,this.mergedPlaceholder[0])):null,this.autosize?r(`div`,{class:`${e}-input__input-mirror`,key:`mirror`,ref:`inputMirrorElRef`},`\xA0`):null),!this.pair&&g(c.suffix,t=>t||this.clearable||this.showCount||this.mergedShowPasswordOn||this.loading!==void 0?r(`div`,{class:`${e}-input__suffix`},[g(c[`clear-icon-placeholder`],t=>(this.clearable||t)&&r(I,{clsPrefix:e,show:this.showClearButton,onClear:this.handleClear},{placeholder:()=>t,icon:()=>{var e;return(e=this.$slots)[`clear-icon`]?.call(e)}})),this.internalLoadingBeforeSuffix?null:t,this.loading===void 0?null:r(R,{clsPrefix:e,loading:this.loading,showArrow:!1,showClear:!1,style:this.cssVars}),this.internalLoadingBeforeSuffix?t:null,this.showCount&&this.type!==`textarea`?r(q,null,{default:e=>{let{renderCount:t}=this;return t?t(e):c.count?.call(c,e)}}):null,this.mergedShowPasswordOn&&this.type===`password`?r(`div`,{class:`${e}-input__eye`,onMousedown:this.handlePasswordToggleMousedown,onClick:this.handlePasswordToggleClick},this.passwordVisible?v(c[`password-visible-icon`],()=>[r(z,{clsPrefix:e},{default:()=>r(B,null)})]):v(c[`password-invisible-icon`],()=>[r(z,{clsPrefix:e},{default:()=>r(V,null)})])):null]):null)),this.pair?r(`span`,{class:`${e}-input__separator`},v(c.separator,()=>[this.separator])):null,this.pair?r(`div`,{class:`${e}-input-wrapper`},r(`div`,{class:`${e}-input__input`},r(`input`,{ref:`inputEl2Ref`,type:this.type,class:`${e}-input__input-el`,tabindex:this.passivelyActivated&&!this.activated?-1:void 0,placeholder:this.mergedPlaceholder[1],disabled:this.mergedDisabled,maxlength:a?void 0:this.maxlength,minlength:a?void 0:this.minlength,value:Array.isArray(this.mergedValue)?this.mergedValue[1]:void 0,readonly:this.readonly,style:this.textDecorationStyle[1],onBlur:this.handleInputBlur,onFocus:e=>{this.handleInputFocus(e,1)},onInput:e=>{this.handleInput(e,1)},onChange:e=>{this.handleChange(e,1)}}),this.showPlaceholder2?r(`div`,{class:`${e}-input__placeholder`},r(`span`,null,this.mergedPlaceholder[1])):null),g(c.suffix,t=>(this.clearable||t)&&r(`div`,{class:`${e}-input__suffix`},[this.clearable&&r(I,{clsPrefix:e,show:this.showClearButton,onClear:this.handleClear},{icon:()=>c[`clear-icon`]?.call(c),placeholder:()=>c[`clear-icon-placeholder`]?.call(c)}),t]))):null,this.mergedBordered?r(`div`,{class:`${e}-input__border`}):null,this.mergedBordered?r(`div`,{class:`${e}-input__state-border`}):null,this.showCount&&i===`textarea`?r(q,null,{default:e=>{let{renderCount:t}=this;return t?t(e):c.count?.call(c,e)}}):null)}});export{B as i,W as n,H as r,J as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jobs-DMiCP2Li.js","assets/router-kR4kqS2l.js"])))=>i.map(i=>d[i]);
2
- import{$ as e,A as t,D as n,E as r,J as i,K as a,M as o,O as s,T as c,W as l,_t as u,b as d,ht as f,j as p,k as m,lt as h,mt as g,n as _,w as v}from"./router-kR4kqS2l.js";import{n as y}from"./pinia-C8BDM-Fc.js";import{r as b,t as x}from"./_plugin-vue_export-helper-Bl_Pm_OI.js";import{t as S}from"./Modal-6Bv1v4kO.js";import{n as C,t as w}from"./FormItem-kXuCeSKq.js";import{t as T}from"./Select-Z20Mp4nQ.js";import{t as E}from"./Button-vKfgky-Y.js";import{t as D}from"./Input-BS71ZaoJ.js";import{t as O}from"./InputNumber-BXy4reTI.js";import{t as k}from"./Tooltip-Dka1-DNs.js";import{t as A}from"./use-message-sSsrvqld.js";import{t as j}from"./Spin-DKwUVt1F.js";import{a as M,c as N,i as P,n as F,o as I,s as L,t as ee}from"./jobs-DMiCP2Li.js";function R(e,t){return e.job_id===t||e.id===t}var z=y(`jobs`,()=>{let e=h([]),t=h(!1);async function n(){t.value=!0;try{e.value=await P()}catch(e){console.error(`Failed to fetch jobs:`,e)}finally{t.value=!1}}async function r(t){let n=await ee(t);return e.value.unshift(n),n}async function i(t,n){let r=await N(t,n),i=e.value.findIndex(e=>R(e,t));return i!==-1&&(e.value[i]=r),r}async function a(t){await F(t),e.value=e.value.filter(e=>!R(e,t))}async function o(t){let n=await M(t),r=e.value.findIndex(e=>R(e,t));r!==-1&&(e.value[r]=n)}async function s(t){let n=await I(t),r=e.value.findIndex(e=>R(e,t));r!==-1&&(e.value[r]=n)}async function c(t){let n=await L(t),r=e.value.findIndex(e=>R(e,t));r!==-1&&(e.value[r]=n)}return{jobs:e,loading:t,fetchJobs:n,createJob:r,updateJob:i,deleteJob:a,pauseJob:o,resumeJob:s,runJob:c}}),B={class:`job-card`},V={class:`card-header`},H={class:`job-name`},U={class:`card-body`},W={class:`info-row`},G={class:`info-label`},K={class:`info-value mono`},q={class:`info-row`},J={class:`info-label`},Y={class:`info-value`},X={class:`info-row`},Z={class:`info-label`},Q={class:`info-value`},te={class:`info-row`},ne={class:`info-label`},re={class:`info-value`},ie={key:0,class:`info-row`},ae={class:`info-label`},oe={class:`info-value`},se={class:`card-actions`},$=x(o({__name:`JobCard`,props:{job:{}},emits:[`edit`],setup(i,{emit:o}){let l=i,m=o,{t:h}=b(),_=z(),y=A(),x=v(()=>l.job.job_id||l.job.id),S=v(()=>l.job.state===`running`?h(`jobs.status.running`):l.job.state===`paused`?h(`jobs.status.paused`):l.job.enabled?h(`jobs.status.scheduled`):h(`jobs.status.disabled`)),C=v(()=>l.job.state===`running`?`info`:l.job.state===`paused`?`warning`:l.job.enabled?`success`:`error`),w=v(()=>{let e=l.job.schedule;return typeof e==`string`?e:e?.expr||l.job.schedule_display||`—`}),T=e=>e?new Date(e).toLocaleString():`—`;async function D(){try{await _.pauseJob(x.value),y.success(h(`jobs.jobPaused`))}catch(e){y.error(e.message)}}async function O(){try{await _.resumeJob(x.value),y.success(h(`jobs.jobResumed`))}catch(e){y.error(e.message)}}async function j(){try{await _.runJob(x.value),y.info(h(`jobs.jobTriggered`))}catch(e){y.error(e.message)}}async function M(){try{await _.deleteJob(x.value),y.success(h(`jobs.jobDeleted`))}catch(e){y.error(e.message)}}return(o,l)=>(a(),s(`div`,B,[c(`div`,V,[c(`h3`,H,u(i.job.name),1),c(`span`,{class:f([`status-badge`,C.value])},u(S.value),3)]),c(`div`,U,[c(`div`,W,[c(`span`,G,u(g(h)(`jobs.info.schedule`)),1),c(`code`,K,u(w.value),1)]),c(`div`,q,[c(`span`,J,u(g(h)(`jobs.info.lastRun`)),1),c(`span`,Y,[t(u(T(i.job.last_run_at))+` `,1),i.job.last_status?(a(),s(`span`,{key:0,class:f([`run-status`,{ok:i.job.last_status===`ok`,err:i.job.last_status!==`ok`}])},u(i.job.last_status===`ok`?g(h)(`common.ok`):i.job.last_status),3)):n(``,!0)])]),c(`div`,X,[c(`span`,Z,u(g(h)(`jobs.info.nextRun`)),1),c(`span`,Q,u(T(i.job.next_run_at)),1)]),c(`div`,te,[c(`span`,ne,u(g(h)(`jobs.info.deliver`)),1),c(`span`,re,[t(u(i.job.deliver),1),i.job.origin?(a(),s(d,{key:0},[t(` (`+u(i.job.origin.platform)+`)`,1)],64)):n(``,!0)])]),i.job.repeat?(a(),s(`div`,ie,[c(`span`,ae,u(g(h)(`jobs.info.repeat`)),1),c(`span`,oe,[typeof i.job.repeat==`string`?(a(),s(d,{key:0},[t(u(i.job.repeat),1)],64)):(a(),s(d,{key:1},[t(u(i.job.repeat.completed)+` / `+u(i.job.repeat.times??`∞`),1)],64))])])):n(``,!0)]),c(`div`,se,[i.job.state!==`paused`&&i.job.enabled?(a(),r(g(k),{key:0},{trigger:e(()=>[p(g(E),{size:`tiny`,quaternary:``,onClick:D},{default:e(()=>[t(u(g(h)(`jobs.action.pause`)),1)]),_:1})]),default:e(()=>[t(` `+u(g(h)(`jobs.action.pauseJob`)),1)]),_:1})):i.job.state===`paused`?(a(),r(g(k),{key:1},{trigger:e(()=>[p(g(E),{size:`tiny`,quaternary:``,onClick:O},{default:e(()=>[t(u(g(h)(`jobs.action.resume`)),1)]),_:1})]),default:e(()=>[t(` `+u(g(h)(`jobs.action.resumeJob`)),1)]),_:1})):n(``,!0),p(g(k),null,{trigger:e(()=>[p(g(E),{size:`tiny`,quaternary:``,onClick:j},{default:e(()=>[t(u(g(h)(`jobs.action.runNow`)),1)]),_:1})]),default:e(()=>[t(` `+u(g(h)(`jobs.action.triggerImmediately`)),1)]),_:1}),p(g(E),{size:`tiny`,quaternary:``,onClick:l[0]||=e=>m(`edit`,x.value)},{default:e(()=>[t(u(g(h)(`common.edit`)),1)]),_:1}),p(g(E),{size:`tiny`,quaternary:``,type:`error`,onClick:M},{default:e(()=>[t(u(g(h)(`common.delete`)),1)]),_:1})])]))}}),[[`__scopeId`,`data-v-5c958088`]]),ce={key:0,class:`empty-state`},le={key:1,class:`jobs-grid`},ue=x(o({__name:`JobsPanel`,emits:[`edit`],setup(e,{emit:t}){let{t:n}=b(),o=t,l=z();return(e,t)=>g(l).jobs.length===0?(a(),s(`div`,ce,[t[0]||=m(`<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" class="empty-icon" data-v-a0a8d138><rect x="3" y="4" width="18" height="18" rx="2" ry="2" data-v-a0a8d138></rect><line x1="16" y1="2" x2="16" y2="6" data-v-a0a8d138></line><line x1="8" y1="2" x2="8" y2="6" data-v-a0a8d138></line><line x1="3" y1="10" x2="21" y2="10" data-v-a0a8d138></line></svg>`,1),c(`p`,null,u(g(n)(`jobs.noJobs`)),1)])):(a(),s(`div`,le,[(a(!0),s(d,null,i(g(l).jobs,e=>(a(),r($,{key:e.id,job:e,onEdit:t=>o(`edit`,e.id)},null,8,[`job`,`onEdit`]))),128))]))}}),[[`__scopeId`,`data-v-a0a8d138`]]),de={class:`modal-footer`},fe=x(o({__name:`JobFormModal`,props:{jobId:{}},emits:[`close`,`saved`],setup(n,{emit:i}){let{t:o}=b(),s=n,d=i,f=z(),m=A(),y=h(!0),x=h(!1),k=h({name:``,schedule:``,prompt:``,deliver:`origin`,repeat_times:null}),j=h(null),M=v(()=>!!s.jobId),N=v(()=>[{label:o(`jobs.presetEveryMinute`),value:`* * * * *`},{label:o(`jobs.presetEvery5Min`),value:`*/5 * * * *`},{label:o(`jobs.presetEveryHour`),value:`0 * * * *`},{label:o(`jobs.presetEveryDay`),value:`0 0 * * *`},{label:o(`jobs.presetEveryDay9`),value:`0 9 * * *`},{label:o(`jobs.presetEveryMonday`),value:`0 9 * * 1`},{label:o(`jobs.presetEveryMonth`),value:`0 9 1 * *`}]),P=v(()=>[{label:o(`jobs.origin`),value:`origin`},{label:o(`jobs.local`),value:`local`}]),F=h(null);l(async()=>{if(s.jobId)try{let{getJob:e}=await _(async()=>{let{getJob:e}=await import(`./jobs-DMiCP2Li.js`).then(e=>e.r);return{getJob:e}},__vite__mapDeps([0,1])),t=await e(s.jobId);k.value={name:t.name,schedule:typeof t.schedule==`string`?t.schedule:t.schedule?.expr||t.schedule_display||``,prompt:t.prompt,deliver:t.deliver||`origin`,repeat_times:typeof t.repeat==`number`?t.repeat:typeof t.repeat==`object`?t.repeat.times:null},typeof t.schedule==`object`&&t.schedule&&(F.value=t.schedule)}catch(e){m.error(o(`jobs.loadFailed`)+`: `+e.message)}});async function I(){if(!k.value.name.trim()){m.warning(o(`jobs.nameRequired`));return}if(!k.value.schedule.trim()){m.warning(o(`jobs.scheduleRequired`));return}x.value=!0;try{let e={name:k.value.name,schedule:k.value.schedule,prompt:k.value.prompt,deliver:k.value.deliver,repeat:k.value.repeat_times??void 0};M.value&&F.value&&(e.schedule={kind:F.value.kind,expr:k.value.schedule,display:k.value.schedule}),M.value?(await f.updateJob(s.jobId,e),m.success(o(`jobs.jobUpdated`))):(await f.createJob(e),m.success(o(`jobs.jobCreated`))),d(`saved`)}catch(e){m.error(e.message)}finally{x.value=!1}}function L(){y.value=!1,setTimeout(()=>d(`close`),200)}return(n,i)=>(a(),r(g(S),{show:y.value,"onUpdate:show":i[7]||=e=>y.value=e,preset:`card`,title:M.value?g(o)(`jobs.editJob`):g(o)(`jobs.createJob`),style:{width:`min(520px, calc(100vw - 32px))`},"mask-closable":!x.value,onAfterLeave:i[8]||=e=>d(`close`)},{footer:e(()=>[c(`div`,de,[p(g(E),{onClick:L},{default:e(()=>[t(u(g(o)(`common.cancel`)),1)]),_:1}),p(g(E),{type:`primary`,loading:x.value,onClick:I},{default:e(()=>[t(u(M.value?g(o)(`common.update`):g(o)(`common.create`)),1)]),_:1},8,[`loading`])])]),default:e(()=>[p(g(C),{"label-placement":`top`},{default:e(()=>[p(g(w),{label:g(o)(`jobs.name`),required:``},{default:e(()=>[p(g(D),{value:k.value.name,"onUpdate:value":i[0]||=e=>k.value.name=e,placeholder:g(o)(`jobs.namePlaceholder`),maxlength:`200`,"show-count":``},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),p(g(w),{label:g(o)(`jobs.schedule`),required:``},{default:e(()=>[p(g(D),{value:k.value.schedule,"onUpdate:value":i[1]||=e=>k.value.schedule=e,placeholder:g(o)(`jobs.schedulePlaceholder`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),p(g(w),{label:g(o)(`jobs.quickPresets`)},{default:e(()=>[p(g(T),{value:j.value,"onUpdate:value":[i[2]||=e=>j.value=e,i[3]||=e=>k.value.schedule=e],options:N.value,placeholder:g(o)(`jobs.selectPreset`)},null,8,[`value`,`options`,`placeholder`])]),_:1},8,[`label`]),p(g(w),{label:g(o)(`jobs.prompt`),required:``},{default:e(()=>[p(g(D),{value:k.value.prompt,"onUpdate:value":i[4]||=e=>k.value.prompt=e,type:`textarea`,placeholder:g(o)(`jobs.promptPlaceholder`),rows:4,maxlength:`5000`,"show-count":``},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),p(g(w),{label:g(o)(`jobs.deliverTarget`)},{default:e(()=>[p(g(T),{value:k.value.deliver,"onUpdate:value":i[5]||=e=>k.value.deliver=e,options:P.value},null,8,[`value`,`options`])]),_:1},8,[`label`]),p(g(w),{label:g(o)(`jobs.repeatCount`)},{default:e(()=>[p(g(O),{value:k.value.repeat_times,"onUpdate:value":i[6]||=e=>k.value.repeat_times=e,min:1,placeholder:g(o)(`jobs.repeatPlaceholder`),clearable:``,style:{width:`100%`}},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`show`,`title`,`mask-closable`]))}}),[[`__scopeId`,`data-v-b339cfa2`]]),pe={class:`jobs-view`},me={class:`page-header`},he={class:`header-title`},ge={class:`jobs-content`},_e=x(o({__name:`JobsView`,setup(i){let{t:o}=b(),d=z(),f=h(!1),m=h(null);l(()=>{d.fetchJobs()});function _(){m.value=null,f.value=!0}function v(e){m.value=e,f.value=!0}function y(){f.value=!1,m.value=null}async function x(){await d.fetchJobs(),y()}return(i,l)=>(a(),s(`div`,pe,[c(`header`,me,[c(`h2`,he,u(g(o)(`jobs.title`)),1),p(g(E),{type:`primary`,size:`small`,onClick:_},{icon:e(()=>[...l[0]||=[c(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[c(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),c(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:e(()=>[t(` `+u(g(o)(`jobs.createJob`)),1)]),_:1})]),c(`div`,ge,[p(g(j),{show:g(d).loading&&g(d).jobs.length===0},{default:e(()=>[p(ue,{onEdit:v})]),_:1},8,[`show`])]),f.value?(a(),r(fe,{key:0,"job-id":m.value,onClose:y,onSaved:x},null,8,[`job-id`])):n(``,!0)]))}}),[[`__scopeId`,`data-v-c0d68ae3`]]);export{_e as default};
@@ -1 +0,0 @@
1
- import{D as e,K as t,M as n,O as r,T as i,W as a,_ as o,_t as s,b as c,c as l,et as u,h as d,ht as f,lt as p,mt as m,o as h,u as g,v as _}from"./router-kR4kqS2l.js";import{r as v,t as y}from"./_plugin-vue_export-helper-Bl_Pm_OI.js";import"./logo-Cd-t_oGE.js";import{i as b,r as x}from"./auth-BPBv1nNQ.js";var S={class:`login-view`},C={class:`login-card`},w={class:`login-title`},T={class:`login-desc`},E={key:0,class:`login-method-toggle`},D=[`placeholder`],O=[`placeholder`],k=[`placeholder`],A={key:2,class:`login-error`},j=[`disabled`],M=y(n({__name:`LoginView`,setup(n){let{t:y}=v(),M=g(),N=window.__LOGIN_TOKEN__||``,P=p(N),F=p(``),I=p(``),L=p(!1),R=p(``),z=p(`token`),B=p(!1);h()&&M.replace(`/hermes/chat`),a(async()=>{try{let e=await x();B.value=e.hasPasswordLogin,e.hasPasswordLogin&&!N&&(z.value=`password`)}catch{}});async function V(){z.value===`token`?await H():await U()}async function H(){let e=P.value.trim();if(!e){R.value=y(`login.tokenRequired`);return}L.value=!0,R.value=``;try{if((await fetch(`/api/sessions`,{headers:{Authorization:`Bearer ${e}`}})).status===401){R.value=y(`login.invalidToken`),L.value=!1;return}l(e),M.replace(`/hermes/chat`)}catch{R.value=y(`login.connectionFailed`)}finally{L.value=!1}}async function U(){if(!F.value.trim()||!I.value){R.value=y(`login.credentialsRequired`);return}L.value=!0,R.value=``;try{l(await b(F.value.trim(),I.value)),M.replace(`/hermes/chat`)}catch(e){R.value=e.message||y(`login.invalidCredentials`)}finally{L.value=!1}}return(n,a)=>(t(),r(`div`,S,[i(`div`,C,[a[5]||=i(`div`,{class:`login-logo`},[i(`img`,{src:`/logo.png`,alt:`Hermes`,width:`80`,height:`80`})],-1),i(`h1`,w,s(m(y)(`login.title`)),1),i(`p`,T,s(m(y)(`login.description`)),1),B.value?(t(),r(`div`,E,[i(`button`,{class:f([`toggle-btn`,{active:z.value===`password`}]),onClick:a[0]||=e=>z.value=`password`},s(m(y)(`login.passwordLogin`)),3),i(`button`,{class:f([`toggle-btn`,{active:z.value===`token`}]),onClick:a[1]||=e=>z.value=`token`},s(m(y)(`login.tokenLogin`)),3)])):e(``,!0),i(`form`,{class:`login-form`,onSubmit:_(V,[`prevent`])},[z.value===`token`?u((t(),r(`input`,{key:0,"onUpdate:modelValue":a[2]||=e=>P.value=e,type:`password`,class:`login-input`,placeholder:m(y)(`login.placeholder`),autofocus:``},null,8,D)),[[d,P.value]]):e(``,!0),z.value===`password`?(t(),r(c,{key:1},[u(i(`input`,{"onUpdate:modelValue":a[3]||=e=>F.value=e,type:`text`,class:`login-input`,placeholder:m(y)(`login.usernamePlaceholder`),autofocus:``},null,8,O),[[d,F.value]]),u(i(`input`,{"onUpdate:modelValue":a[4]||=e=>I.value=e,type:`password`,class:`login-input`,placeholder:m(y)(`login.passwordPlaceholder`),onKeyup:o(V,[`enter`])},null,40,k),[[d,I.value]])],64)):e(``,!0),R.value?(t(),r(`div`,A,s(R.value),1)):e(``,!0),i(`button`,{type:`submit`,class:`login-btn`,disabled:L.value},s(L.value?`...`:m(y)(`login.submit`)),9,j)],32)])]))}}),[[`__scopeId`,`data-v-852ca6c8`]]);export{M as default};
@@ -1 +0,0 @@
1
- import{$ as e,A as t,D as n,J as r,K as i,M as a,O as o,T as s,W as c,_t as l,b as u,et as d,h as f,ht as p,j as m,lt as h,mt as g,s as _,w as v}from"./router-kR4kqS2l.js";import{r as y,t as b}from"./_plugin-vue_export-helper-Bl_Pm_OI.js";import{t as x}from"./Select-Z20Mp4nQ.js";import{t as S}from"./Button-vKfgky-Y.js";import{t as C}from"./use-message-sSsrvqld.js";import{t as w}from"./Spin-DKwUVt1F.js";async function T(){return(await _(`/api/hermes/logs`)).files}async function E(e,t){let n=new URLSearchParams;t?.lines&&n.set(`lines`,String(t.lines)),t?.level&&n.set(`level`,t.level),t?.session&&n.set(`session`,t.session),t?.since&&n.set(`since`,t.since);let r=n.toString();return(await _(`/api/hermes/logs/${e}${r?`?${r}`:``}`)).entries.filter(e=>e!==null)}var D={class:`logs-view`},O={class:`page-header`},ee={class:`header-title`},k={class:`header-actions`},A=[`placeholder`],j={class:`logs-body`},M={key:0,class:`logs-empty`},N={class:`log-list`},P={class:`log-time`},F={class:`log-logger`},I={class:`access-method`},L={class:`access-path`},R={key:1,class:`log-message`},z=b(a({__name:`LogsView`,setup(a){let{t:_}=y(),b=C(),z=h([]),B=h(`agent`),V=h([]),H=h(!1),U=h(100),W=h(``),G=h(``),K=v(()=>z.value.map(e=>({label:`${e.name} (${e.size})`,value:e.name}))),q=v(()=>[{label:_(`logs.all`),value:``},{label:`ERROR`,value:`ERROR`},{label:`WARNING`,value:`WARNING`},{label:`INFO`,value:`INFO`},{label:`DEBUG`,value:`DEBUG`}]),J=[{label:`50`,value:50},{label:`100`,value:100},{label:`200`,value:200},{label:`500`,value:500}],Y=v(()=>{if(!G.value)return V.value;let e=G.value.toLowerCase();return V.value.filter(t=>t.message.toLowerCase().includes(e)||t.logger.toLowerCase().includes(e)||t.raw.toLowerCase().includes(e))});function X(e){switch(e){case`ERROR`:return`level-error`;case`WARNING`:return`level-warning`;case`DEBUG`:return`level-debug`;default:return`level-info`}}function Z(e){let t=e.match(/\d{2}:\d{2}:\d{2}/);return t?t[0]:e}function Q(e){let t=e.match(/"(\w+)\s+(\S+)\s+HTTP\/[^"]+"\s+(\d+)/);return t?{method:t[1],path:t[2],status:t[3]}:null}async function $(){H.value=!0;try{V.value=(await E(B.value,{lines:U.value,level:W.value||void 0})).filter(e=>e!==null)}catch(e){b.error(e.message)}finally{H.value=!1}}return c(async()=>{z.value=await T(),await $()}),(a,c)=>(i(),o(`div`,D,[s(`header`,O,[s(`h2`,ee,l(g(_)(`logs.title`)),1),s(`div`,k,[m(g(x),{value:B.value,"onUpdate:value":[c[0]||=e=>B.value=e,$],options:K.value,size:`small`,class:`input-md`},null,8,[`value`,`options`]),m(g(x),{value:W.value,options:q.value,size:`small`,class:`input-sm`,"onUpdate:value":c[1]||=e=>{W.value=e,$()}},null,8,[`value`,`options`]),m(g(x),{value:U.value,options:J,size:`small`,class:`input-sm`,"onUpdate:value":c[2]||=e=>{U.value=e,$()}},null,8,[`value`]),d(s(`input`,{"onUpdate:modelValue":c[3]||=e=>G.value=e,class:`search-input`,placeholder:g(_)(`logs.searchPlaceholder`)},null,8,A),[[f,G.value]]),m(g(S),{size:`small`,loading:H.value,onClick:$},{default:e(()=>[t(l(g(_)(`logs.refresh`)),1)]),_:1},8,[`loading`])])]),s(`div`,j,[m(g(w),{show:H.value},{default:e(()=>[Y.value.length===0&&!H.value?(i(),o(`div`,M,l(g(_)(`logs.noEntries`)),1)):n(``,!0),s(`div`,N,[(i(!0),o(u,null,r(Y.value,(e,t)=>(i(),o(`div`,{key:t,class:p([`log-entry`,X(e.level)])},[s(`span`,P,l(Z(e.timestamp)),1),s(`span`,{class:p([`log-level`,X(e.level)])},l(e.level),3),s(`span`,F,l(e.logger),1),Q(e.message)?(i(),o(u,{key:0},[s(`span`,I,l(Q(e.message).method),1),s(`span`,L,l(Q(e.message).path),1),s(`span`,{class:p([`access-status`,`status-`+(Q(e.message).status?.[0]||`x`)])},l(Q(e.message).status),3)],64)):(i(),o(`span`,R,l(e.message),1))],2))),128))])]),_:1},8,[`show`])])]))}}),[[`__scopeId`,`data-v-c785e2a9`]]);export{z as default};