"use client"; import { EdgeToolbar } from "@xyflow/react"; import { Plus, Trash2 } from "lucide-react"; import type { EdgeData, EdgeMarker, MarkerShape } from "@/lib/canvas-v2"; import styles from "./canvas.module.css"; export function EdgeToolbarControls({ id, x, y, data, change, add, remove, count, knotMode, changeKnotMode }: { id: string; x: number; y: number; data: EdgeData; change: (data: EdgeData) => void; add: () => void; remove: () => void; count: number; knotMode?: string; changeKnotMode: (mode: "corner" | "smooth" | "symmetric") => void }) { const a = data.appearance || {}, animation = data.animation || {}; const appearance = (patch: NonNullable) => change({ ...data, appearance: { ...a, ...patch } }); const animate = (patch: NonNullable) => change({ ...data, animation: { ...animation, ...patch } }); const markers: [MarkerShape, string][] = [["none", "无"], ["open-arrow", "开放箭头"], ["triangle", "三角箭头"], ["circle", "圆形"], ["diamond", "菱形"], ["square", "方形"]]; return
event.stopPropagation()} onClick={(event) => event.stopPropagation()} onDoubleClick={(event) => event.stopPropagation()} onKeyDown={(event) => event.stopPropagation()}> {(["head", "tail"] as const).map((end) => )} 拖动锚点或控制柄 · 双击添加 · Shift 镜像控制柄
; }