Coverage for src / lexigram / admin / ui / debug.py: 0%
11 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"""Debug components for Lexigram Admin."""
3from __future__ import annotations
5from typing import Any
7from lexigram.admin.services.session import SessionStateService
8from lexigram.ui import Component, el
11class StateDebugPanel(Component):
12 """A panel to visualize and inspect the current session state.
14 This component is intended for use during development to help
15 debug stateful components and DI services.
16 """
18 def __init__(self, session: SessionStateService, **props: Any) -> None:
19 super().__init__(**props)
20 self.session = session
22 def render(self) -> Any:
23 # Resolve session items
24 items = self.session.items()
26 return el(
27 "div",
28 {
29 "class": "state-debug-panel p-4 bg-background text-white rounded-lg shadow-xl font-mono text-xs border border-border",
30 },
31 el(
32 "h3",
33 {"class": "text-sm font-bold mb-2 text-blue-400"},
34 "🔍 Session State Debug",
35 ),
36 el(
37 "div",
38 {"class": "space-y-1 overflow-auto max-h-64"},
39 [
40 el(
41 "div",
42 {"class": "flex justify-between border-b border-border py-1"},
43 el("span", {"class": "text-green-400"}, k),
44 el("span", {"class": "text-foreground"}, str(v)),
45 )
46 for k, v in items
47 ]
48 if not self.session.is_empty
49 else el(
50 "p",
51 {"class": "text-muted-foreground italic"},
52 "No state data in current session.",
53 ),
54 ),
55 )