console: 按 Muse 网页端/桌面端视觉重做

仅视觉与布局改动,功能与 API 未改:全屏四栏(56px 图标栏 +
260px 列表 + 弹性对话 + 300px 右侧栏),左侧搜索 + 主要聊天
列表,中间灰/浅蓝气泡对话 + 圆角输入条,右侧头像 + 已连接
(真实 key/健康状态)+ 今天任务清单,下方仍可展开原详情。
旧 v3 松绿/朱印与顶部大标题栏已移除,产物为单文件
(316226 字节,sha f8fea987…,本地重建字节一致)。
console 标记单测未动,本地 53 项通过。
This commit is contained in:
host committed 2026-10-29 06:52:34 +08:00
1 parent 5ca5cc91cc
commit 66790b5123
12 files changed
+394 -227

No files matched your search

@@ -54,19 +54,25 @@ export function ChatInput({ onSend, disabled, placeholder }: {
onSend(v);
setText("");
};
// Pill input bar, Muse screenshot style: the textarea is the pill
// itself, and send is a light-blue circular arrow. No mic or
// attachment button here: the continue chat has no voice or
// attachment API (attachments live in Dispatch), so a mic/+ icon
// would be a dead button; the left list header's + is the new-task
// entry instead.
return (
<div className="chat-input-bar">
<textarea
aria-label="会话输入"
className="chat-input"
rows={1}
placeholder={placeholder || "输入消息,回车发送,Shift+回车换行"}
placeholder={placeholder || "消息"}
value={text}
disabled={disabled}
onChange={(e) => setText(e.target.value)}
onKeyDown={(e) => { if (e.key === "Enter" && !e.shiftKey) { e.preventDefault(); send(); } }}
/>
<button className="primary chat-send" disabled={disabled || !text.trim()} onClick={send}>发送</button>
<button type="button" className="chat-send" aria-label="发送" disabled={disabled || !text.trim()} onClick={send}>↑</button>
</div>
);
}