"""Cyclopts panel utilities for Rich-based terminal output.""" from typing import TYPE_CHECKING, Any if TYPE_CHECKING: from rich.panel import Panel def CycloptsPanel(message: Any, title: str = "Error", style: str = "red") -> "Panel": # noqa: N802 """Create a :class:`~rich.panel.Panel` with a consistent style. The resulting panel can be displayed using a :class:`~rich.console.Console`. .. code-block:: text ╭─ Title ──────────────────────────────────╮ │ Message content here. │ ╰──────────────────────────────────────────╯ Parameters ---------- message: Any The body of the panel will be filled with the stringified version of the message. title: str Title of the panel that appears in the top-left corner. style: str Rich `style `_ for the panel border. Returns ------- ~rich.panel.Panel Formatted panel object. """ from rich import box from rich.panel import Panel from rich.text import Text panel = Panel( Text(str(message), "default"), title=title, style=style, box=box.ROUNDED, expand=True, title_align="left", ) return panel