feat: upgrade terminal to xterm.js + WebSocket

- Rewrite terminal.js: xterm.js Terminal per tab, WebSocket per connection
- Light theme terminal (Lumina: white bg, blue cursor, proper ANSI colors)
- Alpine.js keeps tab management, xterm.js handles rendering
- Each tab gets its own WebSocket to /terminal/ws/:hostID
- Mock handler iterates chars (fixes multi-char xterm.js messages)
- Sync mock commands with React template (help, ls, docker ps, etc.)
- Add xterm.css custom scrollbar styles
- terminal_content.html: xterm containers with Alpine show/hide per tab
This commit is contained in:
swanadiva
2026-07-09 18:32:33 +07:00
parent 7accb86203
commit ef4e44984b
5 changed files with 228 additions and 173 deletions
+5
View File
@@ -176,6 +176,11 @@
background: #f1f4f9;
}
/* xterm.js container */
.xterm { padding: 8px 0; }
.xterm-viewport::-webkit-scrollbar { width: 6px; }
.xterm-viewport::-webkit-scrollbar-thumb { background: #c2c6d8; border-radius: 3px; }
/* Strength badges */
.strength-badge-secure {
display: inline-flex;