Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

07 - components 模块源码分析

路径: src/components/ 根级文件数: 110+ 个 .tsx/.ts 文件 子目录数: 31 个 功能: React UI 组件库 — 终端界面的所有可视化组件


模块概述

components/ 是 Claude Code 中文件数量最多的模块。基于 Ink 框架,这些组件在终端中渲染富文本界面。


根级核心组件(精选)

消息显示

文件说明
Messages.tsx消息列表容器
Message.tsx单条消息渲染
MessageRow.tsx消息行布局
VirtualMessageList.tsx虚拟滚动消息列表(性能优化)
MessageResponse.tsx助手响应渲染
MessageSelector.tsx消息选择器
MessageTimestamp.tsx消息时间戳
MessageModel.tsx消息模型标识
Markdown.tsxMarkdown 渲染器
MarkdownTable.tsxMarkdown 表格

代码与 Diff

文件说明
StructuredDiff.tsx结构化代码差异显示
StructuredDiffList.tsx差异列表
FileEditToolDiff.tsx文件编辑工具的 diff 显示
HighlightedCode.tsx代码语法高亮

对话框与交互

文件说明
AutoModeOptInDialog.tsx自动模式选择对话框
BridgeDialog.tsx桥接对话框
BypassPermissionsModeDialog.tsx权限绕过对话框
CostThresholdDialog.tsx费用阈值对话框
ExportDialog.tsx导出对话框
GlobalSearchDialog.tsx全局搜索对话框
HistorySearchDialog.tsx历史搜索对话框
ModelPicker.tsx模型选择器
ThemePicker.tsx主题选择器
OutputStylePicker.tsx输出样式选择器

状态与信息

文件说明
StatusLine.tsx状态行
StatusNotices.tsx状态通知
Spinner.tsx加载动画
TaskListV2.tsx任务列表
Stats.tsx使用统计
TokenWarning.tsxToken 警告
MemoryUsageIndicator.tsx内存使用指示器

布局与导航

文件说明
App.tsx应用根组件
FullscreenLayout.tsx全屏布局
ScrollKeybindingHandler.tsx滚动快捷键处理
TagTabs.tsx标签页
SearchBox.tsx搜索框

工具相关

文件说明
ToolUseLoader.tsx工具调用加载器
FallbackToolUseErrorMessage.tsx工具错误回退消息
FallbackToolUseRejectedMessage.tsx工具拒绝回退消息
FileEditToolUpdatedMessage.tsx文件编辑更新消息

远程与桥接

文件说明
TeleportProgress.tsxTeleport 进度
TeleportError.tsxTeleport 错误
RemoteCallout.tsx远程提示
RemoteEnvironmentDialog.tsx远程环境对话框

其他

文件说明
TextInput.tsx基础文本输入
VimTextInput.tsxVim 模式文本输入
BaseTextInput.tsx文本输入基类
Onboarding.tsx新手引导
Feedback.tsx反馈组件
DevBar.tsx开发者工具栏

子目录(31 个)

PromptInput/ — 用户输入(21 文件)

最核心的交互组件目录:

文件说明
PromptInput.tsx主输入组件
ShimmeredInput.tsx带闪烁效果的输入
PromptInputFooter.tsx底部快捷键和状态
PromptInputFooterLeftSide.tsx底部左侧
PromptInputFooterSuggestions.tsx底部建议
PromptInputHelpMenu.tsx帮助菜单
PromptInputModeIndicator.tsx模式指示器
PromptInputQueuedCommands.tsx排队命令
PromptInputStashNotice.tsxStash 通知
VoiceIndicator.tsx语音指示器
HistorySearchInput.tsx历史搜索输入
IssueFlagBanner.tsxIssue 标记横幅
Notifications.tsx通知
SandboxPromptFooterHint.tsx沙箱提示
inputModes.ts输入模式定义
inputPaste.ts粘贴处理
useMaybeTruncateInput.ts输入截断 Hook
usePromptInputPlaceholder.ts占位符 Hook
useShowFastIconHint.ts快速模式提示 Hook
useSwarmBanner.tsSwarm 横幅 Hook
utils.ts工具函数

