# -*- coding: utf-8 -*- """ Installer-Header — Zeigt Titel, Version und Modus. """ from __future__ import annotations from textual.widget import Widget from textual.app import RenderResult from rich.text import Text class InstallerHeader(Widget): """ Header-Leiste: 'Trixy Installer v1.0.0 [server]' """ DEFAULT_CSS = """ InstallerHeader { dock: top; height: 1; background: $accent; color: $text; text-style: bold; } """ def __init__( self, version: str = "1.0.0", mode: str = "server", **kwargs, ) -> None: super().__init__(**kwargs) self._version = version self._mode = mode self._subtitle = "" @property def subtitle(self) -> str: return self._subtitle @subtitle.setter def subtitle(self, value: str) -> None: self._subtitle = value self.refresh() def render(self) -> RenderResult: text = Text() text.append(f" Trixy Installer v{self._version} ", style="bold") text.append(f"[{self._mode}]", style="italic") if self._subtitle: text.append(f" — {self._subtitle}", style="") return text