import { Users } from "lucide-react"; import type { InteractionAudienceDescription } from "../lib/interaction-audience"; import { cn } from "../lib/utils"; /** * Who may resolve an interaction, stated before anyone acts. * * One component for both surfaces that ask for a decision: the full * issue-thread card (`variant="card"`) and a collapsed attention row sitting * directly above compact Accept/Reject buttons (`variant="compact"`, * PAP-17287). The compact form trades the full sentence for a glanceable clause * and hands the long form to the title attribute, so the two surfaces can never * describe the same policy differently. * * Presentation only: the description is derived from the server's evaluated * audience, and nothing here enables or disables a control. The resolution * routes re-check authority at use time. */ export function InteractionAudienceLine({ audience, variant = "card", className, }: { audience: InteractionAudienceDescription; variant?: "card" | "compact"; className?: string; }) { const compact = variant === "compact"; return (