标准输入卡片 InputCard
这是 OceanLeo 全家桶「输入」的规范设计,来源于 image.oceanleo.com 的「① 输入」卡片(操作员 2026-06-17 定稿)。一个卡片同时承载文字 + 上传/拖拽参考:用户既能一句话直接成稿,也能上传文档/图片/链接做参考—— 不再用多块互斥的「创建方式」tile(那会造成逻辑冗余)。所有*.oceanleo.com 站的「输入」都应长这样,改这一个组件,全站对齐。
规范要点:① 序号徽章 + 「输入」标题(可折叠);② 圆角卡片 + 自增高 textarea + 右下圆形发送键 + 左下「leo 建议」按钮(来自标准 LeoComposer);③ 虚线「上传文件 (可多选)」按钮,且整卡支持把文件 / 素材拖拽进来;④ 已选附件以缩略条展示,可删除。
① 折叠态(三栏工作台「中列」里用)
传 open + onToggle 即可折叠,折叠头部右侧显示概要。 这是 image / logo / video / ppt 等站工作台里「① 输入」的标准形态。
② 常展开态(独立功能页用,带底部主按钮)
不传 open 则常展开(无折叠头);传 submitLabel 渲染底部主按钮。
1输入
用法
import { InputCard } from "@oceanleo/ui/shell";
// 三栏工作台里(可折叠):
<InputCard
index={1} title="输入" accent="#6366f1"
open={open} onToggle={() => setOpen(v => !v)}
value={prompt} onChange={setPrompt} onSubmit={run}
onFiles={addFiles} accept="image/*,.pdf,.docx"
attachments={attachments} onRemoveAttachment={remove}
/>
// 独立页(常展开 + 底部主按钮):
<InputCard index={1} title="输入" value={p} onChange={setP}
onSubmit={run} onFiles={addFiles} submitLabel="开始生成" />