| 209 | |
| 210 | // ─── Query 节点(起始)─── |
| 211 | function renderQuery(data: FlowNodeData, t: TFn) { |
| 212 | return ( |
| 213 | <div |
| 214 | className={`node-enter relative w-72 rounded-xl border-2 px-4 py-3 ${QUERY_STYLE.bg} ${QUERY_STYLE.border} ${QUERY_STYLE.text}`} |
| 215 | > |
| 216 | <Handle type="source" position={Position.Right} className={HANDLE_CLS_AMBER} style={RIGHT_STYLE} /> |
| 217 | <div className="absolute -left-2 -top-2 flex h-6 w-6 items-center justify-center rounded-full bg-indigo-900 text-xs font-bold text-indigo-200 ring-2 ring-indigo-400/60"> |
| 218 | ▶ |
| 219 | </div> |
| 220 | <div className="mb-1 text-[10px] uppercase tracking-wider opacity-70">{t("flow.query_label")}</div> |
| 221 | <div className="line-clamp-3 text-sm leading-snug">{data.subtitle || data.title}</div> |
| 222 | </div> |
| 223 | ); |
| 224 | } |
| 225 | |
| 226 | // ─── Thought 小节点(思考步骤)─── |
| 227 | function renderThought(data: FlowNodeData, t: TFn) { |