# components/scenarios.py :contentReference[oaicite:1]{index=1} :contentReference[oaicite:2]{index=2} :contentReference[oaicite:3]{index=3} import json import os :contentReference[oaicite:4]{index=4} :contentReference[oaicite:5]{index=5} :contentReference[oaicite:6]{index=6} :contentReference[oaicite:7]{index=7} :contentReference[oaicite:8]{index=8} :contentReference[oaicite:9]{index=9} def scenario_tab(): :contentReference[oaicite:10]{index=10} :contentReference[oaicite:11]{index=11} :contentReference[oaicite:12]{index=12} :contentReference[oaicite:13]{index=13} :contentReference[oaicite:14]{index=14} :contentReference[oaicite:15]{index=15} value="Exploration") :contentReference[oaicite:16]{index=16} :contentReference[oaicite:17]{index=17} :contentReference[oaicite:18]{index=18} :contentReference[oaicite:19]{index=19} :contentReference[oaicite:20]{index=20} export_button = gr.Button("💾 Save Scenario to Gallery") export_status = gr.Textbox(label="Export Status") def build_and_generate(title, scenario_type, difficulty, duration, setting): data = { "title": title, "scenario_type": scenario_type, "difficulty_level": difficulty, "duration": duration, "setting": setting } return generate_scenario_image(data, art_style="Concept Art") gen_button.click( build_and_generate, inputs=[title, scenario_type, difficulty, duration, setting], outputs=scenario_img ) export_button.click( lambda t, st, d, du, se, img: save_to_gallery( "scenario", {"title": t, "type": st, "difficulty": d, "duration": du, "setting": se}, img ) or "✅ Scenario saved!", inputs=[title, scenario_type, difficulty, duration, setting, scenario_img], outputs=export_status )