streamlit-toggle-diy 1.0.1__py3-none-any.whl → 1.1.4__py3-none-any.whl
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.
- streamlit_toggle_diy/__init__.py +208 -53
- streamlit_toggle_diy/frontend/build/asset-manifest.json +19 -0
- streamlit_toggle_diy/frontend/build/bootstrap.min.css +9501 -0
- streamlit_toggle_diy/frontend/build/index.html +1 -0
- streamlit_toggle_diy/frontend/build/precache-manifest.208239bd31634c912148876425127f2c.js +22 -0
- streamlit_toggle_diy/frontend/build/precache-manifest.669f85f994ea2c0d193915faa9d91f97.js +22 -0
- streamlit_toggle_diy/frontend/build/precache-manifest.b7df6085566f07f8f27b94ee8ed2d302.js +22 -0
- streamlit_toggle_diy/frontend/build/service-worker.js +39 -0
- streamlit_toggle_diy/frontend/build/static/js/2.82cd69ef.chunk.js +3 -0
- streamlit_toggle_diy/frontend/build/static/js/2.82cd69ef.chunk.js.LICENSE.txt +68 -0
- streamlit_toggle_diy/frontend/build/static/js/2.82cd69ef.chunk.js.map +1 -0
- streamlit_toggle_diy/frontend/build/static/js/2.9720bf9e.chunk.js +3 -0
- streamlit_toggle_diy/frontend/build/static/js/2.9720bf9e.chunk.js.LICENSE.txt +68 -0
- streamlit_toggle_diy/frontend/build/static/js/2.9720bf9e.chunk.js.map +1 -0
- streamlit_toggle_diy/frontend/build/static/js/main.72a874a0.chunk.js +2 -0
- streamlit_toggle_diy/frontend/build/static/js/main.72a874a0.chunk.js.map +1 -0
- streamlit_toggle_diy/frontend/build/static/js/main.93eb9d37.chunk.js +2 -0
- streamlit_toggle_diy/frontend/build/static/js/main.93eb9d37.chunk.js.map +1 -0
- streamlit_toggle_diy/frontend/build/static/js/main.9f3c3eed.chunk.js +2 -0
- streamlit_toggle_diy/frontend/build/static/js/main.9f3c3eed.chunk.js.map +1 -0
- streamlit_toggle_diy/frontend/build/static/js/runtime-main.cc20bba3.js +2 -0
- streamlit_toggle_diy/frontend/build/static/js/runtime-main.cc20bba3.js.map +1 -0
- streamlit_toggle_diy/frontend/build/static/js/runtime-main.d76c522e.js +2 -0
- streamlit_toggle_diy/frontend/build/static/js/runtime-main.d76c522e.js.map +1 -0
- streamlit_toggle_diy/frontend/public/bootstrap.min.css +9501 -0
- streamlit_toggle_diy/frontend/public/index.html +25 -0
- streamlit_toggle_diy/frontend/src/index.tsx +11 -0
- streamlit_toggle_diy/frontend/src/react-app-env.d.ts +1 -0
- streamlit_toggle_diy/frontend/src/streamlit_toggle.tsx +170 -0
- streamlit_toggle_diy/frontend/src/style.css +6 -0
- streamlit_toggle_diy-1.1.4.dist-info/METADATA +88 -0
- streamlit_toggle_diy-1.1.4.dist-info/RECORD +35 -0
- {streamlit_toggle_diy-1.0.1.dist-info → streamlit_toggle_diy-1.1.4.dist-info}/WHEEL +1 -1
- streamlit_toggle_diy-1.0.1.dist-info/METADATA +0 -10
- streamlit_toggle_diy-1.0.1.dist-info/RECORD +0 -6
- {streamlit_toggle_diy-1.0.1.dist-info → streamlit_toggle_diy-1.1.4.dist-info}/LICENSE +0 -0
- {streamlit_toggle_diy-1.0.1.dist-info → streamlit_toggle_diy-1.1.4.dist-info}/top_level.txt +0 -0
streamlit_toggle_diy/__init__.py
CHANGED
@@ -7,7 +7,7 @@ _RELEASE = True
|
|
7
7
|
if not _RELEASE:
|
8
8
|
_component_func = components.declare_component(
|
9
9
|
"streamlit_toggle_diy",
|
10
|
-
url="http://localhost:3001",
|
10
|
+
url="http://localhost:3001", # 本地开发时的地址
|
11
11
|
)
|
12
12
|
else:
|
13
13
|
parent_dir = os.path.dirname(os.path.abspath(__file__))
|
@@ -16,51 +16,103 @@ else:
|
|
16
16
|
|
17
17
|
|
18
18
|
def st_toggle_switch(
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
19
|
+
key=None,
|
20
|
+
label_start="", # 前标签文字
|
21
|
+
label_end="", # 后标签文字
|
22
|
+
justify='flex-start', # 对齐方式
|
23
|
+
default_value=False, # 默认开关状态
|
24
|
+
inactive_color='#CEE8FF',
|
25
|
+
active_color="#00668c",
|
26
|
+
track_color="#3D5A80",
|
27
|
+
label_bg_color_start="#FFFFFF",
|
28
|
+
label_bg_color_end="yellow",
|
29
|
+
background_color_near_button_start="#FFFFFF",
|
30
|
+
background_color_near_button_end="#FFFFFF",
|
31
|
+
border_radius='30px',
|
32
|
+
label_start_color="#333333",
|
33
|
+
label_end_color="red",
|
34
|
+
label_font_size="16px",
|
35
|
+
label_font_weight="bold",
|
36
|
+
switch_size="medium",
|
30
37
|
):
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
38
|
+
"""
|
39
|
+
在 Streamlit 中创建一个可自定义颜色、大小的切换开关组件。
|
40
|
+
|
41
|
+
Parameters
|
42
|
+
----------
|
43
|
+
key: str
|
44
|
+
组件在 session_state 中的 key,用于区分多个组件实例。
|
45
|
+
label_start: str
|
46
|
+
开关左侧标签文字。
|
47
|
+
label_end: str
|
48
|
+
开关右侧标签文字。
|
49
|
+
justify: {'flex-start', 'center', 'flex-end'}
|
50
|
+
标签和开关在容器中的对齐方式。
|
51
|
+
default_value: bool
|
52
|
+
开关的默认状态,True 为打开,False 为关闭。
|
53
|
+
inactive_color: str
|
54
|
+
开关未激活时的按钮颜色。
|
55
|
+
active_color: str
|
56
|
+
开关激活时的按钮颜色。
|
57
|
+
track_color: str
|
58
|
+
开关轨道(背景)的颜色。
|
59
|
+
label_bg_color_start: str
|
60
|
+
左 / 上方标签背景色(如果需要渐变,可与 label_bg_color_end 联合使用)。
|
61
|
+
label_bg_color_end: str
|
62
|
+
右 / 下方标签背景色(如果需要渐变,可与 label_bg_color_start 联合使用)。
|
63
|
+
background_color_near_button_start: str
|
64
|
+
开关附近背景的起始颜色(可配合 background_color_near_button_end 做渐变)。
|
65
|
+
background_color_near_button_end: str
|
66
|
+
开关附近背景的结束颜色(可配合 background_color_near_button_start 做渐变)。
|
67
|
+
border_radius: str
|
68
|
+
组件的圆角,如 '4px', '8px', '50%' 等。
|
69
|
+
|
70
|
+
label_start_color: str
|
71
|
+
前标签文字颜色(默认为 #7f1916)。
|
72
|
+
label_end_color: str
|
73
|
+
后标签文字颜色(默认为 #FFFFFF)。
|
74
|
+
label_font_size: str
|
75
|
+
标签文字的字体大小(如 '14px' 等)。
|
76
|
+
label_font_weight: str
|
77
|
+
标签文字的粗细(如 'bold', 'normal', '500' 等)。
|
78
|
+
switch_size: {'small', 'medium'}
|
79
|
+
切换开关本身的尺寸。
|
80
|
+
|
81
|
+
Returns
|
82
|
+
-------
|
83
|
+
bool
|
84
|
+
返回切换后的状态。如果无法获取,则返回 default_value。
|
85
|
+
"""
|
40
86
|
|
41
87
|
toggle_value = _component_func(
|
42
88
|
key=key,
|
43
89
|
default_value=default_value,
|
44
|
-
label_after=label_after,
|
45
90
|
label_start=label_start,
|
46
91
|
label_end=label_end,
|
47
92
|
justify=justify,
|
48
93
|
inactive_color=inactive_color,
|
49
94
|
active_color=active_color,
|
50
95
|
track_color=track_color,
|
51
|
-
label_bg_color_start=label_bg_color_start,
|
52
|
-
label_bg_color_end=label_bg_color_end,
|
53
|
-
background_color_near_button_start=background_color_near_button_start,
|
54
|
-
background_color_near_button_end=background_color_near_button_end
|
96
|
+
label_bg_color_start=label_bg_color_start,
|
97
|
+
label_bg_color_end=label_bg_color_end,
|
98
|
+
background_color_near_button_start=background_color_near_button_start,
|
99
|
+
background_color_near_button_end=background_color_near_button_end,
|
100
|
+
border_radius=border_radius,
|
101
|
+
label_start_color=label_start_color,
|
102
|
+
label_end_color=label_end_color,
|
103
|
+
label_font_size=label_font_size,
|
104
|
+
label_font_weight=label_font_weight,
|
105
|
+
switch_size=switch_size,
|
55
106
|
)
|
56
107
|
return toggle_value if toggle_value is not None else default_value
|
57
108
|
|
58
109
|
|
110
|
+
# 仅在开发环境时演示组件效果
|
59
111
|
if not _RELEASE:
|
60
|
-
st.header('Streamlit Toggle Switch')
|
112
|
+
st.header('Streamlit Toggle Switch - Dev Mode')
|
61
113
|
st.write('---')
|
62
114
|
|
63
|
-
# 使用 color_picker
|
115
|
+
# 使用 color_picker 选择不同颜色
|
64
116
|
color1_start = st.color_picker('选择 Question 1 标签起始背景颜色', '#FFD700')
|
65
117
|
color1_end = st.color_picker('选择 Question 1 标签结束背景颜色', '#FF8C00')
|
66
118
|
|
@@ -77,64 +129,167 @@ if not _RELEASE:
|
|
77
129
|
color5_end = st.color_picker('选择 Disable Filter 标签结束背景颜色', '#00FF7F')
|
78
130
|
|
79
131
|
# 新增颜色选择器用于按钮附近的背景颜色
|
80
|
-
button_bg_start = st.color_picker('
|
81
|
-
button_bg_end = st.color_picker('
|
132
|
+
button_bg_start = st.color_picker('按钮附近的起始背景颜色', '#FFFFFF')
|
133
|
+
button_bg_end = st.color_picker('按钮附近的结束背景颜色', '#FFFFFF')
|
134
|
+
|
135
|
+
# 新增圆角选择器
|
136
|
+
border_radius = st.text_input('组件圆角(如:4px, 8px, 50%)', '8px')
|
137
|
+
|
138
|
+
# 新增对齐方式选择器
|
139
|
+
justify = st.selectbox(
|
140
|
+
'标签与开关的对齐方式',
|
141
|
+
('flex-start', 'center', 'flex-end')
|
142
|
+
)
|
143
|
+
|
144
|
+
# 新增标签文字颜色选择
|
145
|
+
label_start_color = st.color_picker("左侧标签文字颜色", "#7f1916")
|
146
|
+
label_end_color = st.color_picker("右侧标签文字颜色", "#FFFFFF")
|
147
|
+
|
148
|
+
# 标签字体大小与粗细
|
149
|
+
label_font_size = st.text_input("标签字体大小", "14px")
|
150
|
+
label_font_weight = st.text_input("标签字体粗细", "bold")
|
151
|
+
|
152
|
+
# Switch 尺寸选择器
|
153
|
+
switch_size = st.selectbox(
|
154
|
+
"Switch 尺寸",
|
155
|
+
("small", "medium")
|
156
|
+
)
|
82
157
|
|
83
158
|
columns = st.columns(3)
|
84
159
|
with columns[0]:
|
85
160
|
st_toggle_switch(
|
86
|
-
label="Question 1",
|
87
161
|
key='c1',
|
88
|
-
|
162
|
+
label_start="Question 1",
|
163
|
+
label_end="", # 不显示后标签
|
164
|
+
justify=justify,
|
165
|
+
default_value=True,
|
166
|
+
inactive_color='#D3D3D3',
|
167
|
+
active_color="#11567f",
|
168
|
+
track_color="#29B5E8",
|
89
169
|
label_bg_color_start=color1_start,
|
90
170
|
label_bg_color_end=color1_end,
|
91
|
-
background_color_near_button_start=button_bg_start,
|
92
|
-
background_color_near_button_end=button_bg_end
|
171
|
+
background_color_near_button_start=button_bg_start,
|
172
|
+
background_color_near_button_end=button_bg_end,
|
173
|
+
border_radius=border_radius,
|
174
|
+
label_start_color=label_start_color,
|
175
|
+
label_end_color=label_end_color,
|
176
|
+
label_font_size=label_font_size,
|
177
|
+
label_font_weight=label_font_weight,
|
178
|
+
switch_size=switch_size,
|
93
179
|
)
|
180
|
+
|
94
181
|
st_toggle_switch(
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
182
|
+
key="input_toggle",
|
183
|
+
label_start="",
|
184
|
+
label_end="Question 2",
|
185
|
+
justify='flex-start',
|
186
|
+
default_value=True,
|
187
|
+
inactive_color='#95e1d3',
|
188
|
+
active_color="#f38181",
|
189
|
+
track_color="#f38181",
|
190
|
+
label_bg_color_start='white',
|
191
|
+
label_bg_color_end='black',
|
192
|
+
background_color_near_button_start='blue',
|
193
|
+
background_color_near_button_end='black',
|
194
|
+
border_radius='10px',
|
195
|
+
label_start_color="#000000",
|
196
|
+
label_end_color="#FFFFFF",
|
197
|
+
label_font_size="12px",
|
198
|
+
label_font_weight="normal",
|
199
|
+
switch_size="small",
|
102
200
|
)
|
201
|
+
|
103
202
|
with columns[1]:
|
104
203
|
st_toggle_switch(
|
105
|
-
label="Question 3",
|
106
204
|
key='q2',
|
107
|
-
|
205
|
+
label_start="", # 不显示前标签
|
206
|
+
label_end="Question 3",
|
207
|
+
justify=justify,
|
108
208
|
default_value=True,
|
209
|
+
inactive_color='#DDA0DD',
|
210
|
+
active_color="#9400D3",
|
211
|
+
track_color="#BA55D3",
|
109
212
|
label_bg_color_start=color3_start,
|
110
213
|
label_bg_color_end=color3_end,
|
111
214
|
background_color_near_button_start=button_bg_start,
|
112
|
-
background_color_near_button_end=button_bg_end
|
215
|
+
background_color_near_button_end=button_bg_end,
|
216
|
+
border_radius=border_radius,
|
217
|
+
label_start_color=label_start_color,
|
218
|
+
label_end_color=label_end_color,
|
219
|
+
label_font_size=label_font_size,
|
220
|
+
label_font_weight=label_font_weight,
|
221
|
+
switch_size=switch_size,
|
113
222
|
)
|
114
223
|
st_toggle_switch(
|
115
|
-
label="Question 4",
|
116
224
|
key='q3',
|
117
|
-
|
118
|
-
|
225
|
+
label_start="", # 不显示前标签
|
226
|
+
label_end="Question 4",
|
227
|
+
justify=justify,
|
228
|
+
default_value=False,
|
229
|
+
inactive_color='#FFA07A',
|
230
|
+
active_color="#FF4500",
|
231
|
+
track_color="#FF6347",
|
119
232
|
label_bg_color_start=color4_start,
|
120
233
|
label_bg_color_end=color4_end,
|
121
234
|
background_color_near_button_start=button_bg_start,
|
122
|
-
background_color_near_button_end=button_bg_end
|
235
|
+
background_color_near_button_end=button_bg_end,
|
236
|
+
border_radius=border_radius,
|
237
|
+
label_start_color=label_start_color,
|
238
|
+
label_end_color=label_end_color,
|
239
|
+
label_font_size=label_font_size,
|
240
|
+
label_font_weight=label_font_weight,
|
241
|
+
switch_size=switch_size,
|
123
242
|
)
|
243
|
+
|
124
244
|
with columns[2]:
|
125
|
-
|
126
|
-
"Disable Filter",
|
245
|
+
st_toggle_switch(
|
127
246
|
key='q1',
|
128
|
-
|
247
|
+
label_start="Disable Filter",
|
248
|
+
label_end="", # 不显示后标签
|
249
|
+
justify=justify,
|
129
250
|
default_value=True,
|
251
|
+
inactive_color='#98FB98',
|
252
|
+
active_color="#00FF7F",
|
253
|
+
track_color="#00FA9A",
|
130
254
|
label_bg_color_start=color5_start,
|
131
255
|
label_bg_color_end=color5_end,
|
132
256
|
background_color_near_button_start=button_bg_start,
|
133
|
-
background_color_near_button_end=button_bg_end
|
257
|
+
background_color_near_button_end=button_bg_end,
|
258
|
+
border_radius=border_radius,
|
259
|
+
label_start_color=label_start_color,
|
260
|
+
label_end_color=label_end_color,
|
261
|
+
label_font_size=label_font_size,
|
262
|
+
label_font_weight=label_font_weight,
|
263
|
+
switch_size=switch_size,
|
264
|
+
)
|
265
|
+
range_slider_toggle = st_toggle_switch(
|
266
|
+
key='ql',
|
267
|
+
label_start="Disable Filter",
|
268
|
+
label_end="", # 不显示后标签
|
269
|
+
justify=justify,
|
270
|
+
default_value=True,
|
271
|
+
inactive_color='#98FB98',
|
272
|
+
active_color="#00FF7F",
|
273
|
+
track_color="#00FA9A",
|
274
|
+
label_bg_color_start=color5_start,
|
275
|
+
label_bg_color_end=color5_end,
|
276
|
+
background_color_near_button_start=button_bg_start,
|
277
|
+
background_color_near_button_end=button_bg_end,
|
278
|
+
border_radius=border_radius,
|
279
|
+
label_start_color=label_start_color,
|
280
|
+
label_end_color=label_end_color,
|
281
|
+
label_font_size=label_font_size,
|
282
|
+
label_font_weight=label_font_weight,
|
283
|
+
switch_size=switch_size,
|
134
284
|
)
|
135
285
|
range_slider = st.slider(
|
136
286
|
label="Filter Range",
|
137
287
|
min_value=0,
|
138
288
|
max_value=100,
|
139
|
-
disabled=range_slider_toggle
|
289
|
+
disabled=range_slider_toggle,
|
140
290
|
)
|
291
|
+
|
292
|
+
st_toggle_switch(
|
293
|
+
key='q4',
|
294
|
+
label_start="Disable Filter",
|
295
|
+
label_end="Disable Filter",)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
{
|
2
|
+
"files": {
|
3
|
+
"main.js": "./static/js/main.9f3c3eed.chunk.js",
|
4
|
+
"main.js.map": "./static/js/main.9f3c3eed.chunk.js.map",
|
5
|
+
"runtime-main.js": "./static/js/runtime-main.cc20bba3.js",
|
6
|
+
"runtime-main.js.map": "./static/js/runtime-main.cc20bba3.js.map",
|
7
|
+
"static/js/2.9720bf9e.chunk.js": "./static/js/2.9720bf9e.chunk.js",
|
8
|
+
"static/js/2.9720bf9e.chunk.js.map": "./static/js/2.9720bf9e.chunk.js.map",
|
9
|
+
"index.html": "./index.html",
|
10
|
+
"precache-manifest.b7df6085566f07f8f27b94ee8ed2d302.js": "./precache-manifest.b7df6085566f07f8f27b94ee8ed2d302.js",
|
11
|
+
"service-worker.js": "./service-worker.js",
|
12
|
+
"static/js/2.9720bf9e.chunk.js.LICENSE.txt": "./static/js/2.9720bf9e.chunk.js.LICENSE.txt"
|
13
|
+
},
|
14
|
+
"entrypoints": [
|
15
|
+
"static/js/runtime-main.cc20bba3.js",
|
16
|
+
"static/js/2.9720bf9e.chunk.js",
|
17
|
+
"static/js/main.9f3c3eed.chunk.js"
|
18
|
+
]
|
19
|
+
}
|