Coverage for src / lexigram / admin / pages / types.py: 0%
19 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-11 02:25 +0800
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-11 02:25 +0800
1"""Page types: dataclasses for page responses and navigation entries."""
3from __future__ import annotations
5from dataclasses import dataclass
6from typing import Any
9@dataclass
10class PageResponse:
11 """Response from a page view handler."""
13 content: Any # Element/htpy content
14 title: str
15 breadcrumbs: list[tuple[str, str]] | None = None
17 @property
18 def has_breadcrumbs(self) -> bool:
19 """Whether this response includes breadcrumbs."""
20 return self.breadcrumbs is not None and len(self.breadcrumbs) > 0
23@dataclass
24class NavigationEntry:
25 """Navigation entry for the admin sidebar/menu."""
27 label: str
28 url: str
29 icon: str | None = None
30 permissions: list[str] | None = None
31 active: bool = False
34__all__ = [
35 "NavigationEntry",
36 "PageResponse",
37]