- {/* 面板头部 */}
-
- updateNode(lessonNode.id, { title: e.target.value })}
- className="flex-1 bg-transparent font-title-md text-title-md focus:outline-none"
- aria-label={lessonNode.title}
- />
-
-
-
- {/* V5-15 T1 + V5-18 W6:节点属性条(教学阶段 + 差异化标记) */}
-
- {/* 教学阶段 */}
-
-
-
- {/* 差异化标记 */}
-
-
-
-
- {/* 内容编辑区 - 使用 Error Boundary 包裹 + BlockRenderer 配置驱动渲染 */}
-
-
- updateNode(lessonNode.id, { data: d })}
- />
- {/* BlockRenderer 返回 null 时显示未知类型提示 */}
-
-
-
- {/* AI 内容生成区(可折叠)— P0-11 修复:通过 props 注入,不直接 import @/modules/ai */}
- {aiContentGenerator ? (
-
-
- {showAiPanel ? (
-
- {(() => {
- const AiGenerator = aiContentGenerator;
- return (
-
- );
- })()}
-
- ) : null}
-
- ) : null}
-
-
- {/* 底部操作 */}
-
-
-
-
- );
-}
-
-/**
- * 未知 Block 类型提示(配置驱动,当 BlockRenderer 返回 null 时显示)。
- * 独立组件避免在主组件中条件渲染。
- */
-function UnknownBlockHint({
- type,
- t,
-}: {
- type: string;
- t: ReturnType