Coverage for src/secchi/ui/widgets/header_bar.py: 67%
12 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-08-04 22:15 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-08-04 22:15 +0000
1"""Custom top header bar — replaces Textual's default Header."""
3from __future__ import annotations
5from textual.app import ComposeResult
6from textual.containers import Horizontal
7from textual.widgets import Static
9from secchi import __version__
10from secchi.ui import palette
13class SecchiHeader(Horizontal):
14 """Docked top bar: SECCHI wordmark and product line."""
16 def compose(self) -> ComposeResult:
17 brand = "SECCHI"
18 product = (
19 "Open Source Package Intelligence "
20 f"[{palette.TEXT_MUTED}]v.{__version__}[/]"
21 )
22 yield Static(brand, id="header-brand")
23 yield Static(product, id="header-product")