""" مكون الهيدر لنظام واهبي لتحليل العقود والمناقصات Header component for WAHBI Tender Analysis System """ import streamlit as st import os import base64 def render_header(subtitle=None): """ عرض شريط العنوان في التطبيق مع الشعار """ # الحصول على مسار ملف الشعار logo_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "assets", "logo.svg") # إذا كان ملف الشعار موجود، قم بعرضه if os.path.exists(logo_path): with open(logo_path, "r", encoding="utf-8") as f: svg_content = f.read() # استخدام HTML مباشرة لعرض الشعار SVG بشكل صحيح st.markdown(f"""
{svg_content}

نظام واهبي للذكاء الاصطناعي

{subtitle if subtitle else "لتحليل العقود والمناقصات"}

""", unsafe_allow_html=True) else: # إذا لم يكن ملف الشعار موجود، عرض نسخة نصية بدون الشعار st.markdown(f"""

نظام واهبي للذكاء الاصطناعي

{subtitle if subtitle else "لتحليل العقود والمناقصات"}

""", unsafe_allow_html=True) print(f"تحذير: لم يتم العثور على ملف الشعار في المسار: {logo_path}") def render_app_header(): """ عرض هيدر التطبيق الرئيسي مع الشعار والعنوان """ render_header("النظام المتكامل لتحليل العقود والمناقصات باستخدام الذكاء الاصطناعي") def render_section_header(title, description=None, icon=None): """ عرض عنوان قسم مع وصف اختياري وأيقونة """ icon_html = f'' if icon else '' st.markdown(f"""

{icon_html}{title}

{f'

{description}

' if description else ''}
""", unsafe_allow_html=True) def render_page_title(title, description=None, icon=None): """ عرض عنوان صفحة مع وصف اختياري وأيقونة """ st.markdown(f"""

{f'' if icon else ''}{title}

{f'

{description}

' if description else ''} """, unsafe_allow_html=True) def render_breadcrumbs(items): """ عرض مسار التنقل في الصفحة المعلمات: items (list): قائمة بالعناصر، كل عنصر هو قاموس يحتوي على مفتاحين: "label" و"url" (اختياري) """ breadcrumbs_html = "" for i, item in enumerate(items): if i > 0: breadcrumbs_html += f'' if "url" in item and item["url"]: breadcrumbs_html += f'{item["label"]}' else: breadcrumbs_html += f'{item["label"]}' st.markdown(f"""
{breadcrumbs_html}
""", unsafe_allow_html=True) def render_notice(message, type="info"): """ عرض إشعار للمستخدم المعلمات: message (str): نص الإشعار type (str): نوع الإشعار "info", "success", "warning", "error" """ icon_map = { "info": "info-circle", "success": "check-circle", "warning": "exclamation-triangle", "error": "times-circle" } color_map = { "info": "#1E88E5", "success": "#4CAF50", "warning": "#FFC107", "error": "#F44336" } bg_color_map = { "info": "#E3F2FD", "success": "#E8F5E9", "warning": "#FFF8E1", "error": "#FFEBEE" } st.markdown(f"""

{message}

""", unsafe_allow_html=True)