File size: 826 Bytes
ba2dcff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import json

import streamlit as st


@st.cache_data
def load_slider_data():
    """Load slider data from a JSON file and cache it for performance."""
    with open("data/cost_sliders.json") as f:
        return json.load(f)
    
def render_resource_input(name_clean, r, tooltip=None):
    if tooltip:
        st.markdown(
            f"""<span title="{tooltip}" style="font-weight: 500;">{name_clean} <sup style="color:#999;">ℹ️</sup></span>""",
            unsafe_allow_html=True
        )
    else:
        st.markdown(f"**{name_clean}**")

    cap = st.number_input(
        label="",  # Label shown above
        min_value=0.0,
        value=float(st.session_state.resource_caps.get(r, 0.0)),
        format="%.2f",
        key=f"cap_{r}"
    )
    st.session_state.resource_caps[r] = cap