Spaces:
Build error
Build error
| """ | |
| Theme utilities for managing poster visual themes. | |
| This module handles theme configuration, including colors, borders, | |
| and visual styling options. | |
| """ | |
| from typing import Dict, Any, Optional | |
| # Default theme configuration | |
| DEFAULT_THEME = { | |
| 'panel_visible': True, | |
| 'textbox_visible': False, | |
| 'figure_visible': False, | |
| 'panel_theme': { | |
| 'color': (47, 85, 151), | |
| 'thickness': 0, | |
| 'line_style': 'solid', | |
| }, | |
| 'textbox_theme': None, | |
| 'figure_theme': None, | |
| } | |
| # Default colors | |
| DEFAULT_TITLE_TEXT_COLOR = (255, 255, 255) | |
| DEFAULT_TITLE_FILL_COLOR = (255, 255, 255) | |
| def get_default_theme() -> Dict[str, Any]: | |
| """ | |
| Get the default theme configuration. | |
| Returns: | |
| Default theme dictionary | |
| """ | |
| return DEFAULT_THEME.copy() | |
| def create_theme_with_alignment( | |
| base_theme: Dict[str, Any], | |
| section_title_vertical_align: Optional[str] = None | |
| ) -> Dict[str, Any]: | |
| """ | |
| Create a new theme with vertical alignment configuration. | |
| Args: | |
| base_theme: Base theme dictionary | |
| section_title_vertical_align: Vertical alignment ("top", "middle", "bottom") | |
| Returns: | |
| Theme dictionary with alignment configuration | |
| """ | |
| theme = base_theme.copy() | |
| if section_title_vertical_align: | |
| theme['section_title_vertical_align'] = section_title_vertical_align | |
| return theme | |
| def resolve_colors( | |
| title_text_color: Optional[tuple], | |
| title_fill_color: Optional[tuple], | |
| main_text_color: Optional[tuple], | |
| main_text_fill_color: Optional[tuple] | |
| ) -> tuple: | |
| """ | |
| Resolve color configuration with fallbacks to defaults. | |
| Args: | |
| title_text_color: Title text color from config | |
| title_fill_color: Title fill color from config | |
| main_text_color: Main text color from config | |
| main_text_fill_color: Main text fill color from config | |
| Returns: | |
| Tuple of (title_text, title_fill, main_text, main_text_fill) | |
| """ | |
| final_title_text = title_text_color if title_text_color is not None else DEFAULT_TITLE_TEXT_COLOR | |
| final_title_fill = title_fill_color if title_fill_color is not None else DEFAULT_TITLE_FILL_COLOR | |
| final_main_text = main_text_color | |
| final_main_fill = main_text_fill_color | |
| return final_title_text, final_title_fill, final_main_text, final_main_fill | |