/** * TerminalPanelChrome Component. * * Reusable Ghostty-styled wrapper providing shared visual chrome * for both log viewer and interactive terminal panels. * * Includes: * - Multi-layer glassmorphism shell * - Noise texture SVG overlay for depth * - Animated top accent line (primary gradient with glow) * - Session tabs (TerminalSessionTabs) * - macOS-style header (TerminalPanelHeader) — gated by `showHeader` (default `true`) * - Slots for action bar, children (terminal content), and footer * - Neon magenta scrollbar styles * - StyleSlots + CVA variants for customization * * As of v0.11.0 the structural skeleton is also available as the public * {@link ChromeShell} primitive (variant B nativa upstream). Consumers * who need full toolbar control without the macOS header should compose * with {@link ChromeShell} directly. This component remains the * batteries-included default for log / interactive panels. * * @module components/devenv/terminal/panel/chrome */ import type { ITerminalPanelChromeProps } from './TerminalPanelChrome.types'; /** * Noise texture SVG for glassmorphism depth. * Fractal noise pattern applied as background image. */ export declare const NOISE_TEXTURE_SVG = "\"data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E\""; /** * Terminal scroll customization with neon magenta glow effect. * Applied to xterm.js viewport scrollbar. */ export declare const terminalScrollStyles = "\n @keyframes shimmer-line {\n 0%, 100% { background-position: 200% 0; }\n 50% { background-position: -200% 0; }\n }\n .terminal-scroll .xterm-viewport {\n overflow-y: auto;\n }\n .terminal-scroll .xterm-viewport::-webkit-scrollbar {\n width: 8px;\n }\n .terminal-scroll .xterm-viewport::-webkit-scrollbar-track {\n background: hsl(var(--terminal-bg, var(--background)) / 0.5);\n }\n .terminal-scroll .xterm-viewport::-webkit-scrollbar-thumb {\n background: linear-gradient(\n 180deg,\n hsl(var(--primary) / 0.3) 0%,\n hsl(var(--primary) / 0.5) 50%,\n hsl(var(--primary) / 0.3) 100%\n );\n border-radius: 4px;\n box-shadow: 0 0 10px hsl(var(--primary) / 0.3);\n }\n .terminal-scroll .xterm-viewport::-webkit-scrollbar-thumb:hover {\n background: linear-gradient(\n 180deg,\n hsl(var(--primary) / 0.5) 0%,\n hsl(var(--primary) / 0.7) 50%,\n hsl(var(--primary) / 0.5) 100%\n );\n box-shadow: 0 0 15px hsl(var(--primary) / 0.5);\n }\n\n /* === CRT Shader Effects (opt-in via settings) === */\n\n /* Scanline overlay - replicates bettercrt.glsl scanline effect */\n .terminal-crt {\n position: relative;\n }\n .terminal-crt::after {\n content: '';\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 20;\n background: repeating-linear-gradient(\n 0deg,\n rgb(0 0 0 / 0.12) 0px,\n rgb(0 0 0 / 0.12) 1px,\n transparent 1px,\n transparent 2px\n );\n mix-blend-mode: multiply;\n }\n\n /* Vignette - CRT monitor light falloff */\n .terminal-crt::before {\n content: '';\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 19;\n background: radial-gradient(\n ellipse at center,\n transparent 60%,\n rgb(0 0 0 / 0.15) 100%\n );\n }\n\n /* Bloom/glow - replicates bloom.glsl text glow on bright text */\n .terminal-bloom * {\n text-shadow: 0 0 4px currentColor;\n }\n\n /* Bloom on xterm canvas - subtle drop-shadow on the canvas element */\n .terminal-bloom canvas {\n filter: drop-shadow(0 0 1px hsl(var(--primary) / 0.15));\n }\n\n /* Reduced motion - disable all CRT effects */\n @media (prefers-reduced-motion: reduce) {\n .terminal-crt::after,\n .terminal-crt::before { display: none; }\n .terminal-bloom * { text-shadow: none !important; }\n .terminal-bloom canvas { filter: none !important; }\n }\n"; /** * TerminalPanelChrome Component. * * Reusable Ghostty-styled shell that wraps terminal content with * consistent visual chrome. Used by both TerminalLogsPanel (readonly) * and TerminalInteractivePanel (interactive). * * Supports StyleSlots for class overrides and CVA variants * for visual presets (default, minimal, error). * * v0.11.0 additions (additive, fully backward-compatible): * - `showHeader` (default `true`) — set to `false` to skip rendering * the default {@link TerminalPanelHeader}. * - `header` slot — replace the default header with custom content * (e.g. richer status, breadcrumbs). Wins over `showHeader`. * * For chrome-less composition (no traffic lights, no session tabs, * full toolbar control), use the public {@link ChromeShell} primitive * directly instead. * * @example * ```tsx * } * footer={} * > *
* * ``` * * @example * ```tsx * // v0.11.0 — opt out of the default macOS header. * } * > * * * ``` */ export declare function TerminalPanelChrome({ containerName, isConnected, variant, size, viewMode, onViewModeChange, sessions, activeSessionId, onSessionTabClick, onSessionClose, onNewSession, availableContainers, onAddContainer, children, actionBar, footer, onClose, onMinimize, onMaximize, crtEffect, showHeader, header, slots, className, }: ITerminalPanelChromeProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=TerminalPanelChrome.d.ts.map