import type { ReactNode } from 'react' import { CollapsibleCard } from '../basic/collapsible-card' import { IconButton } from '../basic/icon-button' import { TerminalBoxLine, ExternalLinkLine } from '../basic/icons-inline' const ICON_CLASS = 'w-[var(--font-size-sm)] h-[var(--font-size-sm)] shrink-0 text-text-secondary' export interface TerminalCodeBlockPartProps { command?: string output?: string autoRanCommand?: string className?: string headerIcon?: ReactNode externalLinkIcon?: ReactNode } const defaultHeaderIcon = const defaultExternalLinkIcon = export function TerminalCodeBlockPart({ command, output, autoRanCommand, className, headerIcon, externalLinkIcon, }: TerminalCodeBlockPartProps) { const displayCommand = autoRanCommand ?? (command != null ? `Auto-Ran command: ${command}` : 'Terminal') return ( {displayCommand}} headerRight={ } contentPadding="0" className={className} > {command != null && command !== '' && ( $ {command} )} {output != null && output !== '' && ( {output} )} ) } TerminalCodeBlockPart.displayName = 'TerminalCodeBlockPart' export const TerminalOutputCard = TerminalCodeBlockPart export type TerminalOutputCardProps = TerminalCodeBlockPartProps
{command}
{output}