import { Alert, Button, Code, Divider, Group, Loader, Stack, Text, } from "@mantine/core"; export interface ElicitationUrlPanelProps { message: string; url: string; elicitationId: string; isWaiting: boolean; onCopyUrl: () => void; onOpenInBrowser: () => void; onCancel: () => void; } const ItalicMessage = Text.withProps({ size: "md", fs: "italic", }); const WrappingCode = Code.withProps({ block: true, variant: "wrapping", }); const HintText = Text.withProps({ size: "sm", c: "dimmed", }); const MetaText = Text.withProps({ size: "xs", c: "dimmed", }); function formatElicitationId(id: string): string { return `Elicitation ID: ${id}`; } export function ElicitationUrlPanel({ message, url, elicitationId, isWaiting, onCopyUrl, onOpenInBrowser, onCancel, }: ElicitationUrlPanelProps) { return ( {message} The server is requesting you visit: {url} {isWaiting && ( Waiting for completion... )} {formatElicitationId(elicitationId)} This will open an external URL. Verify the domain before proceeding. ); }