ai-station/.venv/lib/python3.12/site-packages/textual/renderables/blank.py

43 lines
1.3 KiB
Python
Raw Permalink Normal View History

2025-12-25 14:54:33 +00:00
from __future__ import annotations
from rich.style import Style as RichStyle
from textual.color import Color
from textual.content import Style
from textual.css.styles import RulesMap
from textual.strip import Strip
from textual.visual import RenderOptions, Visual
class Blank(Visual):
"""Draw solid background color."""
def __init__(self, color: Color | str = "transparent") -> None:
self._rich_style = RichStyle.from_color(bgcolor=Color.parse(color).rich_color)
def visualize(self) -> Blank:
return self
def get_optimal_width(self, rules: RulesMap, container_width: int) -> int:
return container_width
def get_height(self, rules: RulesMap, width: int) -> int:
return 1
def render_strips(
self, width: int, height: int | None, style: Style, options: RenderOptions
) -> list[Strip]:
"""Render the Visual into an iterable of strips. Part of the Visual protocol.
Args:
width: Width of desired render.
height: Height of desired render or `None` for any height.
style: The base style to render on top of.
options: Additional render options.
Returns:
An list of Strips.
"""
line_count = 1 if height is None else height
return [Strip.blank(width, self._rich_style)] * line_count