"use client"; import { Blocks, CheckCircle2, LayoutTemplate, Layers3 } from "lucide-react"; import { countUiSurfaceComponents, getUiSurfaceChildren, getUiSurfaceScreenComponents, resolveUiSurfaceTextBinding, type UiSurfaceSnapshot, } from "@/lib/ui-surface-protocol"; import { cn } from "@/lib/utils"; type DetailSurfaceInspectorReviewState = { screenIndex: number; action?: "pass" | "protocol_patch" | "regenerate_image"; passed?: boolean; }; function getActionLabel(action?: DetailSurfaceInspectorReviewState["action"]) { if (action === "protocol_patch") return "协议修正"; if (action === "regenerate_image") return "重生图"; return "通过"; } function getActionClassName(action?: DetailSurfaceInspectorReviewState["action"]) { if (action === "protocol_patch") { return "bg-blue-50 text-blue-700 ring-1 ring-inset ring-blue-500/20 dark:bg-blue-500/10 dark:text-blue-300"; } if (action === "regenerate_image") { return "bg-red-50 text-red-700 ring-1 ring-inset ring-red-500/20 dark:bg-red-500/10 dark:text-red-300"; } return "bg-emerald-50 text-emerald-700 ring-1 ring-inset ring-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-300"; } export function DetailSurfaceInspectorPanel(params: { surface: UiSurfaceSnapshot | null; latestScreenValidation?: DetailSurfaceInspectorReviewState | null; }) { if (!params.surface) return null; const screenComponents = getUiSurfaceScreenComponents(params.surface); const totalComponents = countUiSurfaceComponents(params.surface); const totalTextBlocks = countUiSurfaceComponents(params.surface, "detail_text_block"); const totalScreens = screenComponents.length; return (
Detail Surface Inspector
{params.surface.surfaceId}