样板间 · 单一事实源

标准输入卡片 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="开始生成" />