axiom-coding-agent-setup 1.0.9 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/agent-browser/SKILL.md +55 -0
- package/.agents/skills/developing-with-streamlit/SKILL.md +220 -0
- package/.agents/skills/developing-with-streamlit/skills/building-streamlit-chat-ui/SKILL.md +195 -0
- package/.agents/skills/developing-with-streamlit/skills/building-streamlit-custom-components-v2/SKILL.md +233 -0
- package/.agents/skills/developing-with-streamlit/skills/building-streamlit-custom-components-v2/references/packaged-components.md +212 -0
- package/.agents/skills/developing-with-streamlit/skills/building-streamlit-custom-components-v2/references/state-sync.md +149 -0
- package/.agents/skills/developing-with-streamlit/skills/building-streamlit-custom-components-v2/references/theme-css-variables.md +243 -0
- package/.agents/skills/developing-with-streamlit/skills/building-streamlit-custom-components-v2/references/troubleshooting.md +121 -0
- package/.agents/skills/developing-with-streamlit/skills/building-streamlit-dashboards/SKILL.md +147 -0
- package/.agents/skills/developing-with-streamlit/skills/building-streamlit-multipage-apps/SKILL.md +218 -0
- package/.agents/skills/developing-with-streamlit/skills/choosing-streamlit-selection-widgets/SKILL.md +139 -0
- package/.agents/skills/developing-with-streamlit/skills/connecting-streamlit-to-snowflake/SKILL.md +188 -0
- package/.agents/skills/developing-with-streamlit/skills/creating-streamlit-themes/SKILL.md +486 -0
- package/.agents/skills/developing-with-streamlit/skills/displaying-streamlit-data/SKILL.md +199 -0
- package/.agents/skills/developing-with-streamlit/skills/improving-streamlit-design/SKILL.md +191 -0
- package/.agents/skills/developing-with-streamlit/skills/optimizing-streamlit-performance/SKILL.md +323 -0
- package/.agents/skills/developing-with-streamlit/skills/organizing-streamlit-code/SKILL.md +91 -0
- package/.agents/skills/developing-with-streamlit/skills/setting-up-streamlit-environment/SKILL.md +128 -0
- package/.agents/skills/developing-with-streamlit/skills/using-streamlit-cli/SKILL.md +165 -0
- package/.agents/skills/developing-with-streamlit/skills/using-streamlit-custom-components/SKILL.md +170 -0
- package/.agents/skills/developing-with-streamlit/skills/using-streamlit-layouts/SKILL.md +229 -0
- package/.agents/skills/developing-with-streamlit/skills/using-streamlit-markdown/SKILL.md +207 -0
- package/.agents/skills/developing-with-streamlit/skills/using-streamlit-session-state/SKILL.md +144 -0
- package/.agents/skills/developing-with-streamlit/templates/.gitattributes +3 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/README.md +188 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-companies/pyproject.toml +12 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-companies/streamlit_app.py +365 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-compute/pyproject.toml +12 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-compute/streamlit_app.py +461 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-compute-snowflake/.streamlit/secrets.toml.example +20 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-compute-snowflake/pyproject.toml +11 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-compute-snowflake/snowflake.yml +18 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-compute-snowflake/streamlit_app.py +527 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-feature-usage/pyproject.toml +12 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-feature-usage/streamlit_app.py +307 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-metrics/pyproject.toml +12 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-metrics/streamlit_app.py +426 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-metrics-snowflake/.streamlit/secrets.toml.example +20 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-metrics-snowflake/pyproject.toml +11 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-metrics-snowflake/snowflake.yml +18 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-metrics-snowflake/streamlit_app.py +463 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-seattle-weather/pyproject.toml +12 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-seattle-weather/streamlit_app.py +252 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-stock-peers/pyproject.toml +12 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-stock-peers/streamlit_app.py +342 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-stock-peers-snowflake/.streamlit/secrets.toml.example +20 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-stock-peers-snowflake/pyproject.toml +11 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-stock-peers-snowflake/snowflake.yml +18 -0
- package/.agents/skills/developing-with-streamlit/templates/apps/dashboard-stock-peers-snowflake/streamlit_app.py +384 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/README.md +128 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/_configs/dracula.toml +39 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/_configs/github.toml +37 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/_configs/minimal.toml +39 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/_configs/nord.toml +39 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/_configs/snowflake.toml +42 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/_configs/solarized-light.toml +38 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/_configs/spotify.toml +34 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/_configs/stripe.toml +35 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/_shared/streamlit_app.py +336 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/_templates/pyproject.toml.tmpl +12 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/dracula/.streamlit/config.toml +39 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/dracula/pyproject.toml +10 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/dracula/streamlit_app.py +337 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/github/.streamlit/config.toml +37 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/github/pyproject.toml +10 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/github/streamlit_app.py +337 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/manage.py +332 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/minimal/.streamlit/config.toml +39 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/minimal/pyproject.toml +10 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/minimal/streamlit_app.py +337 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/nord/.streamlit/config.toml +39 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/nord/pyproject.toml +10 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/nord/streamlit_app.py +337 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/snowflake/.streamlit/config.toml +42 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/snowflake/pyproject.toml +10 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/snowflake/streamlit_app.py +337 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/solarized-light/.streamlit/config.toml +38 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/solarized-light/pyproject.toml +10 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/solarized-light/streamlit_app.py +337 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/spotify/.streamlit/config.toml +34 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/spotify/pyproject.toml +10 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/spotify/streamlit_app.py +337 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/stripe/.streamlit/config.toml +35 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/stripe/pyproject.toml +10 -0
- package/.agents/skills/developing-with-streamlit/templates/themes/stripe/streamlit_app.py +337 -0
- package/.agents/skills/fastapi/SKILL.md +436 -0
- package/.agents/skills/fastapi/references/dependencies.md +142 -0
- package/.agents/skills/fastapi/references/other-tools.md +76 -0
- package/.agents/skills/fastapi/references/streaming.md +105 -0
- package/.agents/skills/frontend-design/LICENSE.txt +177 -0
- package/.agents/skills/frontend-design/SKILL.md +42 -0
- package/.agents/skills/gradio/SKILL.md +84 -0
- package/.agents/skills/gradio/references/api-signatures.md +115 -0
- package/.agents/skills/gradio/references/event-listeners.md +130 -0
- package/.agents/skills/gradio/references/examples.md +613 -0
- package/.agents/skills/ui-ux-pro-max/SKILL.md +659 -0
- package/.agents/skills/ui-ux-pro-max/data +1 -0
- package/.agents/skills/ui-ux-pro-max/scripts +1 -0
- package/.agents/stack.md +187 -187
- package/.env.axiom +8 -0
- package/AGENTS.md +2 -1
- package/README.md +19 -3
- package/bin/cli.js +11 -1
- package/opencode.json +12 -4
- package/package.json +1 -1
- package/skills-lock.json +36 -0
- package/.agents/skills/n8n-patterns/SKILL.md +0 -272
package/.agents/skills/developing-with-streamlit/templates/themes/solarized-light/streamlit_app.py
ADDED
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Streamlit Element Explorer - Theme Demo
|
|
3
|
+
|
|
4
|
+
A comprehensive single-page app showcasing all major Streamlit components
|
|
5
|
+
with custom theming. Use this to preview how your theme looks across
|
|
6
|
+
different element types.
|
|
7
|
+
"""
|
|
8
|
+
# DO NOT EDIT — managed by manage.py, edit _shared/streamlit_app.py instead
|
|
9
|
+
|
|
10
|
+
import numpy as np
|
|
11
|
+
import pandas as pd
|
|
12
|
+
import streamlit as st
|
|
13
|
+
|
|
14
|
+
st.set_page_config(page_title="Element Explorer", page_icon="🎨", layout="wide")
|
|
15
|
+
|
|
16
|
+
# Initialize sample data in session state
|
|
17
|
+
if "chart_data" not in st.session_state:
|
|
18
|
+
np.random.seed(42)
|
|
19
|
+
st.session_state.chart_data = pd.DataFrame(
|
|
20
|
+
np.random.randn(20, 3), columns=["a", "b", "c"]
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
chart_data = st.session_state.chart_data
|
|
24
|
+
|
|
25
|
+
st.title("Streamlit Element Explorer")
|
|
26
|
+
st.markdown(
|
|
27
|
+
"Explore how Streamlit's built-in elements look with this theme. "
|
|
28
|
+
"Select a category below to preview different components."
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
# Navigation using segmented_control for better performance
|
|
32
|
+
section = st.segmented_control(
|
|
33
|
+
"Section",
|
|
34
|
+
["Widgets", "Data", "Charts", "Text", "Layouts", "Chat", "Status"],
|
|
35
|
+
default="Widgets",
|
|
36
|
+
label_visibility="collapsed",
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
st.divider()
|
|
40
|
+
|
|
41
|
+
# -----------------------------------------------------------------------------
|
|
42
|
+
# WIDGETS SECTION
|
|
43
|
+
# -----------------------------------------------------------------------------
|
|
44
|
+
if section == "Widgets":
|
|
45
|
+
st.header("Widgets")
|
|
46
|
+
|
|
47
|
+
# Buttons
|
|
48
|
+
st.subheader("Buttons")
|
|
49
|
+
cols = st.columns(4)
|
|
50
|
+
cols[0].button("Primary", type="primary")
|
|
51
|
+
cols[1].button("Secondary", type="secondary")
|
|
52
|
+
cols[2].button("Tertiary", type="tertiary")
|
|
53
|
+
cols[3].link_button("Link", url="https://streamlit.io", icon=":material/open_in_new:")
|
|
54
|
+
|
|
55
|
+
# Form
|
|
56
|
+
with st.form(key="demo_form"):
|
|
57
|
+
st.subheader("Form")
|
|
58
|
+
form_cols = st.columns(2)
|
|
59
|
+
form_cols[0].text_input("Name", placeholder="Enter your name")
|
|
60
|
+
form_cols[1].text_input("Email", placeholder="you@example.com")
|
|
61
|
+
st.form_submit_button("Submit", type="primary")
|
|
62
|
+
|
|
63
|
+
# Selection widgets
|
|
64
|
+
st.subheader("Selection Widgets")
|
|
65
|
+
sel_cols = st.columns(2)
|
|
66
|
+
|
|
67
|
+
with sel_cols[0]:
|
|
68
|
+
st.checkbox("Checkbox option")
|
|
69
|
+
st.toggle("Toggle switch")
|
|
70
|
+
st.selectbox("Selectbox", options=["Option A", "Option B", "Option C"])
|
|
71
|
+
st.multiselect("Multiselect", options=["Tag 1", "Tag 2", "Tag 3"], default=["Tag 1"])
|
|
72
|
+
|
|
73
|
+
with sel_cols[1]:
|
|
74
|
+
st.radio("Radio buttons", options=["Choice 1", "Choice 2", "Choice 3"], horizontal=True)
|
|
75
|
+
st.pills("Pills", options=["Small", "Medium", "Large"], default="Medium")
|
|
76
|
+
st.segmented_control("Segmented", options=["Day", "Week", "Month"], default="Week")
|
|
77
|
+
st.caption("Feedback widget")
|
|
78
|
+
st.feedback("stars")
|
|
79
|
+
|
|
80
|
+
# Numeric & Sliders
|
|
81
|
+
st.subheader("Numeric Inputs")
|
|
82
|
+
num_cols = st.columns(3)
|
|
83
|
+
num_cols[0].number_input("Number input", value=42)
|
|
84
|
+
num_cols[1].slider("Slider", 0, 100, 50)
|
|
85
|
+
num_cols[2].select_slider("Select slider", options=["XS", "S", "M", "L", "XL"], value="M")
|
|
86
|
+
|
|
87
|
+
# Date/Time
|
|
88
|
+
st.subheader("Date & Time")
|
|
89
|
+
dt_cols = st.columns(2)
|
|
90
|
+
dt_cols[0].date_input("Date input")
|
|
91
|
+
dt_cols[1].time_input("Time input")
|
|
92
|
+
|
|
93
|
+
# Text inputs
|
|
94
|
+
st.subheader("Text Inputs")
|
|
95
|
+
txt_cols = st.columns(2)
|
|
96
|
+
txt_cols[0].text_input("Text input", placeholder="Type something...")
|
|
97
|
+
txt_cols[1].text_area("Text area", placeholder="Longer text goes here...", height=100)
|
|
98
|
+
|
|
99
|
+
# File upload
|
|
100
|
+
st.subheader("File Upload")
|
|
101
|
+
st.file_uploader("Upload a file", type=["csv", "txt", "pdf"])
|
|
102
|
+
|
|
103
|
+
# -----------------------------------------------------------------------------
|
|
104
|
+
# DATA SECTION
|
|
105
|
+
# -----------------------------------------------------------------------------
|
|
106
|
+
elif section == "Data":
|
|
107
|
+
st.header("Data Display")
|
|
108
|
+
|
|
109
|
+
# Metrics
|
|
110
|
+
st.subheader("Metrics")
|
|
111
|
+
m_cols = st.columns(4)
|
|
112
|
+
m_cols[0].metric("Revenue", "$45,231", "+12.5%")
|
|
113
|
+
m_cols[1].metric("Users", "2,847", "+8.2%")
|
|
114
|
+
m_cols[2].metric("Conversion", "3.24%", "-0.4%", delta_color="inverse")
|
|
115
|
+
m_cols[3].metric("Avg. Session", "4m 32s", "+1.2%")
|
|
116
|
+
|
|
117
|
+
st.divider()
|
|
118
|
+
|
|
119
|
+
# Dataframe
|
|
120
|
+
st.subheader("Dataframe")
|
|
121
|
+
df = pd.DataFrame({
|
|
122
|
+
"Name": ["Alice", "Bob", "Charlie", "Diana", "Eve"],
|
|
123
|
+
"Department": ["Engineering", "Sales", "Marketing", "Engineering", "Sales"],
|
|
124
|
+
"Salary": [95000, 78000, 82000, 105000, 71000],
|
|
125
|
+
"Start Date": pd.date_range("2022-01-15", periods=5, freq="3M"),
|
|
126
|
+
"Active": [True, True, False, True, True],
|
|
127
|
+
})
|
|
128
|
+
st.dataframe(
|
|
129
|
+
df,
|
|
130
|
+
hide_index=True,
|
|
131
|
+
column_config={
|
|
132
|
+
"Salary": st.column_config.NumberColumn(format="$%d"),
|
|
133
|
+
"Start Date": st.column_config.DateColumn(format="MMM DD, YYYY"),
|
|
134
|
+
"Active": st.column_config.CheckboxColumn("Active?"),
|
|
135
|
+
},
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
# Table
|
|
139
|
+
st.subheader("Static Table")
|
|
140
|
+
st.table(chart_data.head(5))
|
|
141
|
+
|
|
142
|
+
# JSON
|
|
143
|
+
st.subheader("JSON Display")
|
|
144
|
+
st.json({"name": "Streamlit", "version": "1.41.0", "features": ["themes", "widgets", "charts"]})
|
|
145
|
+
|
|
146
|
+
# -----------------------------------------------------------------------------
|
|
147
|
+
# CHARTS SECTION
|
|
148
|
+
# -----------------------------------------------------------------------------
|
|
149
|
+
elif section == "Charts":
|
|
150
|
+
st.header("Charts")
|
|
151
|
+
|
|
152
|
+
chart_cols = st.columns(2)
|
|
153
|
+
|
|
154
|
+
with chart_cols[0]:
|
|
155
|
+
st.subheader("Line Chart")
|
|
156
|
+
st.line_chart(chart_data, height=250)
|
|
157
|
+
|
|
158
|
+
st.subheader("Bar Chart")
|
|
159
|
+
st.bar_chart(chart_data, height=250)
|
|
160
|
+
|
|
161
|
+
with chart_cols[1]:
|
|
162
|
+
st.subheader("Area Chart")
|
|
163
|
+
st.area_chart(chart_data, height=250)
|
|
164
|
+
|
|
165
|
+
st.subheader("Scatter Chart")
|
|
166
|
+
st.scatter_chart(chart_data, height=250)
|
|
167
|
+
|
|
168
|
+
# -----------------------------------------------------------------------------
|
|
169
|
+
# TEXT SECTION
|
|
170
|
+
# -----------------------------------------------------------------------------
|
|
171
|
+
elif section == "Text":
|
|
172
|
+
st.header("Text Elements")
|
|
173
|
+
|
|
174
|
+
# Headers
|
|
175
|
+
st.subheader("Headers")
|
|
176
|
+
st.title("Title Element")
|
|
177
|
+
st.header("Header Element")
|
|
178
|
+
st.subheader("Subheader Element")
|
|
179
|
+
st.caption("Caption text - smaller, muted")
|
|
180
|
+
|
|
181
|
+
st.divider()
|
|
182
|
+
|
|
183
|
+
# Markdown
|
|
184
|
+
st.subheader("Markdown Formatting")
|
|
185
|
+
st.markdown(
|
|
186
|
+
"**Bold text**, *italic text*, ~~strikethrough~~, "
|
|
187
|
+
"`inline code`, [link](https://streamlit.io)"
|
|
188
|
+
)
|
|
189
|
+
st.markdown("Math: $E = mc^2$ and $\\int_0^\\infty e^{-x^2} dx = \\frac{\\sqrt{\\pi}}{2}$")
|
|
190
|
+
st.markdown("Emojis: 🚀 🎨 📊 ✨ and icons: :material/home: :material/settings:")
|
|
191
|
+
|
|
192
|
+
# Colored text
|
|
193
|
+
st.subheader("Colored Text")
|
|
194
|
+
color_cols = st.columns(3)
|
|
195
|
+
color_cols[0].markdown(":red[Red text] and :orange[Orange text]")
|
|
196
|
+
color_cols[1].markdown(":green[Green text] and :blue[Blue text]")
|
|
197
|
+
color_cols[2].markdown(":violet[Violet text] and :rainbow[Rainbow text]")
|
|
198
|
+
|
|
199
|
+
# Code blocks
|
|
200
|
+
st.subheader("Code Block")
|
|
201
|
+
st.code(
|
|
202
|
+
'''import streamlit as st
|
|
203
|
+
|
|
204
|
+
# Create a themed dashboard
|
|
205
|
+
st.set_page_config(page_title="My App", layout="wide")
|
|
206
|
+
st.title("Hello, Streamlit!")
|
|
207
|
+
|
|
208
|
+
# Display metrics
|
|
209
|
+
col1, col2 = st.columns(2)
|
|
210
|
+
col1.metric("Users", "1,234", "+5%")
|
|
211
|
+
col2.metric("Revenue", "$56K", "+12%")''',
|
|
212
|
+
language="python",
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
# -----------------------------------------------------------------------------
|
|
216
|
+
# LAYOUTS SECTION
|
|
217
|
+
# -----------------------------------------------------------------------------
|
|
218
|
+
elif section == "Layouts":
|
|
219
|
+
st.header("Layout Elements")
|
|
220
|
+
|
|
221
|
+
# Columns
|
|
222
|
+
st.subheader("Columns with Borders")
|
|
223
|
+
layout_cols = st.columns(3, border=True)
|
|
224
|
+
layout_cols[0].write("**Column 1**\n\nFirst column content")
|
|
225
|
+
layout_cols[1].write("**Column 2**\n\nSecond column content")
|
|
226
|
+
layout_cols[2].write("**Column 3**\n\nThird column content")
|
|
227
|
+
|
|
228
|
+
# Tabs
|
|
229
|
+
st.subheader("Tabs")
|
|
230
|
+
tab1, tab2, tab3 = st.tabs(["📈 Chart", "📋 Data", "⚙️ Settings"])
|
|
231
|
+
with tab1:
|
|
232
|
+
st.write("Chart tab content")
|
|
233
|
+
st.line_chart(chart_data["a"], height=150)
|
|
234
|
+
with tab2:
|
|
235
|
+
st.write("Data tab content")
|
|
236
|
+
st.dataframe(chart_data.head(3))
|
|
237
|
+
with tab3:
|
|
238
|
+
st.write("Settings tab content")
|
|
239
|
+
st.checkbox("Enable feature X")
|
|
240
|
+
st.checkbox("Enable feature Y", value=True)
|
|
241
|
+
|
|
242
|
+
# Expander
|
|
243
|
+
st.subheader("Expander")
|
|
244
|
+
with st.expander("Click to expand"):
|
|
245
|
+
st.write("This content is hidden by default.")
|
|
246
|
+
st.image("https://placehold.co/400x200/29B5E8/white?text=Expanded+Content")
|
|
247
|
+
|
|
248
|
+
# Popover
|
|
249
|
+
st.subheader("Popover")
|
|
250
|
+
pop_cols = st.columns(3)
|
|
251
|
+
with pop_cols[0].popover("Open popover", icon=":material/info:"):
|
|
252
|
+
st.write("Popover content here!")
|
|
253
|
+
st.slider("Popover slider", 0, 100, 50)
|
|
254
|
+
|
|
255
|
+
# Container
|
|
256
|
+
st.subheader("Container with Border")
|
|
257
|
+
with st.container(border=True):
|
|
258
|
+
st.write("**Bordered Container**")
|
|
259
|
+
st.write("Content inside a container with a visible border.")
|
|
260
|
+
st.button("Button inside container")
|
|
261
|
+
|
|
262
|
+
# -----------------------------------------------------------------------------
|
|
263
|
+
# CHAT SECTION
|
|
264
|
+
# -----------------------------------------------------------------------------
|
|
265
|
+
elif section == "Chat":
|
|
266
|
+
st.header("Chat Elements")
|
|
267
|
+
|
|
268
|
+
# Chat messages
|
|
269
|
+
st.subheader("Chat Messages")
|
|
270
|
+
with st.chat_message("user"):
|
|
271
|
+
st.write("Hello! How can I analyze my sales data?")
|
|
272
|
+
|
|
273
|
+
with st.chat_message("assistant"):
|
|
274
|
+
st.write("I can help you with that! Here are a few options:")
|
|
275
|
+
st.markdown("""
|
|
276
|
+
1. **Revenue trends** - View monthly/quarterly patterns
|
|
277
|
+
2. **Top products** - Identify best sellers
|
|
278
|
+
3. **Customer segments** - Analyze by region or category
|
|
279
|
+
""")
|
|
280
|
+
|
|
281
|
+
with st.chat_message("user"):
|
|
282
|
+
st.write("Show me the revenue trends please.")
|
|
283
|
+
|
|
284
|
+
with st.chat_message("assistant"):
|
|
285
|
+
st.write("Here's your revenue trend for the past 20 periods:")
|
|
286
|
+
st.line_chart(chart_data["a"], height=200)
|
|
287
|
+
|
|
288
|
+
# Chat input
|
|
289
|
+
st.chat_input("Type a message...")
|
|
290
|
+
|
|
291
|
+
# -----------------------------------------------------------------------------
|
|
292
|
+
# STATUS SECTION
|
|
293
|
+
# -----------------------------------------------------------------------------
|
|
294
|
+
elif section == "Status":
|
|
295
|
+
st.header("Status Elements")
|
|
296
|
+
|
|
297
|
+
# Alert messages
|
|
298
|
+
st.subheader("Alert Messages")
|
|
299
|
+
st.error("Error: Something went wrong with the data pipeline.")
|
|
300
|
+
st.warning("Warning: API rate limit approaching (80% used).")
|
|
301
|
+
st.info("Info: New features available in the latest release.")
|
|
302
|
+
st.success("Success: Data exported successfully to warehouse.")
|
|
303
|
+
|
|
304
|
+
# Exception
|
|
305
|
+
st.subheader("Exception Display")
|
|
306
|
+
try:
|
|
307
|
+
raise ValueError("This is an example exception for demonstration")
|
|
308
|
+
except ValueError as e:
|
|
309
|
+
st.exception(e)
|
|
310
|
+
|
|
311
|
+
# Interactive status
|
|
312
|
+
st.subheader("Interactive Status")
|
|
313
|
+
status_cols = st.columns(3)
|
|
314
|
+
if status_cols[0].button("Show Toast", icon=":material/notifications:"):
|
|
315
|
+
st.toast("This is a toast notification!", icon="🔔")
|
|
316
|
+
if status_cols[1].button("Balloons", icon=":material/celebration:"):
|
|
317
|
+
st.balloons()
|
|
318
|
+
if status_cols[2].button("Snow", icon=":material/ac_unit:"):
|
|
319
|
+
st.snow()
|
|
320
|
+
|
|
321
|
+
# Progress
|
|
322
|
+
st.subheader("Progress Indicators")
|
|
323
|
+
st.progress(0.7, text="70% complete")
|
|
324
|
+
with st.spinner("Loading..."):
|
|
325
|
+
st.write("Spinner is active (non-blocking in this demo)")
|
|
326
|
+
|
|
327
|
+
# -----------------------------------------------------------------------------
|
|
328
|
+
# SIDEBAR
|
|
329
|
+
# -----------------------------------------------------------------------------
|
|
330
|
+
with st.sidebar:
|
|
331
|
+
st.header("Settings")
|
|
332
|
+
st.selectbox("Time Period", ["Last 7 days", "Last 30 days", "Last 90 days", "All time"])
|
|
333
|
+
st.multiselect("Metrics", ["Revenue", "Users", "Sessions"], default=["Revenue", "Users"])
|
|
334
|
+
st.slider("Confidence threshold", 0.0, 1.0, 0.8)
|
|
335
|
+
st.divider()
|
|
336
|
+
st.caption("Element Explorer v1.0")
|
|
337
|
+
st.caption("Theme: **Solarized Light**")
|
package/.agents/skills/developing-with-streamlit/templates/themes/spotify/.streamlit/config.toml
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Spotify Theme for Streamlit
|
|
2
|
+
# Bold, energetic, high contrast with signature green
|
|
3
|
+
[theme]
|
|
4
|
+
base = "dark"
|
|
5
|
+
primaryColor = "#1DB954"
|
|
6
|
+
backgroundColor = "#191414"
|
|
7
|
+
secondaryBackgroundColor = "#282828"
|
|
8
|
+
codeBackgroundColor = "#282828"
|
|
9
|
+
textColor = "#ffffff"
|
|
10
|
+
linkColor = "#1DB954"
|
|
11
|
+
borderColor = "#404040"
|
|
12
|
+
showWidgetBorder = false
|
|
13
|
+
showSidebarBorder = false
|
|
14
|
+
baseRadius = "8px"
|
|
15
|
+
buttonRadius = "full"
|
|
16
|
+
font = "Inter:https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"
|
|
17
|
+
codeFont = "'Fira Code':https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500&display=swap"
|
|
18
|
+
codeFontSize = "0.85rem"
|
|
19
|
+
baseFontSize = 16
|
|
20
|
+
baseFontWeight = 400
|
|
21
|
+
headingFontWeights = [800, 700, 700, 600, 600, 600]
|
|
22
|
+
headingFontSizes = ["48px", "36px", "28px", "22px", "18px", "16px"]
|
|
23
|
+
chartCategoricalColors = ["#1DB954", "#1ED760", "#B3B3B3", "#535353", "#191414", "#FFFFFF", "#509BF5"]
|
|
24
|
+
|
|
25
|
+
# Spotify color palette
|
|
26
|
+
greenColor = "#1DB954"
|
|
27
|
+
blueColor = "#509BF5"
|
|
28
|
+
grayColor = "#B3B3B3"
|
|
29
|
+
|
|
30
|
+
[theme.sidebar]
|
|
31
|
+
backgroundColor = "#000000"
|
|
32
|
+
secondaryBackgroundColor = "#282828"
|
|
33
|
+
codeBackgroundColor = "#282828"
|
|
34
|
+
borderColor = "#333333"
|