""" Meetings Module - Templates and Icons Base templates and SVG icons for the Meetings frontend """ from .styles import BREAKPILOT_STYLES # ============================================ # SVG Icons # ============================================ ICONS = { "video": '', "video_off": '', "mic": '', "mic_off": '', "screen_share": '', "chat": '', "users": '', "calendar": '', "record": '', "phone_off": '', "settings": '', "grid": '', "plus": '', "download": '', "play": '', "trash": '', "link": '', "copy": '', "clock": '', "home": '', "graduation": '', "external": '', "file_text": '', } # ============================================ # Sidebar Component # ============================================ def render_sidebar(active_page: str = "dashboard") -> str: """Render the meetings sidebar navigation""" nav_items = [ {"id": "dashboard", "label": "Dashboard", "icon": "home", "href": "/meetings"}, {"id": "active", "label": "Aktive Meetings", "icon": "video", "href": "/meetings/active"}, {"id": "schedule", "label": "Termine", "icon": "calendar", "href": "/meetings/schedule"}, {"id": "trainings", "label": "Schulungen", "icon": "graduation", "href": "/meetings/trainings"}, {"id": "recordings", "label": "Aufzeichnungen", "icon": "record", "href": "/meetings/recordings"}, {"id": "breakout", "label": "Breakout-Rooms", "icon": "grid", "href": "/meetings/breakout"}, ] nav_html = "" for item in nav_items: active_class = "active" if item["id"] == active_page else "" nav_html += f''' {ICONS[item['icon']]} {item['label']} ''' return f''' ''' # ============================================ # Page Templates # ============================================ def render_base_page(title: str, content: str, active_page: str = "dashboard") -> str: """Render the base page template""" return f'''