691bbaa87b
- Revert xterm.js scrollback from 0 to 10000; empirical correlation with bracketed-paste mode failing (each line submitted as separate command). - Add temporary browser-console diagnostics to confirm whether xterm receives pi's \e[?2004h enable sequence and whether outbound paste is BPM-wrapped. - Keep CSS scrollbar hiding and wheel-sensitivity 0 so the original scroll-jank fix remains effective. Typecheck: passed (apps/web)
36 lines
3.0 KiB
Markdown
36 lines
3.0 KiB
Markdown
# apps/web/src/components/features/terminal
|
|
dir: apps/web/src/components/features/terminal
|
|
|
|
index: apps/web/src/components/features/terminal/.pi-map.index.md
|
|
|
|
## role
|
|
Provides the UI components for a responsive, multi-session terminal interface in the web app, including desktop and mobile layouts, session tabs, and special-key input controls.
|
|
## files
|
|
- DesktopTerminalView.tsx | Renders the desktop layout for a multi-session terminal UI, managing tabs, fullscreen mode, font controls, and reset confirmation. | exp: DesktopTerminalView | dep: react, ./terminal, ./terminal-session-tabs, ../../../api/terminal, React, TerminalComponent, TerminalSessionTabs, TerminalSession
|
|
- MobileTerminalView.tsx | Renders a mobile-specific terminal interface with session tabs, toolbar controls, special key inputs, and multiple terminal instances. | exp: MobileTerminalView | dep: react, ./terminal, ./terminal-session-tabs, ../../icon, ./special-keys-strip, ./special-keys-panel, ../../../hooks/use-special-keys, ../../../api/terminal, React, TerminalComponent, TerminalSessionTabs, Icon, SpecialKeysStrip, SpecialKeysPanel
|
|
- special-keys-panel.tsx | Renders a modal overlay panel of special keyboard keys (Home, End, F1-F12, Ctrl+C, etc.) that sends escape sequences to a terminal when clicked. | exp: SpecialKeysPanel | dep: react, ../../../hooks/use-special-keys
|
|
- special-keys-strip.tsx | Renders a touch-accessible strip of special keyboard keys (Esc, Tab, arrows, modifiers) that sends terminal escape sequences with optional modifier support. | exp: SpecialKeysStrip | dep: react, ../../../hooks/use-special-keys, React, use-special-keys hook
|
|
- terminal-session-tabs.test.tsx | Unit tests for a TerminalSessionTabs React component covering tab rendering, selection, close confirmation, inline renaming, session limit enforcement, and connection status display. | dep: @testing-library/react, vitest, ./terminal-session-tabs
|
|
- terminal-session-tabs.tsx | Renders a tabbed interface for managing multiple terminal sessions with support for switching, renaming, closing with confirmation, and creating new sessions. | exp: TerminalSessionInfo, TerminalSessionTabsProps, TerminalSessionTabs | dep: react, React
|
|
- terminal.tsx | | exp: TerminalProps, TerminalRef, TerminalComponent | dep: react, xterm, xterm-addon-fit, xterm-addon-web-links, xterm/css/xterm.css, ../../../hooks/use-special-keys
|
|
## arch
|
|
Modular React component architecture organized by feature, with separate presentational components for desktop/mobile viewports, shared tab/session management, and helper components for terminal input handling.
|
|
## tags
|
|
terminal, special, session, keys, react, tabs, view, strip
|
|
## symbols
|
|
- DesktopTerminalView
|
|
- MobileTerminalView
|
|
- SpecialKeysPanel
|
|
- SpecialKeysStrip
|
|
- TerminalSessionInfo
|
|
- TerminalSessionTabsProps
|
|
- TerminalSessionTabs
|
|
- TerminalProps
|
|
## workflows
|
|
- change terminal behavior
|
|
read: DesktopTerminalView.tsx, MobileTerminalView.tsx, special-keys-panel.tsx
|
|
- update terminal tests
|
|
read: terminal-session-tabs.test.tsx
|
|
## dirty
|
|
-
|