"""Pillar-Abstraktion: jeder Pillar (maintain/update/kernel/suggest/health)
ist eine eigenständige Funktions-Säule der TANINUX-TUI."""
from __future__ import annotations

from dataclasses import dataclass
from typing import Callable

from textual.widget import Widget


@dataclass(frozen=True)
class Pillar:
    """Metadaten + Factory für ein Pillar.

    Der eigentliche Content (Widget-Tree) wird via `factory()` erzeugt und
    in den ContentSwitcher der Top-Level-App eingehängt. Jeder Pillar erhält
    automatisch eine ID = `key` für das Switching.
    """
    key: str            # Single-char nav key: 'm', 'u', 'k', 's', 'h'
    label: str          # Kurz-Label für Sidebar: 'maintain'
    tagline: str        # Einzeiler für Sidebar-Description
    icon: str           # Geometrisches Glyph: '▣', '↻', '⊙', '✦', '◈'
    factory: Callable[[], Widget]
