LumenX · Generate + PromptExpand

# 智能分镜确认弹窗 + Prompt 展开编辑器

左：`StoryboardGenerateDialog`（前置检查 + 覆盖警告 + 确认，非批量参数选择器）。右：`PromptExpandModal`（Cmd/Ctrl+E 全屏编辑单条 prompt，单语；双语润色在 PolishPanel）。

### ① StoryboardGenerateDialog · 全通过 + 已有分镜

✨ 从剧本生成分镜
项目：雨夜侦探 · 第 3 话
前置检查
✓
剧本文本已就绪
✓
已抽取实体（角色等）
!
已抽取实体（角色等）
需要先在 Script 步骤点「提取实体」。AI 借助角色/场景信息生成更准确的分镜。
继续将清空现有的 8 个分镜并用 AI 生成的版本替换。无法撤销。

首次生成态：无警告，仅「✨ 首次生成 — AI 会根据剧本切镜头、配场景、归角色。」+ Confirm 文案「✨ 智能分镜」。
检查未过态：失败行变 amber + 出现「去 Script 步骤补充 →」链接，Confirm 禁用。

### ② PromptExpandModal · Cmd/Ctrl+E 全屏编辑

编辑 Shot 3 的描述 428 字符
雨夜，霓虹招牌在湿漉漉的柏油路上拉出长长的倒影。侦探立于巷口，风衣下摆被夜风掀起，帽檐压低遮住半张脸。镜头从低角度缓缓推近，背景的全息广告牌闪烁着冷蓝色调，雨丝在光束中划出细密的银线。他的右手插在口袋里，左手夹着一支即将熄灭的香烟，烟头的微光映出他紧绷的下颌线。远处传来警笛的回响，在空旷的街区里忽远忽近。
Esc 关闭 · Cmd/Ctrl+Enter 保存 Cmd/Ctrl + E 也能保存

入口：分镜内 prompt 文本框右上角
图标，或文本框内 Cmd/Ctrl+E。本模态单语，无双语切换——双语在 PolishPanel。

## ⚠ 与现状/我先前假设的差异 & 交互风险（落地前必读）

这两个模态曾被我先前粗略归为「批量参数」「双语展开」，实际并非如此。以下为关键纠偏，风险等级偏高，请重点 Review。

StoryboardGenerateDialog

维度 | 现状（真实组件） | 本补稿处理 | 风险
--- | --- | --- | ---
本质纠偏 | 它是「前置检查 + 覆盖警告 + 确认」弹窗，不暴露 范围/数量/画风/模型 任何参数；真正生成在父级 toast 流跑 | 不臆造参数控件；只还原两项检查 + 警告 + 确认 | 高·纠偏
两项检查 | 剧本 ≥40 字 / 已抽取实体（>0）。pass 绿、fail amber，fail 带 hint + 「去 Script 步骤补充」 | 展示双 pass；表下说明 fail 态与首次态 | 一致
覆盖警告 | allPass 且已有分镜>0 才出 amber「清空现有 N 个分镜…无法撤销」 | 展示 N=8 覆盖警告；Confirm 文案「重新生成」 | 低
确认即关闭 | handleConfirm 先关弹窗再 onConfirm()，弹窗内无 loading，进度走全局 toast + GenerationBanner | 无内置 loading 态；落地须保留此时序 | 需确认
token | backdrop 用 `bg-overlay`，panel `bg-elevated`，footer 用 WorkflowActionButton | backdrop→--color-overlay，panel→--color-bg-elevated，按钮还原 ghost/pri | 一致

PromptExpandModal

维度 | 现状（真实组件） | 本补稿处理 | 风险
--- | --- | --- | ---
双语纠偏 | 本模态单语——只有 1 个 textarea，无语言切换；「双语 CN/EN + Copy/Apply + 再优化」是同级 PolishPanel 的能力 | 只画单 textarea + 字符计数；表注明双语归属 PolishPanel | 高·纠偏
快捷键 | Esc 关闭丢弃草稿；Cmd/Ctrl+Enter 与 Cmd/Ctrl+E 均保存；入口图标 + 文本框 Cmd/Ctrl+E 打开 | 页脚双提示 1:1；入口说明在表下 | 一致
标题/计数 | 标题「编辑 {shot} 的描述」(i18n)，实时「{N} 字符」 | 还原「编辑 Shot 3 的描述」+「428 字符」 | 一致
草稿丢弃 | 本地 draft；Cancel/Esc 丢弃，Save 提交 onSave(next) 回写父级 | 静态展示；落地须保留本地草稿语义 | 低
视觉同源 | 与 CompareModal 同视觉register（#0a0a10 / z-60-61 / compareModalIn） | 沿用同一卡面 token + 阴影；尺寸 800×80vh | 一致
布局变化 | — | 两模态结构、控件、层级 1:1，仅颜色 token 化。无布局重构 | 一致