"""Markdown panel widgets used by the Textual TUI."""
from __future__ import annotations
from typing import Any, Callable
from textual.widgets import Markdown
[docs]
class MarkdownPanel(Markdown):
"""Reusable Markdown panel with refresh support."""
def __init__(self, builder: Callable[[], str], **kwargs: Any) -> None:
super().__init__("", **kwargs)
self.builder = builder
[docs]
def refresh_content(self) -> None:
self.update(self.builder())
[docs]
def on_mount(self) -> None:
self.refresh_content()