|
6 | 6 | from generators import stats_card, lang_card, contrib_card, badge_generator |
7 | 7 | from utils import github_api |
8 | 8 | from themes.styles import THEMES |
| 9 | +from generators.visual_elements import ( |
| 10 | + emoji_element, |
| 11 | + gif_element, |
| 12 | + sticker_element |
| 13 | +) |
| 14 | + |
| 15 | +# Initialize canvas in session state |
| 16 | +if "canvas" not in st.session_state: |
| 17 | + st.session_state["canvas"] = [] |
| 18 | + |
| 19 | +for item in st.session_state["canvas"]: |
| 20 | + st.markdown(item, unsafe_allow_html=True) |
| 21 | + |
9 | 22 |
|
10 | 23 | # Load environment variables |
11 | 24 | load_dotenv() |
@@ -95,7 +108,7 @@ def load_data(user): |
95 | 108 | current_theme_opts.update(custom_colors) |
96 | 109 |
|
97 | 110 | # --- Layout: Tabs --- |
98 | | -tab1, tab2, tab3, tab4, tab5 = st.tabs(["Main Stats", "Languages", "Contributions", "Icons & Badges", "🔥 AI Roast"]) |
| 111 | +tab1, tab2, tab3, tab4, tab5, tab6 = st.tabs(["Main Stats", "Languages", "Contributions", "Icons & Badges", "🔥 AI Roast","✨ Visual Elements"]) |
99 | 112 |
|
100 | 113 | def show_code_area(code_content, label="Markdown Code"): |
101 | 114 | st.markdown(f"**{label}** (Copy below)") |
@@ -242,3 +255,27 @@ def render_tab(svg_bytes, endpoint, username, selected_theme, custom_colors, hid |
242 | 255 | render_roast_widget(username) |
243 | 256 | else: |
244 | 257 | st.warning("Please enter a GitHub username in the sidebar.") |
| 258 | + |
| 259 | +with tab6: |
| 260 | + st.subheader("✨ Visual Elements") |
| 261 | + st.markdown("Add emojis, GIFs, or stickers to your canvas") |
| 262 | + |
| 263 | + element_type = st.selectbox( |
| 264 | + "Choose element type", |
| 265 | + ["Emoji", "GIF", "Sticker"] |
| 266 | + ) |
| 267 | + |
| 268 | + value = st.text_input( |
| 269 | + "Enter value", |
| 270 | + placeholder="🔥 or https://gif-url" |
| 271 | + ) |
| 272 | + |
| 273 | + if st.button("Add to Canvas"): |
| 274 | + if element_type == "Emoji": |
| 275 | + svg = emoji_element(value) |
| 276 | + elif element_type == "GIF": |
| 277 | + svg = gif_element(value) |
| 278 | + else: |
| 279 | + svg = sticker_element(value) |
| 280 | + |
| 281 | + st.session_state["canvas"].append(svg) |
0 commit comments