"use client"; import { Plus } from "lucide-react"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { accentVar, type RuntimeNodeSpec } from "./specs"; export function AddNodeDialog({ open, connectingFromSource, specs, canAdd, onOpenChange, onSelect, }: { open: boolean; connectingFromSource: boolean; specs: RuntimeNodeSpec[]; canAdd: (spec: RuntimeNodeSpec) => boolean; onOpenChange: (open: boolean) => void; onSelect: (spec: RuntimeNodeSpec) => void; }) { return (
节点目录
添加节点 {connectingFromSource ? "选择节点类型,将在当前节点下方创建并自动连接。" : "选择节点类型并添加到画布中央,随后可编辑内容并建立连线。"}
{specs.length === 0 && (

暂无可添加的节点类型。

)} {specs.map((spec) => { const Icon = spec.icon; const allowed = canAdd(spec); return ( ); })}
); }