permissions/ — 权限请求(30+ 文件)

子目录/文件说明
PermissionDialog.tsx基础权限对话框
PermissionRequest.tsx权限请求组件
PermissionPrompt.tsx权限提示
PermissionRequestTitle.tsx请求标题
PermissionExplanation.tsx权限解释
PermissionRuleExplanation.tsx规则解释
WorkerBadge.tsxWorker 标记
BashPermissionRequest/Shell 命令审批
FileEditPermissionRequest/文件编辑审批
FileWritePermissionRequest/文件写入审批
FilePermissionDialog/文件权限对话框
WebFetchPermissionRequest/HTTP 请求审批
AskUserQuestionPermissionRequest/用户提问审批
EnterPlanModePermissionRequest/计划模式审批
ExitPlanModePermissionRequest/退出计划审批
ComputerUseApproval/计算机使用审批
SandboxPermissionRequest.tsx沙箱权限
SkillPermissionRequest/技能权限
ellPermissionRequest/`PowerShell 权限
NotebookEditPermissionRequest/Notebook 编辑权限
SedEditPermissionRequest/Sed 编辑权限
FilesystemPermissionRequest/文件系统权限
rules/权限规则子目录

messages/ — 消息组件(33 文件)

文件说明
UserPromptMessage.tsx用户输入消息
UserTextMessage.tsx用户文本消息
UserImageMessage.tsx用户图片消息
UserBashInputMessage.tsx用户 Bash 输入
UserBashOutputMessage.tsx用户 Bash 输出
UserCommandMessage.tsx用户命令消息
UserTeammateMessage.tsx用户队友消息
UserChannelMessage.tsx用户频道消息
AssistantTextMessage.tsx助手文本回复
AssistantToolUseMessage.tsx助手工具调用
AssistantThinkingMessage.tsx助手思考过程
AssistantRedactedThinkingMessage.tsx助手编辑后思考
AttachmentMessage.tsx附件消息
SystemTextMessage.tsx系统文本消息
SystemAPIErrorMessage.tsxAPI 错误消息
RateLimitMessage.tsx速率限制消息
CompactBoundaryMessage.tsx压缩边界消息
HookProgressMessage.tsx钩子进度消息
PlanApprovalMessage.tsx计划审批消息
TaskAssignmentMessage.tsx任务分配消息
ShutdownMessage.tsx关闭消息
HighlightedThinkingText.tsx高亮思考文本
GroupedToolUseContent.tsx分组工具调用内容
CollapsedReadSeant.tsx折叠的读取/搜索内容
AdvisorMessage.tsx顾问消息
UserToolResultMessage/用户工具结果(子目录)

diff/ — 代码差异(3 文件)

文件说明
DiffDetailView.tsx详细 diff 视图
DiffDialog.tsxDiff 对话框
DiffFileList.tsx变更文件列表

其他子目录

目录说明
agents/Agent 管理和创建向导
teams/团队协作组件
tasks/后台任务 UI
mcp/MCP 服务器管理界面
skills/技能相关组件
memory/记忆管理组件
sandbox/沙箱管理组件
shell/Shell 相关组件
hooks/组件级自定义 Hooks
ui/通用 UI 工具组件
design-system/设计系统(ThemedText、Dialog、Pane 等)
w/向导流程组件
grove/Grove 相关组件
CustomSelect/自定义选择列表
Settings/设置面板
HelpV2/帮助界面 v2
LogoV2/Logo 显示 v2
Spinner/加载动画(子目录)
StructuredDiff/结构化 diff(子目录)
TrustDialog/项目信任对话框
FeedbackSurvey/反馈调查
Passes/通行证/推荐
DesktopUpsell/桌面版推广
ClaudeCodeHint/使用提示
LspRecommendation/LSP 推荐
HighlightedCode/代码高亮(子目录)
ManagedSettingsSecurityDialog/托管设置安全对话框