from __future__ import annotations PREVIEW_MODE_TILE = "tile" PREVIEW_MODE_TECHNICAL = "technical" PREVIEW_MODE_LEDS = "leds" PREVIEW_MODES = (PREVIEW_MODE_TILE, PREVIEW_MODE_TECHNICAL, PREVIEW_MODE_LEDS) def normalize_preview_mode(mode: str | None) -> str: normalized = str(mode or PREVIEW_MODE_TILE).strip().lower() return normalized if normalized in PREVIEW_MODES else PREVIEW_MODE_TILE def preview_mode_flags(mode: str) -> dict[str, bool]: preview_mode = normalize_preview_mode(mode) return { "show_fill": preview_mode in {PREVIEW_MODE_TILE, PREVIEW_MODE_TECHNICAL}, "show_labels": preview_mode in {PREVIEW_MODE_TILE, PREVIEW_MODE_TECHNICAL}, "show_leds": preview_mode in {PREVIEW_MODE_TECHNICAL, PREVIEW_MODE_LEDS}, "show_guides": preview_mode == PREVIEW_MODE_TECHNICAL, "show_direction": preview_mode == PREVIEW_MODE_TECHNICAL, "show_overlay_title": preview_mode == PREVIEW_MODE_TECHNICAL, "show_technical_meta": preview_mode == PREVIEW_MODE_TECHNICAL, }