import streamlit as st def init_session_state(): """Set up initial values in session_state if not already defined.""" st.session_state.setdefault("dark_mode", False) st.session_state.setdefault("code", "") st.session_state.setdefault("stdin", "") st.session_state.setdefault("language", "Python") def apply_theme(): """Apply the selected theme and return color palette + ACE theme.""" dark = st.session_state.dark_mode colors = { "bg": "#0f1620" if dark else "#f5f5f5", "panel_bg": "#1c2330" if dark else "#ffffff", "text": "#e3e8f1" if dark else "#1a1a1a", "accent": "#ff5252", "border": "#2a3240" if dark else "#dddddd", "shadow": "rgba(0,0,0,0.3)" if dark else "rgba(0,0,0,0.1)", } ace_theme = "monokai" if dark else "chrome" lang = st.session_state.get("language", "python").lower() ace_lang_map = { "c++": "c_cpp", "c#": "csharp", "javascript": "javascript", "python": "python", "java": "java", "c": "c" } ace_lang = ace_lang_map.get(lang, "python") st.markdown( f""" """, unsafe_allow_html=True, ) return colors, ace_theme