MujicaUI

Agent · #274

ArtifactPanel 浅色主题渲染快照
浅色 · 渲染快照
ArtifactPanel 深色主题渲染快照
深色 · 渲染快照

274 ArtifactPanel 产物面板

用途

展示 Agent 生成的产物:代码高亮显示,文档与网页由调用方的预览插槽渲染,可在预览与源码间切换,提供复制与导出。

最小示例

art := agent.Artifact{Title: "seating.go", Language: "go", Content: "package court\n"}
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	if agent.ArtifactPanel(c, art, agent.ArtifactPanelOptions{}).Exported {
		fmt.Println("save the file")
	}
}
ui.Render(view, 400, 300, 1)

签名:func ArtifactPanel(c *ui.Context, art Artifact, opts ArtifactPanelOptions) ArtifactPanelResult。Title 为空、Kind 越界、文档或网页缺少 Preview、Height 为负时 panic。

参数

字段类型默认值含义
Previewfunc()nil预览插槽;文档与网页必填。
Heightfloat32320内容区高度。
Disabledboolfalse禁止复制、导出与切换。

状态

  • Artifact 字段:Title、Kind(ArtifactCode、ArtifactDocument、ArtifactWeb)、Language、Content。
  • 预览与源码切换用选中底色加勾号标出当前项。
  • 复制后两秒内按钮显示“已复制”。

事件

  • Copied:内容已写入剪贴板。
  • Exported:请求调用方导出。

键盘操作

  • Tab 到切换组,← → 移动,Enter / Space 选择;Tab 到复制、导出。

限制

  • 不内置网页渲染,网页预览须由调用方提供(无 WebView)。