LinkedInPostGenerator / ui_components.py
Alpha108's picture
Update ui_components.py
5fefff9 verified
import streamlit as st
def quick_controls():
idea = st.text_area("Your idea", key="qd_idea", placeholder="Describe the idea for your LinkedIn post…")
tone = st.selectbox("Tone", ["Professional","Friendly","Contrarian","Technical","Inspirational"], index=0, key="qd_tone")
words = st.slider("Words", 80, 300, 160, 10, key="qd_words")
variations = st.radio("Variations", [1,2,3], index=0, horizontal=True, key="qd_vars")
col1, col2 = st.columns(2)
with col1:
include_emoji = st.toggle("Include emojis", value=True, key="qd_emoji")
with col2:
add_hashtags = st.toggle("Add hashtags", value=False, key="qd_tags")
language = st.selectbox("Language", ["English","Urdu","Arabic","French","Spanish"], index=0, key="qd_lang")
return idea, tone, words, variations, include_emoji, add_hashtags, language
def pro_controls(defaults):
topic = st.text_input("Topic", value=defaults.get("topic",""), key="pro_topic")
purpose = st.selectbox("Purpose", ["awareness","lead-gen","hiring","product launch","opinion","lesson learned"], index=0, key="pro_purpose")
audience = st.text_input("Audience", value=defaults.get("audience",""), key="pro_audience")
tone = st.selectbox("Tone", ["Professional","Friendly","Contrarian","Technical","Inspirational"], index=0, key="pro_tone")
language = st.selectbox("Language", ["English","Urdu","Arabic","French","Spanish"], index=0, key="pro_lang")
evidence = st.text_area("Evidence (metric/anecdote/quote)", value="", key="pro_evidence")
style_text = st.text_area("Style cues (max 4, one per line)", value="Short punchy hooks\nActionable bullets\nOne metric per paragraph\nQuestion-led CTA", key="pro_style")
return topic, purpose, audience, tone, language, evidence, style_text