Source code for stormlog.tui.widgets.panels

"""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()