Hi all,
Note: This is the open-source successor to st-mui. Same idea, more components, fully MIT licensed.
A couple days ago I posted st-mui here - MUI X date/time pickers for Streamlit. It worked well but MUI X has a commercial license for some of its components, and that annoys me. So I rebuilt the whole thing on top of RSuite, which is fully open source and MIT licensed. More components too, and I plan to add more in the near future.
What’s in it
Pickers - full popup interaction (calendars, scrolling time panels, range selection):
| Component | What you get | Instead of |
|---|---|---|
date_picker |
Calendar popup, one-tap select, ISO week support | st.date_input |
date_range_picker |
Dual-calendar popup with hover range highlighting | st.date_input (range mode) |
time_picker |
Scrolling time panel with AM/PM toggle | st.time_input |
time_range_picker |
Dual time panels for scheduling | – |
Inputs - lightweight keyboard-only entry (no popups, good for compact forms):
| Component | What you get | Instead of |
|---|---|---|
date_input |
Arrow-key date entry, no popup | st.date_input |
date_range_input |
Arrow-key date range entry, no popup | st.date_input (range mode) |
Example
from datetime import date, time, timedelta
from st_rsuite import date_picker, time_picker, date_range_picker
# Calendar popup with one-tap selection
d = date_picker(
label="Pick a date",
value=date.today(),
one_tap=True,
key="my_dp",
)
# Time picker with AM/PM
t = time_picker(
label="Pick a time",
value=time(9, 30),
format="hh:mm aa",
show_meridiem=True,
key="my_tp",
)
# Dual-calendar range picker
start, end = date_range_picker(
label="Trip dates",
value=(date.today(), date.today() + timedelta(days=7)),
hover_range="week",
key="my_drp",
)
Install
uv add st-rsuite
pip install st-rsuite
Links
Everything is MIT licensed (RSuite itself is MIT too). Also shotout to the peeps at streamlit for posting their agent skills repo, that made debugging issues a lot quicker when paired with claude code
Thanks all and have a chill day,
LPM