hermes-web-ui 0.1.3 → 0.1.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 (56) hide show
  1. package/README.md +19 -2
  2. package/dist/assets/ChatView-BCcUaLWg.css +1 -0
  3. package/dist/assets/ChatView-gu2Y-jpZ.js +16 -0
  4. package/dist/assets/Input-yD_s5hp8.js +234 -0
  5. package/dist/assets/JobsView-C1YU-sgU.js +123 -0
  6. package/dist/assets/LogsView-BSNn4Rmi.js +1 -0
  7. package/dist/assets/MarkdownRenderer-CrMwC_5d.css +1 -0
  8. package/dist/assets/MarkdownRenderer-DNP-kPA8.js +23 -0
  9. package/dist/assets/MemoryView-BsGBmN7h.js +5 -0
  10. package/dist/assets/MemoryView-CK0PemlP.css +1 -0
  11. package/dist/assets/Modal-CSHJclVU.js +232 -0
  12. package/dist/assets/Popover-blRIsd-8.js +117 -0
  13. package/dist/assets/Scrollbar-CYtpM7mc.js +77 -0
  14. package/dist/assets/Select-DTG-wtu5.js +454 -0
  15. package/dist/assets/SettingsView-BzBMKaLz.css +1 -0
  16. package/dist/assets/SettingsView-CppuSCZA.js +1129 -0
  17. package/dist/assets/SkillsView-86Z-HE_X.css +1 -0
  18. package/dist/assets/SkillsView-CciuH5wp.js +1 -0
  19. package/dist/assets/Spin-DWreY5m0.js +43 -0
  20. package/dist/assets/Suffix-B828Aenx.js +25 -0
  21. package/dist/assets/Tooltip-BCHslENT.js +1 -0
  22. package/dist/assets/Warning-Ba-wYRRB.js +1 -0
  23. package/dist/assets/_plugin-vue_export-helper-CV9qMihF.js +47 -0
  24. package/dist/assets/app-4gFjNUoo.js +1 -0
  25. package/dist/assets/chat-P2QaPvpZ.js +6 -0
  26. package/dist/assets/context-B74FvHiJ.js +109 -0
  27. package/dist/assets/index-Cx8mFF2D.js +307 -0
  28. package/dist/assets/index-DwVgwUIX.css +1 -0
  29. package/dist/assets/jobs-DVxci1LY.js +1 -0
  30. package/dist/assets/keysOf-Dvq9k1rv.js +1 -0
  31. package/dist/assets/omit-QZj0aLfU.js +1 -0
  32. package/dist/assets/pinia-tE0RcsDr.js +1 -0
  33. package/dist/assets/runtime-core.esm-bundler-yNW65ghW.js +1 -0
  34. package/dist/assets/skills-DgbQAgoB.js +1 -0
  35. package/dist/assets/use-message-Dz_GbH5h.js +1 -0
  36. package/dist/index.html +19 -8
  37. package/dist/server/index.js +2 -0
  38. package/dist/server/routes/filesystem.d.ts +2 -0
  39. package/dist/server/routes/filesystem.js +427 -0
  40. package/package.json +1 -1
  41. package/dist/assets/ChatView-BBqtEbUW.js +0 -38
  42. package/dist/assets/ChatView-DC6_7Uwg.css +0 -1
  43. package/dist/assets/JobsView-sQ8sqrxF.js +0 -356
  44. package/dist/assets/LogsView-DukKyFJt.js +0 -1
  45. package/dist/assets/Modal-oIDM0xXN.js +0 -232
  46. package/dist/assets/Spin-zWt--szS.js +0 -476
  47. package/dist/assets/Tooltip-BGvPCNBt.js +0 -1
  48. package/dist/assets/Warning-B9_T2nKK.js +0 -1
  49. package/dist/assets/_plugin-vue_export-helper-V8xgnEJh.js +0 -231
  50. package/dist/assets/chat-CGF6ipPC.js +0 -5
  51. package/dist/assets/fade-in-scale-up.cssr-DQYNrBys.js +0 -45
  52. package/dist/assets/index-BsLYVWlc.js +0 -307
  53. package/dist/assets/index-DDAe8BhJ.css +0 -1
  54. package/dist/assets/jobs-QHXENDTQ.js +0 -1
  55. package/dist/assets/use-message-42wmA96q.js +0 -117
  56. /package/dist/assets/{client-ZYGCrm9m.js → client-BKiVmpru.js} +0 -0
package/README.md CHANGED
@@ -72,6 +72,7 @@ hermes-web-ui/
72
72
  │ │ ├── proxy.ts # API proxy to Hermes (/api/*, /v1/*)
73
73
  │ │ ├── upload.ts # File upload (POST /upload)
74
74
  │ │ ├── sessions.ts # Session management via Hermes CLI
75
+ │ │ ├── filesystem.ts # Skills, memory, config model management
75
76
  │ │ ├── webhook.ts # Webhook receiver
76
77
  │ │ └── logs.ts # Log file listing and reading
77
78
  │ └── services/
@@ -80,13 +81,16 @@ hermes-web-ui/
80
81
  │ ├── api/ # Frontend API layer
81
82
  │ ├── stores/ # Pinia state management
82
83
  │ ├── components/
83
- │ │ ├── layout/AppSidebar.vue # Sidebar navigation
84
+ │ │ ├── layout/
85
+ │ │ │ ├── AppSidebar.vue # Sidebar navigation
86
+ │ │ │ └── ModelSelector.vue # Global model selector
84
87
  │ │ ├── chat/ # Chat components
85
88
  │ │ └── jobs/ # Job components
86
89
  │ ├── views/
87
90
  │ │ ├── ChatView.vue # Chat page
88
91
  │ │ ├── JobsView.vue # Jobs page
89
- │ │ └── LogsView.vue # Logs page
92
+ │ │ ├── LogsView.vue # Logs page
93
+ │ │ └── SettingsView.vue # Settings (model management)
90
94
  │ └── router/index.ts # Router configuration
91
95
  └── dist/ # Build output (published to npm)
92
96
  ├── server/index.js # Compiled BFF
@@ -102,6 +106,16 @@ hermes-web-ui/
102
106
  - Multi-session switching with message history
103
107
  - Markdown rendering with syntax highlighting and code copy
104
108
  - File upload support (saved to temp, path passed to API)
109
+ - Model selector — automatically discovers available models from `~/.hermes/auth.json` credential pool
110
+ - Global model switching (updates `~/.hermes/config.yaml`)
111
+ - Per-session model display (badge in chat header and session list)
112
+
113
+ ### Model Management
114
+ - Automatically reads credential pool from `~/.hermes/auth.json`
115
+ - Fetches available models from each provider endpoint (`/v1/models`)
116
+ - Groups models by provider (e.g. zai, subrouter.ai)
117
+ - Switching model updates `model.provider` in config.yaml to bypass env auto-detection
118
+ - Error handling: parallel fetching, per-provider timeout, fallback to config.yaml parsing
105
119
 
106
120
  ### Scheduled Jobs
107
121
  - Job list view (including paused/disabled jobs)
@@ -133,6 +147,9 @@ The BFF layer handles:
133
147
  - SSE streaming passthrough
134
148
  - File upload to temp directory
135
149
  - Session CRUD via Hermes CLI
150
+ - Model discovery from `~/.hermes/auth.json` credential pool
151
+ - Config.yaml model switching (reads/writes `~/.hermes/config.yaml`)
152
+ - Skills, memory, and custom provider management
136
153
  - Log file reading and parsing
