Coverage for src/lilbee/cli/tui/widgets/drawer.py: 100%

3 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-08-14 11:46 +0000

1"""Common base for the non-modal side drawers.""" 

2 

3from __future__ import annotations 

4 

5from textual.containers import Vertical 

6 

7 

8class Drawer(Vertical): 

9 """A non-modal side drawer that owns the keyboard while focus is inside it. 

10 

11 The chat screen's vim mode treats enter / i / a / o as conversation keys and 

12 swallows them. A drawer's own controls need those keys, so the chat screen 

13 asks whether focus sits under a Drawer rather than naming each drawer class: 

14 a new drawer inherits the exemption instead of silently eating its own enter. 

15 """