137
154
  - Static file serving (SPA fallback)
138
155
 
@@ -0,0 +1 @@
1
+ .message[data-v-42b5e195]{flex-direction:column;display:flex}.message.user[data-v-42b5e195]{align-items:flex-end}.message.user .msg-body[data-v-42b5e195]{max-width:75%}.message.user .msg-content.user[data-v-42b5e195]{align-items:flex-end}.message.user .message-bubble[data-v-42b5e195]{background-color:#e8e8e8;border-radius:10px 10px 4px}.message.assistant[data-v-42b5e195]{flex-direction:row;align-items:flex-start;gap:8px}.message.assistant .msg-body[data-v-42b5e195]{max-width:80%}.message.assistant .msg-avatar[data-v-42b5e195]{border-radius:4px;flex-shrink:0;width:28px;height:28px;margin-top:2px}.message.assistant .message-bubble[data-v-42b5e195]{background-color:#f5f5f5;border-radius:10px 10px 10px 4px}.message.tool[data-v-42b5e195],.message.system[data-v-42b5e195]{align-items:flex-start}.message.system .message-bubble.system[data-v-42b5e195]{background-color:#f57f170f;border-left:3px solid #f57f17;border-radius:6px;max-width:80%}.msg-body[data-v-42b5e195]{align-items:flex-start;gap:8px;max-width:85%;display:flex}.msg-content[data-v-42b5e195]{flex-direction:column;min-width:0;display:flex}.message-bubble[data-v-42b5e195]{word-break:break-word;padding:10px 14px;font-size:14px;line-height:1.65}.msg-attachments[data-v-42b5e195]{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.msg-attachment[data-v-42b5e195]{background-color:#0000000a;border:1px solid #ebebeb;border-radius:6px;overflow:hidden}.msg-attachment.image[data-v-42b5e195]{max-width:200px}.msg-attachment-thumb[data-v-42b5e195]{object-fit:contain;max-width:200px;max-height:160px;display:block}.msg-attachment-file[data-v-42b5e195]{color:#666;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.msg-attachment-file .att-name[data-v-42b5e195]{white-space:nowrap;text-overflow:ellipsis;max-width:160px;overflow:hidden}.msg-attachment-file .att-size[data-v-42b5e195]{color:#999;flex-shrink:0;font-size:11px}.message-time[data-v-42b5e195]{color:#999;margin-top:4px;padding:0 4px;font-size:11px}.tool-line[data-v-42b5e195]{color:#999;align-items:center;gap:6px;padding:0 4px;font-size:11px;display:flex}.tool-line .tool-name[data-v-42b5e195]{font-family:JetBrains Mono,Fira Code,Consolas,monospace}.tool-line .tool-preview[data-v-42b5e195]{text-overflow:ellipsis;white-space:nowrap;max-width:400px;overflow:hidden}.streaming-cursor[data-v-42b5e195]{vertical-align:text-bottom;background-color:#999;width:2px;height:1em;margin-left:2px;animation:.8s infinite blink-42b5e195;display:inline-block}.streaming-dots[data-v-42b5e195]{gap:4px;padding:4px 0;display:flex}.streaming-dots span[data-v-42b5e195]{background-color:#999;border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite pulse-42b5e195}.streaming-dots span[data-v-42b5e195]:nth-child(2){animation-delay:.2s}.streaming-dots span[data-v-42b5e195]:nth-child(3){animation-delay:.4s}@keyframes blink-42b5e195{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes pulse-42b5e195{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.message-list[data-v-c48f8f02]{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.empty-state[data-v-c48f8f02]{color:#999;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.empty-state .empty-logo[data-v-c48f8f02]{opacity:.25;width:48px;height:48px}.empty-state p[data-v-c48f8f02]{font-size:14px}.streaming-indicator[data-v-c48f8f02]{color:#999;align-items:center;gap:4px;padding:4px;display:flex}.streaming-indicator span[data-v-c48f8f02]{background-color:#999;border-radius:50%;width:5px;height:5px;animation:1.4s ease-in-out infinite stream-pulse-c48f8f02}.streaming-indicator span[data-v-c48f8f02]:nth-child(2){animation-delay:.2s}.streaming-indicator span[data-v-c48f8f02]:nth-child(3){animation-delay:.4s}@keyframes stream-pulse-c48f8f02{0%,80%,to{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.chat-input-area[data-v-38a3b8f9]{border-top:1px solid #e0e0e0;flex-shrink:0;padding:12px 20px 16px}.attachment-previews[data-v-38a3b8f9]{flex-wrap:wrap;gap:8px;padding:0 0 10px;display:flex}.attachment-preview[data-v-38a3b8f9]{background-color:#f0f0f0;border:1px solid #e0e0e0;border-radius:6px;position:relative;overflow:hidden}.attachment-preview.image[data-v-38a3b8f9]{width:64px;height:64px}.attachment-thumb[data-v-38a3b8f9]{object-fit:cover;width:100%;height:100%}.attachment-file[data-v-38a3b8f9]{color:#666;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:80px;max-width:140px;padding:8px 12px;display:flex}.attachment-file .file-name[data-v-38a3b8f9]{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.attachment-file .file-size[data-v-38a3b8f9]{color:#999;font-size:10px}.attachment-remove[data-v-38a3b8f9]{color:#fff;cursor:pointer;opacity:0;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;transition:opacity .15s;display:flex;position:absolute;top:2px;right:2px}.attachment-preview:hover .attachment-remove[data-v-38a3b8f9]{opacity:1}.file-input-hidden[data-v-38a3b8f9]{display:none}.input-wrapper[data-v-38a3b8f9]{background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s;display:flex}.input-wrapper[data-v-38a3b8f9]:focus-within{border-color:#333}.input-textarea[data-v-38a3b8f9]{color:#1a1a1a;resize:none;background:0 0;border:none;outline:none;flex:1;min-height:20px;max-height:100px;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;overflow-y:auto}.input-textarea[data-v-38a3b8f9]::placeholder{color:#999}.input-actions[data-v-38a3b8f9]{flex-shrink:0;align-items:center;gap:6px;display:flex}.input-wrapper.drag-over[data-v-38a3b8f9]{background-color:#4a90d90a;border-style:dashed;border-color:#4a90d9}.chat-panel[data-v-90fbcad1]{height:100%;display:flex}.session-list[data-v-90fbcad1]{border-right:1px solid #e0e0e0;flex-direction:column;flex-shrink:0;width:220px;transition:width .25s,opacity .25s;display:flex;overflow:hidden}.session-list.collapsed[data-v-90fbcad1]{opacity:0;pointer-events:none;border-right:none;width:0}.session-list-header[data-v-90fbcad1]{flex-shrink:0;justify-content:space-between;align-items:center;padding:12px;display:flex}.session-list-title[data-v-90fbcad1]{color:#999;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.session-items[data-v-90fbcad1]{flex:1;padding:0 6px 12px;overflow-y:auto}.session-loading[data-v-90fbcad1],.session-empty[data-v-90fbcad1]{color:#999;text-align:center;padding:16px 10px;font-size:12px}.session-item[data-v-90fbcad1]{cursor:pointer;text-align:left;color:#666;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;width:100%;margin-bottom:2px;padding:8px 10px;transition:all .15s;display:flex}.session-item[data-v-90fbcad1]:hover{color:#1a1a1a;background:#3333330f}.session-item:hover .session-item-delete[data-v-90fbcad1]{opacity:1}.session-item.active[data-v-90fbcad1]{color:#1a1a1a;background:#3333331a;font-weight:500}.session-item-content[data-v-90fbcad1]{flex:1;overflow:hidden}.session-item-title[data-v-90fbcad1]{white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.session-item-time[data-v-90fbcad1]{color:#999;font-size:11px}.session-item-meta[data-v-90fbcad1]{align-items:center;gap:6px;margin-top:2px;display:flex}.session-item-model[data-v-90fbcad1]{color:#333;text-overflow:ellipsis;white-space:nowrap;background:#33333314;border-radius:3px;flex-shrink:0;max-width:100px;padding:0 5px;font-size:10px;line-height:16px;overflow:hidden}.session-item-delete[data-v-90fbcad1]{opacity:0;color:#999;cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:2px;transition:all .15s}.session-item-delete[data-v-90fbcad1]:hover{color:#c62828;background:#c628281a}.chat-main[data-v-90fbcad1]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.chat-header[data-v-90fbcad1]{border-bottom:1px solid #e0e0e0;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.header-left[data-v-90fbcad1]{flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.header-center[data-v-90fbcad1]{flex-shrink:0;min-width:140px;max-width:240px}.header-session-title[data-v-90fbcad1]{color:#1a1a1a;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.model-badge[data-v-90fbcad1]{color:#999;background:#3333331a;border:1px solid #e0e0e0;border-radius:10px;flex-shrink:0;padding:2px 8px;font-size:11px}.header-actions[data-v-90fbcad1]{flex-shrink:0;align-items:center;gap:4px;display:flex}.chat-view[data-v-d35d4d9c]{flex-direction:column;height:100vh;display:flex}
@@ -0,0 +1,16 @@
1
+ import{t as e}from"./MarkdownRenderer-DNP-kPA8.js";import{C as t,Ct as n,E as r,F as i,G as a,I as o,K as s,L as c,M as l,U as u,_ as d,at as f,d as p,f as m,g as h,i as g,l as _,p as v,st as y,tt as b,u as x,v as S,wt as C,x as w}from"./runtime-core.esm-bundler-yNW65ghW.js";import{H as T,St as E,V as D,X as O,Y as k,c as A,ct as j,dt as M,l as N,lt as P,q as F,r as I,t as L,tt as R,wt as z}from"./_plugin-vue_export-helper-CV9qMihF.js";import{t as ee}from"./Warning-Ba-wYRRB.js";import{i as te,n as B,o as V,t as ne}from"./Popover-blRIsd-8.js";import{o as re,s as H}from"./Scrollbar-CYtpM7mc.js";import{a as ie,r as U}from"./context-B74FvHiJ.js";import{t as ae}from"./keysOf-Dvq9k1rv.js";import{t as W}from"./omit-QZj0aLfU.js";import{t as G}from"./Tooltip-BCHslENT.js";import{t as K}from"./use-message-Dz_GbH5h.js";import{n as q,t as J}from"./chat-P2QaPvpZ.js";import{n as Y}from"./app-4gFjNUoo.js";var oe={iconSize:`22px`};function se(e){let{fontSize:t,warningColor:n}=e;return Object.assign(Object.assign({},oe),{fontSize:t,iconColor:n})}var ce=A({name:`Popconfirm`,common:I,peers:{Button:ie,Popover:te},self:se}),X=R(`n-popconfirm`),Z={positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},onPositiveClick:{type:Function,required:!0},onNegativeClick:{type:Function,required:!0}},Q=ae(Z),le=S({name:`NPopconfirmPanel`,props:Z,setup(e){let{localeRef:n}=H(`Popconfirm`),{inlineThemeDisabled:r}=T(),{mergedClsPrefixRef:i,mergedThemeRef:a,props:o}=t(X),s=_(()=>{let{common:{cubicBezierEaseInOut:e},self:{fontSize:t,iconSize:n,iconColor:r}}=a.value;return{"--n-bezier":e,"--n-font-size":t,"--n-icon-size":n,"--n-icon-color":r}}),c=r?D(`popconfirm-panel`,void 0,s,o):void 0;return Object.assign(Object.assign({},H(`Popconfirm`)),{mergedClsPrefix:i,cssVars:r?void 0:s,localizedPositiveText:_(()=>e.positiveText||n.value.positiveText),localizedNegativeText:_(()=>e.negativeText||n.value.negativeText),positiveButtonProps:f(o,`positiveButtonProps`),negativeButtonProps:f(o,`negativeButtonProps`),handlePositiveClick(t){e.onPositiveClick(t)},handleNegativeClick(t){e.onNegativeClick(t)},themeClass:c?.themeClass,onRender:c?.onRender})},render(){var e;let{mergedClsPrefix:t,showIcon:n,$slots:r}=this,i=F(r.action,()=>this.negativeText===null&&this.positiveText===null?[]:[this.negativeText!==null&&w(U,Object.assign({size:`small`,onClick:this.handleNegativeClick},this.negativeButtonProps),{default:()=>this.localizedNegativeText}),this.positiveText!==null&&w(U,Object.assign({size:`small`,type:`primary`,onClick:this.handlePositiveClick},this.positiveButtonProps),{default:()=>this.localizedPositiveText})]);return(e=this.onRender)==null||e.call(this),w(`div`,{class:[`${t}-popconfirm__panel`,this.themeClass],style:this.cssVars},k(r.default,e=>n||e?w(`div`,{class:`${t}-popconfirm__body`},n?w(`div`,{class:`${t}-popconfirm__icon`},F(r.icon,()=>[w(re,{clsPrefix:t},{default:()=>w(ee,null)})])):null,e):null),i?w(`div`,{class:[`${t}-popconfirm__action`]},i):null)}}),ue=P(`popconfirm`,[M(`body`,`
2
+ font-size: var(--n-font-size);
3
+ display: flex;
4
+ align-items: center;
5
+ flex-wrap: nowrap;
6
+ position: relative;
7
+ `,[M(`icon`,`
8
+ display: flex;
9
+ font-size: var(--n-icon-size);
10
+ color: var(--n-icon-color);
11
+ transition: color .3s var(--n-bezier);
12
+ margin: 0 8px 0 0;
13
+ `)]),M(`action`,`
14
+ display: flex;
15
+ justify-content: flex-end;
16
+ `,[j(`&:not(:first-child)`,`margin-top: 8px`),P(`button`,[j(`&:not(:last-child)`,`margin-right: 8px;`)])])]),de=S({name:`Popconfirm`,props:Object.assign(Object.assign(Object.assign({},N.props),B),{positiveText:String,negativeText:String,showIcon:{type:Boolean,default:!0},trigger:{type:String,default:`click`},positiveButtonProps:Object,negativeButtonProps:Object,onPositiveClick:Function,onNegativeClick:Function}),slots:Object,__popover__:!0,setup(e){let{mergedClsPrefixRef:t}=T(),n=N(`Popconfirm`,`-popconfirm`,ue,ce,e,t),r=b(null);function i(t){if(!r.value?.getMergedShow())return;let{onPositiveClick:n,"onUpdate:show":i}=e;Promise.resolve(n?n(t):!0).then(e=>{var t;e!==!1&&((t=r.value)==null||t.setShow(!1),i&&O(i,!1))})}function a(t){if(!r.value?.getMergedShow())return;let{onNegativeClick:n,"onUpdate:show":i}=e;Promise.resolve(n?n(t):!0).then(e=>{var t;e!==!1&&((t=r.value)==null||t.setShow(!1),i&&O(i,!1))})}return o(X,{mergedThemeRef:n,mergedClsPrefixRef:t,props:e}),{setShow(e){var t;(t=r.value)==null||t.setShow(e)},syncPosition(){var e;(e=r.value)==null||e.syncPosition()},mergedTheme:n,popoverInstRef:r,handlePositiveClick:i,handleNegativeClick:a}},render(){let{$slots:e,$props:t,mergedTheme:n}=this;return w(ne,Object.assign({},W(t,Q),{theme:n.peers.Popover,themeOverrides:n.peerOverrides.Popover,internalExtraClass:[`popconfirm`],ref:`popoverInstRef`}),{trigger:e.trigger,default:()=>{let n=V(t,Q);return w(le,Object.assign({},n,{onPositiveClick:this.handlePositiveClick,onNegativeClick:this.handleNegativeClick}),e)}})}}),fe={key:0,class:`tool-line`},pe={class:`tool-name`},me={key:0,class:`tool-preview`},he={key:1,class:`msg-body`},ge={key:0,src:q,alt:`Hermes`,class:`msg-avatar`},_e={key:0,class:`msg-attachments`},ve=[`src`,`alt`],ye={key:1,class:`msg-attachment-file`},be={class:`att-name`},xe={class:`att-size`},Se={key:2,class:`streaming-cursor`},Ce={key:3,class:`streaming-dots`},we={class:`message-time`},Te=L(S({__name:`MessageItem`,props:{message:{}},setup(t){let r=t,a=_(()=>r.message.role===`system`),o=_(()=>new Date(r.message.timestamp).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}));function s(e){return e.startsWith(`image/`)}function l(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}let u=_(()=>(r.message.attachments?.length??0)>0);return(r,d)=>(i(),v(`div`,{class:n([`message`,[t.message.role]])},[t.message.role===`tool`?(i(),v(`div`,fe,[d[0]||=x(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,class:`tool-icon`},[x(`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),x(`span`,pe,C(t.message.toolName),1),t.message.toolPreview?(i(),v(`span`,me,C(t.message.toolPreview),1)):m(``,!0)])):(i(),v(`div`,he,[t.message.role===`assistant`?(i(),v(`img`,ge)):m(``,!0),x(`div`,{class:n([`msg-content`,t.message.role])},[x(`div`,{class:n([`message-bubble`,{system:a.value}])},[u.value?(i(),v(`div`,_e,[(i(!0),v(g,null,c(t.message.attachments,e=>(i(),v(`div`,{key:e.id,class:n([`msg-attachment`,{image:s(e.type)}])},[s(e.type)&&e.url?(i(),v(`img`,{key:0,src:e.url,alt:e.name,class:`msg-attachment-thumb`},null,8,ve)):(i(),v(`div`,ye,[d[1]||=x(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[x(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),x(`polyline`,{points:`14 2 14 8 20 8`})],-1),x(`span`,be,C(e.name),1),x(`span`,xe,C(l(e.size)),1)]))],2))),128))])):m(``,!0),t.message.content?(i(),p(e,{key:1,content:t.message.content},null,8,[`content`])):m(``,!0),t.message.isStreaming?(i(),v(`span`,Se)):m(``,!0),t.message.isStreaming&&!t.message.content?(i(),v(`div`,Ce,[...d[2]||=[x(`span`,null,null,-1),x(`span`,null,null,-1),x(`span`,null,null,-1)]])):m(``,!0)],2),x(`div`,we,C(o.value),1)],2)]))],2))}}),[[`__scopeId`,`data-v-42b5e195`]]),Ee={key:0,class:`empty-state`},De={key:1,class:`streaming-indicator`},Oe=L(S({__name:`MessageList`,setup(e){let t=J(),n=b();function a(){r(()=>{n.value&&(n.value.scrollTop=n.value.scrollHeight)})}return u(()=>t.messages.length,a),u(()=>t.messages[t.messages.length-1]?.content,a),u(()=>t.isStreaming,e=>{e&&a()}),(e,r)=>(i(),v(`div`,{ref_key:`listRef`,ref:n,class:`message-list`},[y(t).messages.length===0?(i(),v(`div`,Ee,[...r[0]||=[x(`img`,{src:`/assets/logo-BAarh-tH.png`,alt:`Hermes`,class:`empty-logo`},null,-1),x(`p`,null,`Start a conversation with Hermes Agent`,-1)]])):m(``,!0),(i(!0),v(g,null,c(y(t).messages,e=>(i(),p(Te,{key:e.id,message:e},null,8,[`message`]))),128)),y(t).isStreaming?(i(),v(`div`,De,[...r[1]||=[x(`span`,null,null,-1),x(`span`,null,null,-1),x(`span`,null,null,-1)]])):m(``,!0)],512))}}),[[`__scopeId`,`data-v-c48f8f02`]]),ke={class:`chat-input-area`},Ae={key:0,class:`attachment-previews`},je=[`src`,`alt`],Me={key:1,class:`attachment-file`},Ne={class:`file-name`},Pe={class:`file-size`},Fe=[`onClick`],Ie={class:`input-actions`},Le=L(S({__name:`ChatInput`,setup(e){let t=J(),r=b(``),o=b(),l=b(),u=b([]),f=b(!1),S=b(0),w=_(()=>r.value.trim()||u.value.length>0);function T(e){if(u.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);u.value.push({id:t,name:e.name,type:e.type,size:e.size,url:n,file:e})}function D(){l.value?.click()}function O(e){let t=e.target;if(t.files){for(let e of t.files)T(e);t.value=``}}function k(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`;T(new File([t],`pasted-${Date.now()}.${n}`,{type:e.type}))}}}function A(e){e.preventDefault()}function j(e){e.preventDefault(),e.dataTransfer?.types.includes(`Files`)&&(S.value++,f.value=!0)}function M(){S.value--,S.value<=0&&(S.value=0,f.value=!1)}function N(e){e.preventDefault(),S.value=0,f.value=!1;let t=Array.from(e.dataTransfer?.files||[]);if(t.length){for(let e of t)T(e);o.value?.focus()}}function P(){let e=r.value.trim();!e&&u.value.length===0||(t.sendMessage(e,u.value.length>0?u.value:void 0),r.value=``,u.value=[],o.value&&(o.value.style.height=`auto`))}function F(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),P())}function I(e){let t=e.target;t.style.height=`auto`,t.style.height=Math.min(t.scrollHeight,100)+`px`}function L(e){let t=u.value.findIndex(t=>t.id===e);t!==-1&&(URL.revokeObjectURL(u.value[t].url),u.value.splice(t,1))}function R(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}function z(e){return e.startsWith(`image/`)}return(e,_)=>(i(),v(`div`,ke,[u.value.length>0?(i(),v(`div`,Ae,[(i(!0),v(g,null,c(u.value,e=>(i(),v(`div`,{key:e.id,class:n([`attachment-preview`,{image:z(e.type)}])},[z(e.type)?(i(),v(`img`,{key:0,src:e.url,alt:e.name,class:`attachment-thumb`},null,8,je)):(i(),v(`div`,Me,[_[2]||=x(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[x(`path`,{d:`M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z`}),x(`polyline`,{points:`14 2 14 8 20 8`})],-1),x(`span`,Ne,C(e.name),1),x(`span`,Pe,C(R(e.size)),1)])),x(`button`,{class:`attachment-remove`,onClick:t=>L(e.id)},[..._[3]||=[x(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[x(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),x(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]],8,Fe)],2))),128))])):m(``,!0),x(`div`,{class:n([`input-wrapper`,{"drag-over":f.value}]),onDragover:A,onDragenter:j,onDragleave:M,onDrop:N},[x(`input`,{ref_key:`fileInputRef`,ref:l,type:`file`,multiple:``,class:`file-input-hidden`,onChange:O},null,544),s(x(`textarea`,{ref_key:`textareaRef`,ref:o,"onUpdate:modelValue":_[0]||=e=>r.value=e,class:`input-textarea`,placeholder:`Type a message... (Enter to send, Shift+Enter for new line)`,rows:`1`,onKeydown:F,onInput:I,onPaste:k},null,544),[[E,r.value]]),x(`div`,Ie,[d(y(G),{trigger:`hover`},{trigger:a(()=>[d(y(U),{quaternary:``,size:`small`,onClick:D,circle:``},{icon:a(()=>[..._[4]||=[x(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[x(`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:a(()=>[_[5]||=h(` Attach files `,-1)]),_:1}),y(t).isStreaming?(i(),p(y(U),{key:0,size:`small`,type:`error`,onClick:_[1]||=e=>y(t).stopStreaming()},{default:a(()=>[..._[6]||=[h(` Stop `,-1)]]),_:1})):m(``,!0),d(y(U),{size:`small`,type:`primary`,disabled:!w.value||y(t).isStreaming,onClick:P},{icon:a(()=>[..._[7]||=[x(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[x(`line`,{x1:`22`,y1:`2`,x2:`11`,y2:`13`}),x(`polygon`,{points:`22 2 15 22 11 13 2 9 22 2`})],-1)]]),default:a(()=>[_[8]||=h(` Send `,-1)]),_:1},8,[`disabled`])])],34)]))}}),[[`__scopeId`,`data-v-38a3b8f9`]]),Re={class:`chat-panel`},ze={class:`session-list-header`},Be={key:0,class:`session-list-title`},Ve={key:0,class:`session-items`},He={key:0,class:`session-loading`},Ue={key:1,class:`session-empty`},We=[`onClick`],Ge={class:`session-item-content`},Ke={class:`session-item-title`},qe={class:`session-item-meta`},Je={key:0,class:`session-item-model`},$={class:`session-item-time`},Ye={class:`chat-main`},Xe={class:`chat-header`},Ze={class:`header-left`},Qe={class:`header-session-title`},$e={class:`header-center`},et={key:0,class:`model-badge`},tt={class:`header-actions`},nt=L(S({__name:`ChatPanel`,setup(e){let t=J(),r=Y(),o=K(),s=b(!0),l=_(()=>[...t.sessions].sort((e,t)=>t.createdAt-e.createdAt)),u=_(()=>t.activeSession?.id||`New Chat`),f=_(()=>t.activeSession?.model||r.selectedModel||``);function S(){t.newChat()}function w(){t.activeSessionId&&(navigator.clipboard.writeText(t.activeSessionId),o.success(`Copied`))}function T(e){t.deleteSession(e),o.success(`Session deleted`)}function E(e){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`})}return(e,r)=>(i(),v(`div`,Re,[x(`aside`,{class:n([`session-list`,{collapsed:!s.value}])},[x(`div`,ze,[s.value?(i(),v(`span`,Be,`Sessions`)):m(``,!0),d(y(U),{quaternary:``,size:`tiny`,onClick:S,circle:``},{icon:a(()=>[...r[2]||=[x(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[x(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),x(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),_:1})]),s.value?(i(),v(`div`,Ve,[y(t).isLoadingSessions&&l.value.length===0?(i(),v(`div`,He,`Loading...`)):l.value.length===0?(i(),v(`div`,Ue,`No sessions`)):m(``,!0),(i(!0),v(g,null,c(l.value,e=>(i(),v(`button`,{key:e.id,class:n([`session-item`,{active:e.id===y(t).activeSessionId}]),onClick:n=>y(t).switchSession(e.id)},[x(`div`,Ge,[x(`span`,Ke,C(e.title),1),x(`span`,qe,[e.model?(i(),v(`span`,Je,C(e.model),1)):m(``,!0),x(`span`,$,C(E(e.createdAt)),1)])]),e.id!==y(t).activeSessionId||l.value.length>1?(i(),p(y(de),{key:0,onPositiveClick:t=>T(e.id)},{trigger:a(()=>[x(`button`,{class:`session-item-delete`,onClick:r[0]||=z(()=>{},[`stop`])},[...r[3]||=[x(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[x(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),x(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})],-1)]])]),default:a(()=>[r[4]||=h(` Delete this session? `,-1)]),_:1},8,[`onPositiveClick`])):m(``,!0)],10,We))),128))])):m(``,!0)],2),x(`div`,Ye,[x(`header`,Xe,[x(`div`,Ze,[d(y(U),{quaternary:``,size:`small`,onClick:r[1]||=e=>s.value=!s.value,circle:``},{icon:a(()=>[...r[5]||=[x(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[x(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`}),x(`rect`,{x:`14`,y:`3`,width:`7`,height:`7`}),x(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`}),x(`rect`,{x:`14`,y:`14`,width:`7`,height:`7`})],-1)]]),_:1}),x(`span`,Qe,C(u.value),1)]),x(`div`,$e,[f.value?(i(),v(`span`,et,C(f.value),1)):m(``,!0)]),x(`div`,tt,[d(y(G),{trigger:`hover`},{trigger:a(()=>[d(y(U),{quaternary:``,size:`small`,onClick:w,circle:``},{icon:a(()=>[...r[6]||=[x(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[x(`rect`,{x:`9`,y:`9`,width:`13`,height:`13`,rx:`2`,ry:`2`}),x(`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:a(()=>[r[7]||=h(` Copy Session ID `,-1)]),_:1}),d(y(U),{size:`small`,onClick:S},{icon:a(()=>[...r[8]||=[x(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[x(`line`,{x1:`12`,y1:`5`,x2:`12`,y2:`19`}),x(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`})],-1)]]),default:a(()=>[r[9]||=h(` New Chat `,-1)]),_:1})])]),d(Oe),d(Le)])]))}}),[[`__scopeId`,`data-v-90fbcad1`]]),rt={class:`chat-view`},it=L(S({__name:`ChatView`,setup(e){let t=Y(),n=J();return l(()=>{t.loadModels(),n.loadSessions()}),(e,t)=>(i(),v(`div`,rt,[d(nt)]))}}),[[`__scopeId`,`data-v-d35d4d9c`]]);export{it as default};
@@ -0,0 +1,234 @@
1
+ import{C as e,E as t,I as n,M as r,U as i,W as a,at as o,i as s,l as c,tt as l,v as u,x as d,y as f}from"./runtime-core.esm-bundler-yNW65ghW.js";import{B as p,H as m,J as h,V as ee,X as g,Y as _,c as v,ct as y,dt as b,f as te,ft as x,it as S,l as C,lt as w,mt as T,n as E,pt as D,q as O,r as k,rt as A,tt as j,u as ne}from"./_plugin-vue_export-helper-CV9qMihF.js";import{f as re,g as M,h as N,m as ie,o as P,r as F,s as ae,t as I,v as oe}from"./Scrollbar-CYtpM7mc.js";import{n as L,t as R}from"./Suffix-B828Aenx.js";var z=u({name:`Eye`,render(){return d(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},d(`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`}),d(`circle`,{cx:`256`,cy:`256`,r:`80`,fill:`none`,stroke:`currentColor`,"stroke-miterlimit":`10`,"stroke-width":`32`}))}}),B=u({name:`EyeOff`,render(){return d(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 512 512`},d(`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`}),d(`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`}),d(`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`}),d(`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`}),d(`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`}))}}),V={paddingTiny:`0 8px`,paddingSmall:`0 10px`,paddingMedium:`0 12px`,paddingLarge:`0 14px`,clearSize:`16px`};function H(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:ee,fontSizeMedium:g,fontSizeLarge:_,heightTiny:v,heightSmall:y,heightMedium:b,heightLarge:te,actionColor:x,clearColor:C,clearColorHover:w,clearColorPressed:T,placeholderColor:E,placeholderColorDisabled:D,iconColor:O,iconColorDisabled:k,iconColorHover:A,iconColorPressed:j,fontWeight:ne}=e;return Object.assign(Object.assign({},V),{fontWeight:ne,countTextColorDisabled:r,countTextColor:n,heightTiny:v,heightSmall:y,heightMedium:b,heightLarge:te,fontSizeTiny:h,fontSizeSmall:ee,fontSizeMedium:g,fontSizeLarge:_,lineHeight:m,lineHeightTextarea:m,borderRadius:p,iconSize:`16px`,groupLabelColor:x,groupLabelTextColor:t,textColor:t,textColorDisabled:r,textDecorationColor:t,caretColor:i,placeholderColor:E,placeholderColorDisabled:D,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 ${S(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 ${S(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 ${S(d,{alpha:.2})}`,caretColorError:d,clearColor:C,clearColorHover:w,clearColorPressed:T,iconColor:O,iconColorDisabled:k,iconColorHover:A,iconColorPressed:j,suffixTextColor:t})}var se=v({name:`Input`,common:k,peers:{Scrollbar:F},self:H}),U=j(`n-input`),ce=w(`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
+ `,[b(`input, textarea`,`
17
+ overflow: hidden;
18
+ flex-grow: 1;
19
+ position: relative;
20
+ `),b(`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
+ `),b(`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
+ `,[y(`&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb`,`
44
+ width: 0;
45
+ height: 0;
46
+ display: none;
47
+ `),y(`&::placeholder`,`
48
+ color: #0000;
49
+ -webkit-text-fill-color: transparent !important;
50
+ `),y(`&:-webkit-autofill ~`,[b(`placeholder`,`display: none;`)])]),x(`round`,[D(`textarea`,`border-radius: calc(var(--n-height) / 2);`)]),b(`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
+ `,[y(`span`,`
60
+ width: 100%;
61
+ display: inline-block;
62
+ `)]),x(`textarea`,[b(`placeholder`,`overflow: visible;`)]),D(`autosize`,`width: 100%;`),x(`autosize`,[b(`textarea-el, input-el`,`
63
+ position: absolute;
64
+ top: 0;
65
+ left: 0;
66
+ height: 100%;
67
+ `)]),w(`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
+ `),b(`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
+ `),b(`input-el`,`
84
+ padding: 0;
85
+ height: var(--n-height);
86
+ line-height: var(--n-height);
87
+ `,[y(`&[type=password]::-ms-reveal`,`display: none;`),y(`+`,[b(`placeholder`,`
88
+ display: flex;
89
+ align-items: center;
90
+ `)])]),D(`textarea`,[b(`placeholder`,`white-space: nowrap;`)]),b(`eye`,`
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: center;
94
+ transition: color .3s var(--n-bezier);
95
+ `),x(`textarea`,`width: 100%;`,[w(`input-word-count`,`
96
+ position: absolute;
97
+ right: var(--n-padding-right);
98
+ bottom: var(--n-padding-vertical);
99
+ `),x(`resizable`,[w(`input-wrapper`,`
100
+ resize: vertical;
101
+ min-height: var(--n-height);
102
+ `)]),b(`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
+ `),b(`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`,[b(`input-el, placeholder`,`text-align: center;`),b(`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
+ `,[w(`icon`,`
132
+ color: var(--n-icon-color);
133
+ `),w(`base-icon`,`
134
+ color: var(--n-icon-color);
135
+ `)])]),x(`disabled`,`
136
+ cursor: not-allowed;
137
+ background-color: var(--n-color-disabled);
138
+ `,[b(`border`,`border: var(--n-border-disabled);`),b(`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
+ `),b(`placeholder`,`color: var(--n-placeholder-color-disabled);`),b(`separator`,`color: var(--n-text-color-disabled);`,[w(`icon`,`
143
+ color: var(--n-icon-color-disabled);
144
+ `),w(`base-icon`,`
145
+ color: var(--n-icon-color-disabled);
146
+ `)]),w(`input-word-count`,`
147
+ color: var(--n-count-text-color-disabled);
148
+ `),b(`suffix, prefix`,`color: var(--n-text-color-disabled);`,[w(`icon`,`
149
+ color: var(--n-icon-color-disabled);
150
+ `),w(`internal-icon`,`
151
+ color: var(--n-icon-color-disabled);
152
+ `)])]),D(`disabled`,[b(`eye`,`
153
+ color: var(--n-icon-color);
154
+ cursor: pointer;
155
+ `,[y(`&:hover`,`
156
+ color: var(--n-icon-color-hover);
157
+ `),y(`&:active`,`
158
+ color: var(--n-icon-color-pressed);
159
+ `)]),y(`&:hover`,[b(`state-border`,`border: var(--n-border-hover);`)]),x(`focus`,`background-color: var(--n-color-focus);`,[b(`state-border`,`
160
+ border: var(--n-border-focus);
161
+ box-shadow: var(--n-box-shadow-focus);
162
+ `)])]),b(`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
+ `),b(`state-border`,`
176
+ border-color: #0000;
177
+ z-index: 1;
178
+ `),b(`prefix`,`margin-right: 4px;`),b(`suffix`,`
179
+ margin-left: 4px;
180
+ `),b(`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
+ `,[w(`base-loading`,`
191
+ font-size: var(--n-icon-size);
192
+ margin: 0 2px;
193
+ color: var(--n-loading-color);
194
+ `),w(`base-clear`,`
195
+ font-size: var(--n-icon-size);
196
+ `,[b(`placeholder`,[w(`base-icon`,`
197
+ transition: color .3s var(--n-bezier);
198
+ color: var(--n-icon-color);
199
+ font-size: var(--n-icon-size);
200
+ `)])]),y(`>`,[w(`icon`,`
201
+ transition: color .3s var(--n-bezier);
202
+ color: var(--n-icon-color);
203
+ font-size: var(--n-icon-size);
204
+ `)]),w(`base-icon`,`
205
+ font-size: var(--n-icon-size);
206
+ `)]),w(`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`,[D(`disabled`,[w(`base-loading`,`
215
+ color: var(--n-loading-color-${e})
216
+ `),b(`input-el, textarea-el`,`
217
+ caret-color: var(--n-caret-color-${e});
218
+ `),b(`state-border`,`
219
+ border: var(--n-border-${e});
220
+ `),y(`&:hover`,[b(`state-border`,`
221
+ border: var(--n-border-hover-${e});
222
+ `)]),y(`&:focus`,`
223
+ background-color: var(--n-color-focus-${e});
224
+ `,[b(`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
+ `,[b(`state-border`,`
230
+ box-shadow: var(--n-box-shadow-focus-${e});
231
+ border: var(--n-border-focus-${e});
232
+ `)])])]))]),le=w(`input`,[x(`disabled`,[b(`input-el, textarea-el`,`
233
+ -webkit-text-fill-color: var(--n-text-color-disabled);
234
+ `)])]);function W(e){let t=0;for(let n of e)t++;return t}function G(e){return e===``||e==null}function ue(e){let t=l(null);function n(){let{value:n}=e;if(!n?.focus){a();return}let{selectionStart:r,selectionEnd:i,value:o}=n;if(r==null||i==null){a();return}t.value={start:r,end:i,beforeText:o.slice(0,r),afterText:o.slice(i)}}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 a(){t.value=null}return i(e,a),{recordCursor:n,restoreCursor:r}}var K=u({name:`InputWordCount`,setup(t,{slots:n}){let{mergedValueRef:r,maxlengthRef:i,mergedClsPrefixRef:a,countGraphemesRef:o}=e(U),s=c(()=>{let{value:e}=r;return e===null||Array.isArray(e)?0:(o.value||W)(e)});return()=>{let{value:e}=i,{value:t}=r;return d(`span`,{class:`${a.value}-input-word-count`},h(n.default,{value:t===null||Array.isArray(t)?``:t},()=>[e===void 0?s.value:`${s.value} / ${e}`]))}}}),q=u({name:`Input`,props:Object.assign(Object.assign({},C.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:s,mergedBorderedRef:u,inlineThemeDisabled:d,mergedRtlRef:h,mergedComponentPropsRef:_}=m(e),v=C(`Input`,`-input`,ce,se,e,s);E&&ne(`-input-safari`,le,s);let y=l(null),b=l(null),x=l(null),S=l(null),w=l(null),D=l(null),O=l(null),k=ue(O),j=l(null),{localeRef:re}=ae(`Input`),P=l(e.defaultValue),F=ie(o(e,`value`),P),I=p(e,{mergedSize:t=>{let{size:n}=e;if(n)return n;let{mergedSize:r}=t||{};return r?.value?r.value:_?.value?.Input?.size||`medium`}}),{mergedSizeRef:L,mergedDisabledRef:R,mergedStatusRef:z}=I,B=l(!1),V=l(!1),H=l(!1),W=l(!1),K=null,q=c(()=>{let{placeholder:t,pair:n}=e;return n?Array.isArray(t)?t:t===void 0?[``,``]:[t,t]:t===void 0?[re.value.placeholder]:[t]}),de=c(()=>{let{value:e}=H,{value:t}=F,{value:n}=q;return!e&&(G(t)||Array.isArray(t)&&G(t[0]))&&n[0]}),fe=c(()=>{let{value:e}=H,{value:t}=F,{value:n}=q;return!e&&n[1]&&(G(t)||Array.isArray(t)&&G(t[1]))}),J=A(()=>e.internalForceFocus||B.value),pe=A(()=>{if(R.value||e.readonly||!e.clearable||!J.value&&!V.value)return!1;let{value:t}=F,{value:n}=J;return e.pair?!!(Array.isArray(t)&&(t[0]||t[1]))&&(V.value||n):!!t&&(V.value||n)}),me=c(()=>{let{showPasswordOn:t}=e;if(t)return t;if(e.showPasswordToggle)return`click`}),Y=l(!1),he=c(()=>{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=c(()=>{let{maxlength:t}=e;return t===void 0?void 0:Number(t)});r(()=>{let{value:e}=F;Array.isArray(e)||nt(e)});let ye=f().proxy;function X(t,n){let{onUpdateValue:r,"onUpdate:value":i,onInput:a}=e,{nTriggerFormInput:o}=I;r&&g(r,t,n),i&&g(i,t,n),a&&g(a,t,n),P.value=t,o()}function Z(t,n){let{onChange:r}=e,{nTriggerFormChange:i}=I;r&&g(r,t,n),P.value=t,i()}function be(t){let{onBlur:n}=e,{nTriggerFormBlur:r}=I;n&&g(n,t),r()}function xe(t){let{onFocus:n}=e,{nTriggerFormFocus:r}=I;n&&g(n,t),r()}function Se(t){let{onClear:n}=e;n&&g(n,t)}function Ce(t){let{onInputBlur:n}=e;n&&g(n,t)}function we(t){let{onInputFocus:n}=e;n&&g(n,t)}function Te(){let{onDeactivate:t}=e;t&&g(t)}function Ee(){let{onActivate:t}=e;t&&g(t)}function De(t){let{onClick:n}=e;n&&g(n,t)}function Oe(t){let{onWrapperFocus:n}=e;n&&g(n,t)}function ke(t){let{onWrapperBlur:n}=e;n&&g(n,t)}function Ae(){H.value=!0}function je(e){H.value=!1,e.target===D.value?Q(e,1):Q(e,0)}function Q(n,r=0,i=`input`){let a=n.target.value;if(nt(a),n instanceof InputEvent&&!n.isComposing&&(H.value=!1),e.type===`textarea`){let{value:e}=j;e&&e.syncUnifiedContainer()}if(K=a,H.value)return;k.recordCursor();let o=Me(a);if(o)if(!e.pair)i===`input`?X(a,{source:r}):Z(a,{source:r});else{let{value:e}=F;e=Array.isArray(e)?[e[0],e[1]]:[``,``],e[r]=a,i===`input`?X(e,{source:r}):Z(e,{source:r})}ye.$forceUpdate(),o||t(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===y.value&&Te(),e.relatedTarget!==null&&(e.relatedTarget===w.value||e.relatedTarget===D.value||e.relatedTarget===b.value)||(W.value=!1),$(e,`blur`),O.value=null}function Pe(e,t){we(e),B.value=!0,W.value=!0,Ee(),$(e,`focus`),t===0?O.value=w.value:t===1?O.value=D.value:t===2&&(O.value=b.value)}function Fe(t){e.passivelyActivated&&(ke(t),$(t,`blur`))}function Ie(t){e.passivelyActivated&&(B.value=!0,Oe(t),$(t,`focus`))}function $(e,t){e.relatedTarget!==null&&(e.relatedTarget===w.value||e.relatedTarget===D.value||e.relatedTarget===b.value||e.relatedTarget===y.value)||(t===`focus`?(xe(e),B.value=!0):t===`blur`&&(be(e),B.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}=y;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(),B.value||Xe()}}function He(){var t;V.value=!0,e.type===`textarea`&&((t=j.value)==null||t.handleMouseEnterWrapper())}function Ue(){var t;V.value=!1,e.type===`textarea`&&((t=j.value)==null||t.handleMouseLeaveWrapper())}function We(){R.value||me.value===`click`&&(Y.value=!Y.value)}function Ge(e){if(R.value)return;e.preventDefault();let t=e=>{e.preventDefault(),N(`mouseup`,document,t)};if(M(`mouseup`,document,t),me.value!==`mousedown`)return;Y.value=!0;let n=()=>{Y.value=!1,N(`mouseup`,document,n)};M(`mouseup`,document,n)}function Ke(t){e.onKeyup&&g(e.onKeyup,t)}function qe(t){switch(e.onKeydown&&g(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}=W;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&&(W.value=!1,t(()=>{var e;(e=y.value)==null||e.focus()}))}function Xe(){var t,n,r;R.value||(e.passivelyActivated?(t=y.value)==null||t.focus():((n=b.value)==null||n.focus(),(r=w.value)==null||r.focus()))}function Ze(){y.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(){R.value||(b.value?b.value.focus():w.value&&w.value.focus())}function et(){let{value:e}=y;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;a(()=>{let{autosize:t,type:n}=e;t&&n===`textarea`?ot=i(F,e=>{!Array.isArray(e)&&e!==K&&nt(e)}):ot?.()});let st=null;a(()=>{e.type===`textarea`?st=i(F,e=>{var t;!Array.isArray(e)&&e!==K&&((t=j.value)==null||t.syncUnifiedContainer())}):st?.()}),n(U,{mergedValueRef:F,maxlengthRef:ve,mergedClsPrefixRef:s,countGraphemesRef:o(e,`countGraphemes`)});let ct={wrapperElRef:y,inputElRef:w,textareaElRef:b,isCompositing:H,clear:Be,focus:Xe,blur:Ze,select:Qe,deactivate:et,activate:$e,scrollTo:tt},lt=te(`Input`,h,s),ut=c(()=>{let{value:e}=L,{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:ee,colorFocus:g,textColorDisabled:_,boxShadowFocus:y,iconSize:b,colorFocusWarning:te,boxShadowFocusWarning:x,borderWarning:S,borderFocusWarning:C,borderHoverWarning:w,colorFocusError:E,boxShadowFocusError:D,borderError:O,borderFocusError:k,borderHoverError:A,clearSize:j,clearColor:ne,clearColorHover:re,clearColorPressed:M,iconColor:N,iconColorDisabled:ie,suffixTextColor:P,countTextColor:F,countTextColorDisabled:ae,iconColorHover:I,iconColorPressed:R,loadingColor:z,loadingColorError:B,loadingColorWarning:V,fontWeight:H,[T(`padding`,e)]:se,[T(`fontSize`,e)]:U,[T(`height`,e)]:ce}}=v.value,{left:le,right:W}=oe(se);return{"--n-bezier":t,"--n-count-text-color":F,"--n-count-text-color-disabled":ae,"--n-color":n,"--n-font-size":U,"--n-font-weight":H,"--n-border-radius":r,"--n-height":ce,"--n-padding-left":le,"--n-padding-right":W,"--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":b,"--n-line-height-textarea":h,"--n-color-disabled":ee,"--n-color-focus":g,"--n-text-color-disabled":_,"--n-box-shadow-focus":y,"--n-loading-color":z,"--n-caret-color-warning":s,"--n-color-focus-warning":te,"--n-box-shadow-focus-warning":x,"--n-border-warning":S,"--n-border-focus-warning":C,"--n-border-hover-warning":w,"--n-loading-color-warning":V,"--n-caret-color-error":o,"--n-color-focus-error":E,"--n-box-shadow-focus-error":D,"--n-border-error":O,"--n-border-focus-error":k,"--n-border-hover-error":A,"--n-loading-color-error":B,"--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":I,"--n-icon-color-pressed":R,"--n-icon-color-disabled":ie,"--n-suffix-text-color":P}}),dt=d?ee(`input`,c(()=>{let{value:e}=L;return e[0]}),ut,e):void 0;return Object.assign(Object.assign({},ct),{wrapperElRef:y,inputElRef:w,inputMirrorElRef:S,inputEl2Ref:D,textareaElRef:b,textareaMirrorElRef:x,textareaScrollbarInstRef:j,rtlEnabled:lt,uncontrolledValue:P,mergedValue:F,passwordVisible:Y,mergedPlaceholder:q,showPlaceholder1:de,showPlaceholder2:fe,mergedFocus:J,isComposing:H,activated:W,showClearButton:pe,mergedSize:L,mergedDisabled:R,textDecorationStyle:he,mergedClsPrefix:s,mergedBordered:u,mergedShowPasswordOn:me,placeholderStyle:it,mergedStatus:z,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:v,cssVars:d?void 0:ut,themeClass:dt?.themeClass,onRender:dt?.onRender})},render(){let{mergedClsPrefix:e,mergedStatus:t,themeClass:n,type:r,countGraphemes:i,onRender:a}=this,o=this.$slots;return a?.(),d(`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`]:r===`textarea`,[`${e}-input--resizable`]:this.resizable&&!this.autosize,[`${e}-input--autosize`]:this.autosize,[`${e}-input--round`]:this.round&&r!==`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},d(`div`,{class:`${e}-input-wrapper`},_(o.prefix,t=>t&&d(`div`,{class:`${e}-input__prefix`},t)),r===`textarea`?d(I,{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 d(s,null,d(`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:i?void 0:this.maxlength,minlength:i?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?d(`div`,{class:`${e}-input__placeholder`,style:[this.placeholderStyle,n],key:`placeholder`},this.mergedPlaceholder[0]):null,this.autosize?d(re,{onResize:this.handleTextAreaMirrorResize},{default:()=>d(`div`,{ref:`textareaMirrorElRef`,class:`${e}-input__textarea-mirror`,key:`mirror`})}):null)}}):d(`div`,{class:`${e}-input__input`},d(`input`,Object.assign({type:r===`password`&&this.mergedShowPasswordOn&&this.passwordVisible?`text`:r},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:i?void 0:this.maxlength,minlength:i?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?d(`div`,{class:`${e}-input__placeholder`},d(`span`,null,this.mergedPlaceholder[0])):null,this.autosize?d(`div`,{class:`${e}-input__input-mirror`,key:`mirror`,ref:`inputMirrorElRef`},`\xA0`):null),!this.pair&&_(o.suffix,t=>t||this.clearable||this.showCount||this.mergedShowPasswordOn||this.loading!==void 0?d(`div`,{class:`${e}-input__suffix`},[_(o[`clear-icon-placeholder`],t=>(this.clearable||t)&&d(L,{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:d(R,{clsPrefix:e,loading:this.loading,showArrow:!1,showClear:!1,style:this.cssVars}),this.internalLoadingBeforeSuffix?t:null,this.showCount&&this.type!==`textarea`?d(K,null,{default:e=>{let{renderCount:t}=this;return t?t(e):o.count?.call(o,e)}}):null,this.mergedShowPasswordOn&&this.type===`password`?d(`div`,{class:`${e}-input__eye`,onMousedown:this.handlePasswordToggleMousedown,onClick:this.handlePasswordToggleClick},this.passwordVisible?O(o[`password-visible-icon`],()=>[d(P,{clsPrefix:e},{default:()=>d(z,null)})]):O(o[`password-invisible-icon`],()=>[d(P,{clsPrefix:e},{default:()=>d(B,null)})])):null]):null)),this.pair?d(`span`,{class:`${e}-input__separator`},O(o.separator,()=>[this.separator])):null,this.pair?d(`div`,{class:`${e}-input-wrapper`},d(`div`,{class:`${e}-input__input`},d(`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:i?void 0:this.maxlength,minlength:i?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?d(`div`,{class:`${e}-input__placeholder`},d(`span`,null,this.mergedPlaceholder[1])):null),_(o.suffix,t=>(this.clearable||t)&&d(`div`,{class:`${e}-input__suffix`},[this.clearable&&d(L,{clsPrefix:e,show:this.showClearButton,onClear:this.handleClear},{icon:()=>o[`clear-icon`]?.call(o),placeholder:()=>o[`clear-icon-placeholder`]?.call(o)}),t]))):null,this.mergedBordered?d(`div`,{class:`${e}-input__border`}):null,this.mergedBordered?d(`div`,{class:`${e}-input__state-border`}):null,this.showCount&&r===`textarea`?d(K,null,{default:e=>{let{renderCount:t}=this;return t?t(e):o.count?.call(o,e)}}):null)}});export{se as n,q as t};