streamlit-nightly 1.53.1.dev20260114__py3-none-any.whl → 1.53.1.dev20260115__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.
Files changed (119) hide show
  1. streamlit/__init__.py +0 -26
  2. streamlit/config.py +29 -0
  3. streamlit/elements/lib/streamlit_plotly_theme.py +9 -11
  4. streamlit/proto/NewSession_pb2.py +18 -18
  5. streamlit/proto/NewSession_pb2.pyi +5 -1
  6. streamlit/runtime/app_session.py +78 -58
  7. streamlit/runtime/scriptrunner_utils/script_run_context.py +0 -21
  8. streamlit/runtime/state/query_params.py +0 -19
  9. streamlit/static/index.html +1 -1
  10. streamlit/static/manifest.json +299 -299
  11. streamlit/static/static/js/{ErrorOutline.esm.BAZUU4id.js → ErrorOutline.esm.CiSfK8ht.js} +1 -1
  12. streamlit/static/static/js/{FileDownload.esm.C6tTTniR.js → FileDownload.esm.ItNjcEfs.js} +1 -1
  13. streamlit/static/static/js/{FileHelper.BOHlwlc9.js → FileHelper.xS7f19FE.js} +1 -1
  14. streamlit/static/static/js/{FormClearHelper.D4lty7rT.js → FormClearHelper.N8_BCinn.js} +1 -1
  15. streamlit/static/static/js/{InputInstructions.BWw9lhud.js → InputInstructions.CrsdK7CQ.js} +1 -1
  16. streamlit/static/static/js/Particles.BDlTHC3I.js +1 -0
  17. streamlit/static/static/js/{ProgressBar.DCHh4N3P.js → ProgressBar.Bk2qeHfS.js} +2 -2
  18. streamlit/static/static/js/{StreamlitSyntaxHighlighter.BRydQwEj.js → StreamlitSyntaxHighlighter.BcuPrPcw.js} +1 -1
  19. streamlit/static/static/js/{TableChart.esm.7KFX5I_G.js → TableChart.esm.CP7XPz8I.js} +1 -1
  20. streamlit/static/static/js/Toolbar.DCJcLwve.js +1 -0
  21. streamlit/static/static/js/{WidgetLabelHelpIconInline.CzodezAH.js → WidgetLabelHelpIconInline.BPqxu1b-.js} +1 -1
  22. streamlit/static/static/js/{base-input.Cg7NpsfS.js → base-input.x4muJJ13.js} +4 -4
  23. streamlit/static/static/js/{checkbox.Bs20OTna.js → checkbox.C5r4AIaH.js} +1 -1
  24. streamlit/static/static/js/{createDownloadLinkElement.DSqCyu38.js → createDownloadLinkElement.C83kkEeT.js} +1 -1
  25. streamlit/static/static/js/{data-grid-overlay-editor.Ch4SqNfY.js → data-grid-overlay-editor.0sOWm4IB.js} +1 -1
  26. streamlit/static/static/js/{downloader.Oj5CTGJA.js → downloader.C_6FfoEv.js} +1 -1
  27. streamlit/static/static/js/{embed.CqzzUq73.js → embed.BnJ6-SK4.js} +14 -14
  28. streamlit/static/static/js/{es6.CYrlw0Vn.js → es6.44_BWfFd.js} +2 -2
  29. streamlit/static/static/js/{formatNumber.CT_v8e75.js → formatNumber.DhHZAosz.js} +1 -1
  30. streamlit/static/static/js/{iconPosition.DPAvXTmd.js → iconPosition.shOoQuRR.js} +1 -1
  31. streamlit/static/static/js/{iframeResizer.contentWindow.T4DvQsIf.js → iframeResizer.contentWindow.savEE5Vs.js} +1 -1
  32. streamlit/static/static/js/{index.BoWBzl6h.js → index.AdijUi9Z.js} +1 -1
  33. streamlit/static/static/js/{index.Dtd5z2rM.js → index.B5HlOnvq.js} +1 -1
  34. streamlit/static/static/js/{index.MtwRNvlS.js → index.B6ewTTej.js} +1 -1
  35. streamlit/static/static/js/{index.D7KbBAWb.js → index.B8Of3XXR.js} +1 -1
  36. streamlit/static/static/js/{index.xCV2qwtw.js → index.BCaCSVj6.js} +1 -1
  37. streamlit/static/static/js/index.BE7Rhig1.js +1 -0
  38. streamlit/static/static/js/{index.DL_Ooizi.js → index.BHpLZ7X6.js} +2 -2
  39. streamlit/static/static/js/{index.BPxuKK0S.js → index.BNvP8E5Q.js} +1 -1
  40. streamlit/static/static/js/{index.LOA31DFn.js → index.BNzuyXeN.js} +2 -2
  41. streamlit/static/static/js/{index.Cfe-tCQJ.js → index.BT7o4A9V.js} +1 -1
  42. streamlit/static/static/js/{index.BZ8xp-w9.js → index.BYY3iuVE.js} +1 -1
  43. streamlit/static/static/js/index.BZI7jTDf.js +1 -0
  44. streamlit/static/static/js/{index.CGRIbGGV.js → index.BZXk3Qxq.js} +1 -1
  45. streamlit/static/static/js/{index.CVXiBeDI.js → index.BhQvq6YD.js} +1 -1
  46. streamlit/static/static/js/{index.CnXxoVEM.js → index.BkIReLGJ.js} +3 -3
  47. streamlit/static/static/js/{index.AGYZDQZm.js → index.Bl7SMZUw.js} +1 -1
  48. streamlit/static/static/js/{index.b-MrPulo.js → index.BqtgAGnG.js} +2 -2
  49. streamlit/static/static/js/{index.B3HdcUdo.js → index.BwnLQnAk.js} +1 -1
  50. streamlit/static/static/js/index.C1coXTgf.js +2 -0
  51. streamlit/static/static/js/{index.DXRGd--0.js → index.C6uOmY9O.js} +1 -1
  52. streamlit/static/static/js/index.CF88nImM.js +1 -0
  53. streamlit/static/static/js/{index.B9Oowxt8.js → index.CFlGfFvq.js} +1 -1
  54. streamlit/static/static/js/{index.wngeYhKj.js → index.CQgiNpC7.js} +1 -1
  55. streamlit/static/static/js/{index.D84XHt50.js → index.CZJkiRFm.js} +1 -1
  56. streamlit/static/static/js/index.Ch1TdQMG.js +1 -0
  57. streamlit/static/static/js/{index.Yj6vcyFD.js → index.Ck2mQvBi.js} +1 -1
  58. streamlit/static/static/js/{index.DPlPEuq6.js → index.CrD2lwZG.js} +1 -1
  59. streamlit/static/static/js/index.CySNwKoN.js +2 -0
  60. streamlit/static/static/js/index.D3LEkXqN.js +1 -0
  61. streamlit/static/static/js/{index.BTA0d5oq.js → index.D8BQH06Z.js} +1 -1
  62. streamlit/static/static/js/{index.B8ZZdPqF.js → index.DBtWixG1.js} +1 -1
  63. streamlit/static/static/js/{index.CVKk1nkB.js → index.DIsNrJpC.js} +1 -1
  64. streamlit/static/static/js/{index.CPYB1awG.js → index.DO3HICut.js} +1 -1
  65. streamlit/static/static/js/{index.D6HCANv6.js → index.D_ziFad8.js} +1 -1
  66. streamlit/static/static/js/{index.BTqav7_K.js → index.Dblsdn8d.js} +1 -1
  67. streamlit/static/static/js/{index.Dg9k4R8B.js → index.DcdD0ROn.js} +2 -2
  68. streamlit/static/static/js/{index.tLZuZM89.js → index.DfHm3P22.js} +51 -51
  69. streamlit/static/static/js/{index.CXVpBAvU.js → index.DiwhD0Ic.js} +46 -46
  70. streamlit/static/static/js/index.DvZDNiBV.js +11 -0
  71. streamlit/static/static/js/{index.DQzRwgrT.js → index.HjydQ4bj.js} +1 -1
  72. streamlit/static/static/js/{index.XHtvnZ0-.js → index.HsxzYHNf.js} +1 -1
  73. streamlit/static/static/js/{index.DesNeXSA.js → index.SVJGpnpy.js} +1 -1
  74. streamlit/static/static/js/index.SjKkVSL7.js +1 -0
  75. streamlit/static/static/js/index.hX8_3tMP.js +1 -0
  76. streamlit/static/static/js/{index.BEzgNZOm.js → index.jZin0w6_.js} +1 -1
  77. streamlit/static/static/js/{index.DzldU3Hy.js → index.pQvPlPcA.js} +4 -4
  78. streamlit/static/static/js/index.pzQTLx9j.js +1 -0
  79. streamlit/static/static/js/{index.ClFk8x0U.js → index.s44_OVd6.js} +33 -33
  80. streamlit/static/static/js/{input.CYXuTqoa.js → input.jAD-v9D6.js} +2 -2
  81. streamlit/static/static/js/{main.BE-siVKv.js → main.Cas0fuOs.js} +1 -1
  82. streamlit/static/static/js/{memory.V554ztRg.js → memory.ENruL8Qk.js} +1 -1
  83. streamlit/static/static/js/{number-overlay-editor.BiUTOXIl.js → number-overlay-editor.DAOTdulh.js} +2 -2
  84. streamlit/static/static/js/{pandasStylerUtils.Dej3Tstq.js → pandasStylerUtils.DChYgcPq.js} +1 -1
  85. streamlit/static/static/js/{sandbox.gpd7KGMo.js → sandbox.DWZYRCm0.js} +1 -1
  86. streamlit/static/static/js/{styled-components.Coj4dr6D.js → styled-components.3lwVqgRW.js} +1 -1
  87. streamlit/static/static/js/{throttle.gZUdtYp7.js → throttle.DfOW1Cns.js} +1 -1
  88. streamlit/static/static/js/{timepicker.B-Y4aU15.js → timepicker.CXHgL5f9.js} +1 -1
  89. streamlit/static/static/js/{toConsumableArray.CcKcKvEd.js → toConsumableArray.DiW0GSDV.js} +1 -1
  90. streamlit/static/static/js/uniqueId.Dfi3SGKZ.js +1 -0
  91. streamlit/static/static/js/{useBasicWidgetState.D-fc_aIL.js → useBasicWidgetState.DnPEt_f3.js} +1 -1
  92. streamlit/static/static/js/{useIntlLocale.CY32IeNt.js → useIntlLocale.BZEGSOVD.js} +8 -8
  93. streamlit/static/static/js/{useTextInputAutoExpand.C0jK7TwF.js → useTextInputAutoExpand.MGVZMqyt.js} +1 -1
  94. streamlit/static/static/js/useUpdateUiValue.CPl6CEx3.js +1 -0
  95. streamlit/static/static/js/{useWaveformController.BLEIAIDo.js → useWaveformController.DOpzDyZu.js} +1 -1
  96. streamlit/static/static/js/{withCalculatedWidth.B3oSlRC0.js → withCalculatedWidth.DgKFTeif.js} +1 -1
  97. streamlit/static/static/js/{withFullScreenWrapper.Cw_ebNmr.js → withFullScreenWrapper.K1jkwhPu.js} +1 -1
  98. {streamlit_nightly-1.53.1.dev20260114.dist-info → streamlit_nightly-1.53.1.dev20260115.dist-info}/METADATA +1 -1
  99. {streamlit_nightly-1.53.1.dev20260114.dist-info → streamlit_nightly-1.53.1.dev20260115.dist-info}/RECORD +103 -104
  100. streamlit/commands/experimental_query_params.py +0 -169
  101. streamlit/static/static/js/Particles.BDi7fIn-.js +0 -1
  102. streamlit/static/static/js/Toolbar.guIuiwEF.js +0 -1
  103. streamlit/static/static/js/index.BJnWg9Jq.js +0 -1
  104. streamlit/static/static/js/index.Bqgt60FU.js +0 -1
  105. streamlit/static/static/js/index.BsYYrijt.js +0 -11
  106. streamlit/static/static/js/index.CJQq5LcR.js +0 -2
  107. streamlit/static/static/js/index.Cw4eSvJ7.js +0 -1
  108. streamlit/static/static/js/index.DNyw7S7Z.js +0 -1
  109. streamlit/static/static/js/index.DZDt5hYD.js +0 -1
  110. streamlit/static/static/js/index.Do9A7QCt.js +0 -1
  111. streamlit/static/static/js/index.DrSH3pK3.js +0 -2
  112. streamlit/static/static/js/index.GZi6GTJa.js +0 -1
  113. streamlit/static/static/js/index.hcUYvTqs.js +0 -1
  114. streamlit/static/static/js/uniqueId.PRn3V1WU.js +0 -1
  115. streamlit/static/static/js/useUpdateUiValue.CDQloDgB.js +0 -1
  116. {streamlit_nightly-1.53.1.dev20260114.data → streamlit_nightly-1.53.1.dev20260115.data}/scripts/streamlit.cmd +0 -0
  117. {streamlit_nightly-1.53.1.dev20260114.dist-info → streamlit_nightly-1.53.1.dev20260115.dist-info}/WHEEL +0 -0
  118. {streamlit_nightly-1.53.1.dev20260114.dist-info → streamlit_nightly-1.53.1.dev20260115.dist-info}/entry_points.txt +0 -0
  119. {streamlit_nightly-1.53.1.dev20260114.dist-info → streamlit_nightly-1.53.1.dev20260115.dist-info}/top_level.txt +0 -0
streamlit/__init__.py CHANGED
@@ -60,7 +60,6 @@ _os.environ["MPLBACKEND"] = "Agg"
60
60
  # Must be at the top, to avoid circular dependency.
61
61
  from streamlit import logger as _logger
62
62
  from streamlit import config as _config
63
- from streamlit.deprecation_util import deprecate_func_name as _deprecate_func_name
64
63
  from streamlit.version import STREAMLIT_VERSION_STRING as _STREAMLIT_VERSION_STRING
65
64
 
66
65
  # Give the package a version.
@@ -116,10 +115,6 @@ from streamlit.user_info import (
116
115
  login as _login,
117
116
  logout as _logout,
118
117
  )
119
- from streamlit.commands.experimental_query_params import (
120
- get_query_params as _get_query_params,
121
- set_query_params as _set_query_params,
122
- )
123
118
 
124
119
  import streamlit.column_config as _column_config
125
120
 
@@ -283,27 +278,6 @@ user = _UserInfoProxy()
283
278
  # Experimental APIs
284
279
  experimental_user = _DeprecatedUserInfoProxy()
285
280
 
286
- _EXPERIMENTAL_QUERY_PARAMS_DEPRECATE_MSG = (
287
- "Refer to our [docs page](https://docs.streamlit.io/develop/api-reference/caching-and-state/st.query_params) "
288
- "for more information."
289
- )
290
-
291
- experimental_get_query_params = _deprecate_func_name(
292
- _get_query_params,
293
- "experimental_get_query_params",
294
- "2024-04-11",
295
- _EXPERIMENTAL_QUERY_PARAMS_DEPRECATE_MSG,
296
- name_override="query_params",
297
- )
298
- experimental_set_query_params = _deprecate_func_name(
299
- _set_query_params,
300
- "experimental_set_query_params",
301
- "2024-04-11",
302
- _EXPERIMENTAL_QUERY_PARAMS_DEPRECATE_MSG,
303
- name_override="query_params",
304
- )
305
-
306
-
307
281
  # make it possible to call streamlit.components.v1.html etc. by importing it here
308
282
  # import in the very end to avoid partially-initialized module import errors, because
309
283
  # streamlit.components.v1 also uses some streamlit imports
streamlit/config.py CHANGED
@@ -2279,6 +2279,35 @@ _create_theme_options(
2279
2279
  """,
2280
2280
  )
2281
2281
 
2282
+ _create_theme_options(
2283
+ "chartDivergingColors",
2284
+ categories=["theme"],
2285
+ description="""
2286
+ An array of ten colors to use for diverging chart data.
2287
+
2288
+ The ten colors create a diverging color scale, typically used for data
2289
+ with a meaningful midpoint. These colors apply to Plotly, Altair, and
2290
+ Vega-Lite charts.
2291
+
2292
+ Invalid color strings are skipped. If there are not exactly ten
2293
+ valid colors specified, Streamlit uses a default set of colors.
2294
+
2295
+ The default colors are:
2296
+ [
2297
+ "#7d353b", #red100
2298
+ "#bd4043", #red90
2299
+ "#ff4b4b", #red70
2300
+ "#ff8c8c", #red50
2301
+ "#ffc7c7", #red30
2302
+ "#a6dcff", #blue30
2303
+ "#60b4ff", #blue50
2304
+ "#1c83e1", #blue70
2305
+ "#0054a3", #blue90
2306
+ "#004280", #blue100
2307
+ ]
2308
+ """,
2309
+ )
2310
+
2282
2311
  # Config Section: Secrets #
2283
2312
 
2284
2313
  _create_section("secrets", "Secrets configuration.")
@@ -58,7 +58,6 @@ DIVERGING_6: Final = "#000027"
58
58
  DIVERGING_7: Final = "#000028"
59
59
  DIVERGING_8: Final = "#000029"
60
60
  DIVERGING_9: Final = "#000030"
61
- DIVERGING_10: Final = "#000031"
62
61
 
63
62
  INCREASING: Final = "#000032"
64
63
  DECREASING: Final = "#000033"
@@ -189,16 +188,15 @@ def configure_streamlit_plotly_theme() -> None:
189
188
  sequentialminus=streamlit_colorscale,
190
189
  diverging=[
191
190
  [0.0, DIVERGING_0],
192
- [0.1, DIVERGING_1],
193
- [0.2, DIVERGING_2],
194
- [0.3, DIVERGING_3],
195
- [0.4, DIVERGING_4],
196
- [0.5, DIVERGING_5],
197
- [0.6, DIVERGING_6],
198
- [0.7, DIVERGING_7],
199
- [0.8, DIVERGING_8],
200
- [0.9, DIVERGING_9],
201
- [1.0, DIVERGING_10],
191
+ [0.1111111111111111, DIVERGING_1],
192
+ [0.2222222222222222, DIVERGING_2],
193
+ [0.3333333333333333, DIVERGING_3],
194
+ [0.4444444444444444, DIVERGING_4],
195
+ [0.5555555555555556, DIVERGING_5],
196
+ [0.6666666666666666, DIVERGING_6],
197
+ [0.7777777777777778, DIVERGING_7],
198
+ [0.8888888888888888, DIVERGING_8],
199
+ [1.0, DIVERGING_9],
202
200
  ],
203
201
  ),
204
202
  coloraxis=go.layout.Coloraxis(colorscale=streamlit_colorscale),
@@ -16,7 +16,7 @@ from streamlit.proto import AppPage_pb2 as streamlit_dot_proto_dot_AppPage__pb2
16
16
  from streamlit.proto import SessionStatus_pb2 as streamlit_dot_proto_dot_SessionStatus__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n streamlit/proto/NewSession.proto\x1a\x1dstreamlit/proto/AppPage.proto\x1a#streamlit/proto/SessionStatus.proto\"\xa5\x02\n\nNewSession\x12\x1f\n\ninitialize\x18\x01 \x01(\x0b\x32\x0b.Initialize\x12\x15\n\rscript_run_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x18\n\x10main_script_path\x18\x04 \x01(\t\x12\x17\n\x06\x63onfig\x18\x06 \x01(\x0b\x32\x07.Config\x12(\n\x0c\x63ustom_theme\x18\x07 \x01(\x0b\x32\x12.CustomThemeConfig\x12\x1b\n\tapp_pages\x18\x08 \x03(\x0b\x32\x08.AppPage\x12\x18\n\x10page_script_hash\x18\t \x01(\t\x12\x1d\n\x15\x66ragment_ids_this_run\x18\n \x03(\t\x12\x18\n\x10main_script_hash\x18\x0b \x01(\tJ\x04\x08\x05\x10\x06\"\xba\x01\n\nInitialize\x12\x1c\n\tuser_info\x18\x01 \x01(\x0b\x32\t.UserInfo\x12*\n\x10\x65nvironment_info\x18\x03 \x01(\x0b\x32\x10.EnvironmentInfo\x12&\n\x0esession_status\x18\x04 \x01(\x0b\x32\x0e.SessionStatus\x12\x14\n\x0c\x63ommand_line\x18\x05 \x01(\t\x12\x12\n\nsession_id\x18\x06 \x01(\t\x12\x10\n\x08is_hello\x18\x07 \x01(\x08\"\x97\x02\n\x06\x43onfig\x12\x1a\n\x12gather_usage_stats\x18\x02 \x01(\x08\x12\x1e\n\x16max_cached_message_age\x18\x03 \x01(\x05\x12\x14\n\x0cmapbox_token\x18\x04 \x01(\t\x12\x19\n\x11\x61llow_run_on_save\x18\x05 \x01(\x08\x12\x14\n\x0chide_top_bar\x18\x06 \x01(\x08\x12\x18\n\x10hide_sidebar_nav\x18\x07 \x01(\x08\x12)\n\x0ctoolbar_mode\x18\x08 \x01(\x0e\x32\x13.Config.ToolbarMode\"?\n\x0bToolbarMode\x12\x08\n\x04\x41UTO\x10\x00\x12\r\n\tDEVELOPER\x10\x01\x12\n\n\x06VIEWER\x10\x02\x12\x0b\n\x07MINIMAL\x10\x03J\x04\x08\x01\x10\x02\"\xc2\x15\n\x11\x43ustomThemeConfig\x12\x15\n\rprimary_color\x18\x01 \x01(\t\x12\"\n\x1asecondary_background_color\x18\x02 \x01(\t\x12\x18\n\x10\x62\x61\x63kground_color\x18\x03 \x01(\t\x12\x12\n\ntext_color\x18\x04 \x01(\t\x12+\n\x04\x66ont\x18\x05 \x01(\x0e\x32\x1d.CustomThemeConfig.FontFamily\x12*\n\x04\x62\x61se\x18\x06 \x01(\x0e\x32\x1c.CustomThemeConfig.BaseTheme\x12\x1f\n\x17widget_background_color\x18\x07 \x01(\t\x12\x1b\n\x13widget_border_color\x18\x08 \x01(\t\x12\x15\n\x05radii\x18\t \x01(\x0b\x32\x06.Radii\x12\x14\n\x0cheading_font\x18\x0c \x01(\t\x12\x11\n\tbody_font\x18\r \x01(\t\x12\x11\n\tcode_font\x18\x0e \x01(\t\x12\x1d\n\nfont_faces\x18\x0f \x03(\x0b\x32\t.FontFace\x12!\n\x0c\x66ont_sources\x18% \x03(\x0b\x32\x0b.FontSource\x12\x1e\n\nfont_sizes\x18\x10 \x01(\x0b\x32\n.FontSizes\x12!\n\x19skeleton_background_color\x18\x11 \x01(\t\x12\x18\n\x0b\x62\x61se_radius\x18\x12 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rbutton_radius\x18\x1a \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0c\x62order_color\x18\x13 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x64\x61taframe_border_color\x18\x1b \x01(\tH\x03\x88\x01\x01\x12\x1f\n\x12show_widget_border\x18\x14 \x01(\x08H\x04\x88\x01\x01\x12\x17\n\nlink_color\x18\x15 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0elink_underline\x18\x1d \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0e\x62\x61se_font_size\x18\x16 \x01(\x05H\x07\x88\x01\x01\x12\x1d\n\x10\x62\x61se_font_weight\x18\x1e \x01(\x05H\x08\x88\x01\x01\x12\x1d\n\x10\x63ode_font_weight\x18 \x01(\x05H\t\x88\x01\x01\x12\x1b\n\x0e\x63ode_font_size\x18\x1c \x01(\tH\n\x88\x01\x01\x12\x1a\n\x12heading_font_sizes\x18# \x03(\t\x12\x1c\n\x14heading_font_weights\x18\" \x03(\x05\x12 \n\x13show_sidebar_border\x18\x17 \x01(\x08H\x0b\x88\x01\x01\x12\x1c\n\x0f\x63ode_text_color\x18; \x01(\tH\x0c\x88\x01\x01\x12\"\n\x15\x63ode_background_color\x18\x19 \x01(\tH\r\x88\x01\x01\x12.\n!dataframe_header_background_color\x18\x1f \x01(\tH\x0e\x88\x01\x01\x12 \n\x18\x63hart_categorical_colors\x18! \x03(\t\x12\x1f\n\x17\x63hart_sequential_colors\x18$ \x03(\t\x12\x16\n\tred_color\x18& \x01(\tH\x0f\x88\x01\x01\x12\x19\n\x0corange_color\x18\' \x01(\tH\x10\x88\x01\x01\x12\x19\n\x0cyellow_color\x18( \x01(\tH\x11\x88\x01\x01\x12\x17\n\nblue_color\x18) \x01(\tH\x12\x88\x01\x01\x12\x18\n\x0bgreen_color\x18* \x01(\tH\x13\x88\x01\x01\x12\x19\n\x0cviolet_color\x18+ \x01(\tH\x14\x88\x01\x01\x12\x17\n\ngray_color\x18, \x01(\tH\x15\x88\x01\x01\x12!\n\x14red_background_color\x18- \x01(\tH\x16\x88\x01\x01\x12$\n\x17orange_background_color\x18. \x01(\tH\x17\x88\x01\x01\x12$\n\x17yellow_background_color\x18/ \x01(\tH\x18\x88\x01\x01\x12\"\n\x15\x62lue_background_color\x18\x30 \x01(\tH\x19\x88\x01\x01\x12#\n\x16green_background_color\x18\x31 \x01(\tH\x1a\x88\x01\x01\x12$\n\x17violet_background_color\x18\x32 \x01(\tH\x1b\x88\x01\x01\x12\"\n\x15gray_background_color\x18\x33 \x01(\tH\x1c\x88\x01\x01\x12\x1b\n\x0ered_text_color\x18\x34 \x01(\tH\x1d\x88\x01\x01\x12\x1e\n\x11orange_text_color\x18\x35 \x01(\tH\x1e\x88\x01\x01\x12\x1e\n\x11yellow_text_color\x18\x36 \x01(\tH\x1f\x88\x01\x01\x12\x1c\n\x0f\x62lue_text_color\x18\x37 \x01(\tH \x88\x01\x01\x12\x1d\n\x10green_text_color\x18\x38 \x01(\tH!\x88\x01\x01\x12\x1e\n\x11violet_text_color\x18\x39 \x01(\tH\"\x88\x01\x01\x12\x1c\n\x0fgray_text_color\x18: \x01(\tH#\x88\x01\x01\x12(\n\x07sidebar\x18\x18 \x01(\x0b\x32\x12.CustomThemeConfigH$\x88\x01\x01\x12&\n\x05light\x18< \x01(\x0b\x32\x12.CustomThemeConfigH%\x88\x01\x01\x12%\n\x04\x64\x61rk\x18= \x01(\x0b\x32\x12.CustomThemeConfigH&\x88\x01\x01\" \n\tBaseTheme\x12\t\n\x05LIGHT\x10\x00\x12\x08\n\x04\x44\x41RK\x10\x01\"6\n\nFontFamily\x12\x0e\n\nSANS_SERIF\x10\x00\x12\t\n\x05SERIF\x10\x01\x12\r\n\tMONOSPACE\x10\x02\x42\x0e\n\x0c_base_radiusB\x10\n\x0e_button_radiusB\x0f\n\r_border_colorB\x19\n\x17_dataframe_border_colorB\x15\n\x13_show_widget_borderB\r\n\x0b_link_colorB\x11\n\x0f_link_underlineB\x11\n\x0f_base_font_sizeB\x13\n\x11_base_font_weightB\x13\n\x11_code_font_weightB\x11\n\x0f_code_font_sizeB\x16\n\x14_show_sidebar_borderB\x12\n\x10_code_text_colorB\x18\n\x16_code_background_colorB$\n\"_dataframe_header_background_colorB\x0c\n\n_red_colorB\x0f\n\r_orange_colorB\x0f\n\r_yellow_colorB\r\n\x0b_blue_colorB\x0e\n\x0c_green_colorB\x0f\n\r_violet_colorB\r\n\x0b_gray_colorB\x17\n\x15_red_background_colorB\x1a\n\x18_orange_background_colorB\x1a\n\x18_yellow_background_colorB\x18\n\x16_blue_background_colorB\x19\n\x17_green_background_colorB\x1a\n\x18_violet_background_colorB\x18\n\x16_gray_background_colorB\x11\n\x0f_red_text_colorB\x14\n\x12_orange_text_colorB\x14\n\x12_yellow_text_colorB\x12\n\x10_blue_text_colorB\x13\n\x11_green_text_colorB\x14\n\x12_violet_text_colorB\x12\n\x10_gray_text_colorB\n\n\x08_sidebarB\x08\n\x06_lightB\x07\n\x05_dark\"w\n\x08\x46ontFace\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0e\n\x06\x66\x61mily\x18\x02 \x01(\t\x12\x12\n\x06weight\x18\x03 \x01(\x05\x42\x02\x18\x01\x12\x14\n\x0cweight_range\x18\x05 \x01(\t\x12\r\n\x05style\x18\x04 \x01(\t\x12\x15\n\runicode_range\x18\x06 \x01(\t\"5\n\nFontSource\x12\x13\n\x0b\x63onfig_name\x18\x01 \x01(\t\x12\x12\n\nsource_url\x18\x02 \x01(\t\"<\n\x05Radii\x12\x1a\n\x12\x62\x61se_widget_radius\x18\x01 \x01(\x05\x12\x17\n\x0f\x63heckbox_radius\x18\x02 \x01(\x05\"T\n\tFontSizes\x12\x16\n\x0etiny_font_size\x18\x01 \x01(\x05\x12\x17\n\x0fsmall_font_size\x18\x02 \x01(\x05\x12\x16\n\x0e\x62\x61se_font_size\x18\x03 \x01(\x05\"a\n\x08UserInfo\x12\x17\n\x0finstallation_id\x18\x01 \x01(\t\x12\x1a\n\x12installation_id_v3\x18\x05 \x01(\t\x12\x1a\n\x12installation_id_v4\x18\x06 \x01(\tJ\x04\x08\x02\x10\x03\"l\n\x0f\x45nvironmentInfo\x12\x19\n\x11streamlit_version\x18\x01 \x01(\t\x12\x16\n\x0epython_version\x18\x02 \x01(\t\x12\x11\n\tserver_os\x18\x03 \x01(\t\x12\x13\n\x0bhas_display\x18\x04 \x01(\x08\x42/\n\x1c\x63om.snowflake.apps.streamlitB\x0fNewSessionProtob\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n streamlit/proto/NewSession.proto\x1a\x1dstreamlit/proto/AppPage.proto\x1a#streamlit/proto/SessionStatus.proto\"\xa5\x02\n\nNewSession\x12\x1f\n\ninitialize\x18\x01 \x01(\x0b\x32\x0b.Initialize\x12\x15\n\rscript_run_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x18\n\x10main_script_path\x18\x04 \x01(\t\x12\x17\n\x06\x63onfig\x18\x06 \x01(\x0b\x32\x07.Config\x12(\n\x0c\x63ustom_theme\x18\x07 \x01(\x0b\x32\x12.CustomThemeConfig\x12\x1b\n\tapp_pages\x18\x08 \x03(\x0b\x32\x08.AppPage\x12\x18\n\x10page_script_hash\x18\t \x01(\t\x12\x1d\n\x15\x66ragment_ids_this_run\x18\n \x03(\t\x12\x18\n\x10main_script_hash\x18\x0b \x01(\tJ\x04\x08\x05\x10\x06\"\xba\x01\n\nInitialize\x12\x1c\n\tuser_info\x18\x01 \x01(\x0b\x32\t.UserInfo\x12*\n\x10\x65nvironment_info\x18\x03 \x01(\x0b\x32\x10.EnvironmentInfo\x12&\n\x0esession_status\x18\x04 \x01(\x0b\x32\x0e.SessionStatus\x12\x14\n\x0c\x63ommand_line\x18\x05 \x01(\t\x12\x12\n\nsession_id\x18\x06 \x01(\t\x12\x10\n\x08is_hello\x18\x07 \x01(\x08\"\x97\x02\n\x06\x43onfig\x12\x1a\n\x12gather_usage_stats\x18\x02 \x01(\x08\x12\x1e\n\x16max_cached_message_age\x18\x03 \x01(\x05\x12\x14\n\x0cmapbox_token\x18\x04 \x01(\t\x12\x19\n\x11\x61llow_run_on_save\x18\x05 \x01(\x08\x12\x14\n\x0chide_top_bar\x18\x06 \x01(\x08\x12\x18\n\x10hide_sidebar_nav\x18\x07 \x01(\x08\x12)\n\x0ctoolbar_mode\x18\x08 \x01(\x0e\x32\x13.Config.ToolbarMode\"?\n\x0bToolbarMode\x12\x08\n\x04\x41UTO\x10\x00\x12\r\n\tDEVELOPER\x10\x01\x12\n\n\x06VIEWER\x10\x02\x12\x0b\n\x07MINIMAL\x10\x03J\x04\x08\x01\x10\x02\"\xe2\x15\n\x11\x43ustomThemeConfig\x12\x15\n\rprimary_color\x18\x01 \x01(\t\x12\"\n\x1asecondary_background_color\x18\x02 \x01(\t\x12\x18\n\x10\x62\x61\x63kground_color\x18\x03 \x01(\t\x12\x12\n\ntext_color\x18\x04 \x01(\t\x12+\n\x04\x66ont\x18\x05 \x01(\x0e\x32\x1d.CustomThemeConfig.FontFamily\x12*\n\x04\x62\x61se\x18\x06 \x01(\x0e\x32\x1c.CustomThemeConfig.BaseTheme\x12\x1f\n\x17widget_background_color\x18\x07 \x01(\t\x12\x1b\n\x13widget_border_color\x18\x08 \x01(\t\x12\x15\n\x05radii\x18\t \x01(\x0b\x32\x06.Radii\x12\x14\n\x0cheading_font\x18\x0c \x01(\t\x12\x11\n\tbody_font\x18\r \x01(\t\x12\x11\n\tcode_font\x18\x0e \x01(\t\x12\x1d\n\nfont_faces\x18\x0f \x03(\x0b\x32\t.FontFace\x12!\n\x0c\x66ont_sources\x18% \x03(\x0b\x32\x0b.FontSource\x12\x1e\n\nfont_sizes\x18\x10 \x01(\x0b\x32\n.FontSizes\x12!\n\x19skeleton_background_color\x18\x11 \x01(\t\x12\x18\n\x0b\x62\x61se_radius\x18\x12 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rbutton_radius\x18\x1a \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0c\x62order_color\x18\x13 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x64\x61taframe_border_color\x18\x1b \x01(\tH\x03\x88\x01\x01\x12\x1f\n\x12show_widget_border\x18\x14 \x01(\x08H\x04\x88\x01\x01\x12\x17\n\nlink_color\x18\x15 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0elink_underline\x18\x1d \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0e\x62\x61se_font_size\x18\x16 \x01(\x05H\x07\x88\x01\x01\x12\x1d\n\x10\x62\x61se_font_weight\x18\x1e \x01(\x05H\x08\x88\x01\x01\x12\x1d\n\x10\x63ode_font_weight\x18 \x01(\x05H\t\x88\x01\x01\x12\x1b\n\x0e\x63ode_font_size\x18\x1c \x01(\tH\n\x88\x01\x01\x12\x1a\n\x12heading_font_sizes\x18# \x03(\t\x12\x1c\n\x14heading_font_weights\x18\" \x03(\x05\x12 \n\x13show_sidebar_border\x18\x17 \x01(\x08H\x0b\x88\x01\x01\x12\x1c\n\x0f\x63ode_text_color\x18; \x01(\tH\x0c\x88\x01\x01\x12\"\n\x15\x63ode_background_color\x18\x19 \x01(\tH\r\x88\x01\x01\x12.\n!dataframe_header_background_color\x18\x1f \x01(\tH\x0e\x88\x01\x01\x12 \n\x18\x63hart_categorical_colors\x18! \x03(\t\x12\x1f\n\x17\x63hart_sequential_colors\x18$ \x03(\t\x12\x1e\n\x16\x63hart_diverging_colors\x18> \x03(\t\x12\x16\n\tred_color\x18& \x01(\tH\x0f\x88\x01\x01\x12\x19\n\x0corange_color\x18\' \x01(\tH\x10\x88\x01\x01\x12\x19\n\x0cyellow_color\x18( \x01(\tH\x11\x88\x01\x01\x12\x17\n\nblue_color\x18) \x01(\tH\x12\x88\x01\x01\x12\x18\n\x0bgreen_color\x18* \x01(\tH\x13\x88\x01\x01\x12\x19\n\x0cviolet_color\x18+ \x01(\tH\x14\x88\x01\x01\x12\x17\n\ngray_color\x18, \x01(\tH\x15\x88\x01\x01\x12!\n\x14red_background_color\x18- \x01(\tH\x16\x88\x01\x01\x12$\n\x17orange_background_color\x18. \x01(\tH\x17\x88\x01\x01\x12$\n\x17yellow_background_color\x18/ \x01(\tH\x18\x88\x01\x01\x12\"\n\x15\x62lue_background_color\x18\x30 \x01(\tH\x19\x88\x01\x01\x12#\n\x16green_background_color\x18\x31 \x01(\tH\x1a\x88\x01\x01\x12$\n\x17violet_background_color\x18\x32 \x01(\tH\x1b\x88\x01\x01\x12\"\n\x15gray_background_color\x18\x33 \x01(\tH\x1c\x88\x01\x01\x12\x1b\n\x0ered_text_color\x18\x34 \x01(\tH\x1d\x88\x01\x01\x12\x1e\n\x11orange_text_color\x18\x35 \x01(\tH\x1e\x88\x01\x01\x12\x1e\n\x11yellow_text_color\x18\x36 \x01(\tH\x1f\x88\x01\x01\x12\x1c\n\x0f\x62lue_text_color\x18\x37 \x01(\tH \x88\x01\x01\x12\x1d\n\x10green_text_color\x18\x38 \x01(\tH!\x88\x01\x01\x12\x1e\n\x11violet_text_color\x18\x39 \x01(\tH\"\x88\x01\x01\x12\x1c\n\x0fgray_text_color\x18: \x01(\tH#\x88\x01\x01\x12(\n\x07sidebar\x18\x18 \x01(\x0b\x32\x12.CustomThemeConfigH$\x88\x01\x01\x12&\n\x05light\x18< \x01(\x0b\x32\x12.CustomThemeConfigH%\x88\x01\x01\x12%\n\x04\x64\x61rk\x18= \x01(\x0b\x32\x12.CustomThemeConfigH&\x88\x01\x01\" \n\tBaseTheme\x12\t\n\x05LIGHT\x10\x00\x12\x08\n\x04\x44\x41RK\x10\x01\"6\n\nFontFamily\x12\x0e\n\nSANS_SERIF\x10\x00\x12\t\n\x05SERIF\x10\x01\x12\r\n\tMONOSPACE\x10\x02\x42\x0e\n\x0c_base_radiusB\x10\n\x0e_button_radiusB\x0f\n\r_border_colorB\x19\n\x17_dataframe_border_colorB\x15\n\x13_show_widget_borderB\r\n\x0b_link_colorB\x11\n\x0f_link_underlineB\x11\n\x0f_base_font_sizeB\x13\n\x11_base_font_weightB\x13\n\x11_code_font_weightB\x11\n\x0f_code_font_sizeB\x16\n\x14_show_sidebar_borderB\x12\n\x10_code_text_colorB\x18\n\x16_code_background_colorB$\n\"_dataframe_header_background_colorB\x0c\n\n_red_colorB\x0f\n\r_orange_colorB\x0f\n\r_yellow_colorB\r\n\x0b_blue_colorB\x0e\n\x0c_green_colorB\x0f\n\r_violet_colorB\r\n\x0b_gray_colorB\x17\n\x15_red_background_colorB\x1a\n\x18_orange_background_colorB\x1a\n\x18_yellow_background_colorB\x18\n\x16_blue_background_colorB\x19\n\x17_green_background_colorB\x1a\n\x18_violet_background_colorB\x18\n\x16_gray_background_colorB\x11\n\x0f_red_text_colorB\x14\n\x12_orange_text_colorB\x14\n\x12_yellow_text_colorB\x12\n\x10_blue_text_colorB\x13\n\x11_green_text_colorB\x14\n\x12_violet_text_colorB\x12\n\x10_gray_text_colorB\n\n\x08_sidebarB\x08\n\x06_lightB\x07\n\x05_dark\"w\n\x08\x46ontFace\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0e\n\x06\x66\x61mily\x18\x02 \x01(\t\x12\x12\n\x06weight\x18\x03 \x01(\x05\x42\x02\x18\x01\x12\x14\n\x0cweight_range\x18\x05 \x01(\t\x12\r\n\x05style\x18\x04 \x01(\t\x12\x15\n\runicode_range\x18\x06 \x01(\t\"5\n\nFontSource\x12\x13\n\x0b\x63onfig_name\x18\x01 \x01(\t\x12\x12\n\nsource_url\x18\x02 \x01(\t\"<\n\x05Radii\x12\x1a\n\x12\x62\x61se_widget_radius\x18\x01 \x01(\x05\x12\x17\n\x0f\x63heckbox_radius\x18\x02 \x01(\x05\"T\n\tFontSizes\x12\x16\n\x0etiny_font_size\x18\x01 \x01(\x05\x12\x17\n\x0fsmall_font_size\x18\x02 \x01(\x05\x12\x16\n\x0e\x62\x61se_font_size\x18\x03 \x01(\x05\"a\n\x08UserInfo\x12\x17\n\x0finstallation_id\x18\x01 \x01(\t\x12\x1a\n\x12installation_id_v3\x18\x05 \x01(\t\x12\x1a\n\x12installation_id_v4\x18\x06 \x01(\tJ\x04\x08\x02\x10\x03\"l\n\x0f\x45nvironmentInfo\x12\x19\n\x11streamlit_version\x18\x01 \x01(\t\x12\x16\n\x0epython_version\x18\x02 \x01(\t\x12\x11\n\tserver_os\x18\x03 \x01(\t\x12\x13\n\x0bhas_display\x18\x04 \x01(\x08\x42/\n\x1c\x63om.snowflake.apps.streamlitB\x0fNewSessionProtob\x06proto3')
20
20
 
21
21
  _globals = globals()
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -35,21 +35,21 @@ if not _descriptor._USE_C_DESCRIPTORS:
35
35
  _globals['_CONFIG_TOOLBARMODE']._serialized_start=800
36
36
  _globals['_CONFIG_TOOLBARMODE']._serialized_end=863
37
37
  _globals['_CUSTOMTHEMECONFIG']._serialized_start=872
38
- _globals['_CUSTOMTHEMECONFIG']._serialized_end=3626
39
- _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_start=2739
40
- _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_end=2771
41
- _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_start=2773
42
- _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_end=2827
43
- _globals['_FONTFACE']._serialized_start=3628
44
- _globals['_FONTFACE']._serialized_end=3747
45
- _globals['_FONTSOURCE']._serialized_start=3749
46
- _globals['_FONTSOURCE']._serialized_end=3802
47
- _globals['_RADII']._serialized_start=3804
48
- _globals['_RADII']._serialized_end=3864
49
- _globals['_FONTSIZES']._serialized_start=3866
50
- _globals['_FONTSIZES']._serialized_end=3950
51
- _globals['_USERINFO']._serialized_start=3952
52
- _globals['_USERINFO']._serialized_end=4049
53
- _globals['_ENVIRONMENTINFO']._serialized_start=4051
54
- _globals['_ENVIRONMENTINFO']._serialized_end=4159
38
+ _globals['_CUSTOMTHEMECONFIG']._serialized_end=3658
39
+ _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_start=2771
40
+ _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_end=2803
41
+ _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_start=2805
42
+ _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_end=2859
43
+ _globals['_FONTFACE']._serialized_start=3660
44
+ _globals['_FONTFACE']._serialized_end=3779
45
+ _globals['_FONTSOURCE']._serialized_start=3781
46
+ _globals['_FONTSOURCE']._serialized_end=3834
47
+ _globals['_RADII']._serialized_start=3836
48
+ _globals['_RADII']._serialized_end=3896
49
+ _globals['_FONTSIZES']._serialized_start=3898
50
+ _globals['_FONTSIZES']._serialized_end=3982
51
+ _globals['_USERINFO']._serialized_start=3984
52
+ _globals['_USERINFO']._serialized_end=4081
53
+ _globals['_ENVIRONMENTINFO']._serialized_start=4083
54
+ _globals['_ENVIRONMENTINFO']._serialized_end=4191
55
55
  # @@protoc_insertion_point(module_scope)
@@ -314,6 +314,7 @@ class CustomThemeConfig(_message.Message):
314
314
  DATAFRAME_HEADER_BACKGROUND_COLOR_FIELD_NUMBER: _builtins.int
315
315
  CHART_CATEGORICAL_COLORS_FIELD_NUMBER: _builtins.int
316
316
  CHART_SEQUENTIAL_COLORS_FIELD_NUMBER: _builtins.int
317
+ CHART_DIVERGING_COLORS_FIELD_NUMBER: _builtins.int
317
318
  RED_COLOR_FIELD_NUMBER: _builtins.int
318
319
  ORANGE_COLOR_FIELD_NUMBER: _builtins.int
319
320
  YELLOW_COLOR_FIELD_NUMBER: _builtins.int
@@ -414,6 +415,8 @@ class CustomThemeConfig(_message.Message):
414
415
  @_builtins.property
415
416
  def chart_sequential_colors(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
416
417
  @_builtins.property
418
+ def chart_diverging_colors(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
419
+ @_builtins.property
417
420
  def sidebar(self) -> Global___CustomThemeConfig:
418
421
  """Theme sections:"""
419
422
 
@@ -459,6 +462,7 @@ class CustomThemeConfig(_message.Message):
459
462
  dataframe_header_background_color: _builtins.str | None = ...,
460
463
  chart_categorical_colors: _abc.Iterable[_builtins.str] | None = ...,
461
464
  chart_sequential_colors: _abc.Iterable[_builtins.str] | None = ...,
465
+ chart_diverging_colors: _abc.Iterable[_builtins.str] | None = ...,
462
466
  red_color: _builtins.str | None = ...,
463
467
  orange_color: _builtins.str | None = ...,
464
468
  yellow_color: _builtins.str | None = ...,
@@ -486,7 +490,7 @@ class CustomThemeConfig(_message.Message):
486
490
  ) -> None: ...
487
491
  _HasFieldArgType: _TypeAlias = _typing.Literal["_base_font_size", b"_base_font_size", "_base_font_weight", b"_base_font_weight", "_base_radius", b"_base_radius", "_blue_background_color", b"_blue_background_color", "_blue_color", b"_blue_color", "_blue_text_color", b"_blue_text_color", "_border_color", b"_border_color", "_button_radius", b"_button_radius", "_code_background_color", b"_code_background_color", "_code_font_size", b"_code_font_size", "_code_font_weight", b"_code_font_weight", "_code_text_color", b"_code_text_color", "_dark", b"_dark", "_dataframe_border_color", b"_dataframe_border_color", "_dataframe_header_background_color", b"_dataframe_header_background_color", "_gray_background_color", b"_gray_background_color", "_gray_color", b"_gray_color", "_gray_text_color", b"_gray_text_color", "_green_background_color", b"_green_background_color", "_green_color", b"_green_color", "_green_text_color", b"_green_text_color", "_light", b"_light", "_link_color", b"_link_color", "_link_underline", b"_link_underline", "_orange_background_color", b"_orange_background_color", "_orange_color", b"_orange_color", "_orange_text_color", b"_orange_text_color", "_red_background_color", b"_red_background_color", "_red_color", b"_red_color", "_red_text_color", b"_red_text_color", "_show_sidebar_border", b"_show_sidebar_border", "_show_widget_border", b"_show_widget_border", "_sidebar", b"_sidebar", "_violet_background_color", b"_violet_background_color", "_violet_color", b"_violet_color", "_violet_text_color", b"_violet_text_color", "_yellow_background_color", b"_yellow_background_color", "_yellow_color", b"_yellow_color", "_yellow_text_color", b"_yellow_text_color", "base_font_size", b"base_font_size", "base_font_weight", b"base_font_weight", "base_radius", b"base_radius", "blue_background_color", b"blue_background_color", "blue_color", b"blue_color", "blue_text_color", b"blue_text_color", "border_color", b"border_color", "button_radius", b"button_radius", "code_background_color", b"code_background_color", "code_font_size", b"code_font_size", "code_font_weight", b"code_font_weight", "code_text_color", b"code_text_color", "dark", b"dark", "dataframe_border_color", b"dataframe_border_color", "dataframe_header_background_color", b"dataframe_header_background_color", "font_sizes", b"font_sizes", "gray_background_color", b"gray_background_color", "gray_color", b"gray_color", "gray_text_color", b"gray_text_color", "green_background_color", b"green_background_color", "green_color", b"green_color", "green_text_color", b"green_text_color", "light", b"light", "link_color", b"link_color", "link_underline", b"link_underline", "orange_background_color", b"orange_background_color", "orange_color", b"orange_color", "orange_text_color", b"orange_text_color", "radii", b"radii", "red_background_color", b"red_background_color", "red_color", b"red_color", "red_text_color", b"red_text_color", "show_sidebar_border", b"show_sidebar_border", "show_widget_border", b"show_widget_border", "sidebar", b"sidebar", "violet_background_color", b"violet_background_color", "violet_color", b"violet_color", "violet_text_color", b"violet_text_color", "yellow_background_color", b"yellow_background_color", "yellow_color", b"yellow_color", "yellow_text_color", b"yellow_text_color"] # noqa: Y015
488
492
  def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
489
- _ClearFieldArgType: _TypeAlias = _typing.Literal["_base_font_size", b"_base_font_size", "_base_font_weight", b"_base_font_weight", "_base_radius", b"_base_radius", "_blue_background_color", b"_blue_background_color", "_blue_color", b"_blue_color", "_blue_text_color", b"_blue_text_color", "_border_color", b"_border_color", "_button_radius", b"_button_radius", "_code_background_color", b"_code_background_color", "_code_font_size", b"_code_font_size", "_code_font_weight", b"_code_font_weight", "_code_text_color", b"_code_text_color", "_dark", b"_dark", "_dataframe_border_color", b"_dataframe_border_color", "_dataframe_header_background_color", b"_dataframe_header_background_color", "_gray_background_color", b"_gray_background_color", "_gray_color", b"_gray_color", "_gray_text_color", b"_gray_text_color", "_green_background_color", b"_green_background_color", "_green_color", b"_green_color", "_green_text_color", b"_green_text_color", "_light", b"_light", "_link_color", b"_link_color", "_link_underline", b"_link_underline", "_orange_background_color", b"_orange_background_color", "_orange_color", b"_orange_color", "_orange_text_color", b"_orange_text_color", "_red_background_color", b"_red_background_color", "_red_color", b"_red_color", "_red_text_color", b"_red_text_color", "_show_sidebar_border", b"_show_sidebar_border", "_show_widget_border", b"_show_widget_border", "_sidebar", b"_sidebar", "_violet_background_color", b"_violet_background_color", "_violet_color", b"_violet_color", "_violet_text_color", b"_violet_text_color", "_yellow_background_color", b"_yellow_background_color", "_yellow_color", b"_yellow_color", "_yellow_text_color", b"_yellow_text_color", "background_color", b"background_color", "base", b"base", "base_font_size", b"base_font_size", "base_font_weight", b"base_font_weight", "base_radius", b"base_radius", "blue_background_color", b"blue_background_color", "blue_color", b"blue_color", "blue_text_color", b"blue_text_color", "body_font", b"body_font", "border_color", b"border_color", "button_radius", b"button_radius", "chart_categorical_colors", b"chart_categorical_colors", "chart_sequential_colors", b"chart_sequential_colors", "code_background_color", b"code_background_color", "code_font", b"code_font", "code_font_size", b"code_font_size", "code_font_weight", b"code_font_weight", "code_text_color", b"code_text_color", "dark", b"dark", "dataframe_border_color", b"dataframe_border_color", "dataframe_header_background_color", b"dataframe_header_background_color", "font", b"font", "font_faces", b"font_faces", "font_sizes", b"font_sizes", "font_sources", b"font_sources", "gray_background_color", b"gray_background_color", "gray_color", b"gray_color", "gray_text_color", b"gray_text_color", "green_background_color", b"green_background_color", "green_color", b"green_color", "green_text_color", b"green_text_color", "heading_font", b"heading_font", "heading_font_sizes", b"heading_font_sizes", "heading_font_weights", b"heading_font_weights", "light", b"light", "link_color", b"link_color", "link_underline", b"link_underline", "orange_background_color", b"orange_background_color", "orange_color", b"orange_color", "orange_text_color", b"orange_text_color", "primary_color", b"primary_color", "radii", b"radii", "red_background_color", b"red_background_color", "red_color", b"red_color", "red_text_color", b"red_text_color", "secondary_background_color", b"secondary_background_color", "show_sidebar_border", b"show_sidebar_border", "show_widget_border", b"show_widget_border", "sidebar", b"sidebar", "skeleton_background_color", b"skeleton_background_color", "text_color", b"text_color", "violet_background_color", b"violet_background_color", "violet_color", b"violet_color", "violet_text_color", b"violet_text_color", "widget_background_color", b"widget_background_color", "widget_border_color", b"widget_border_color", "yellow_background_color", b"yellow_background_color", "yellow_color", b"yellow_color", "yellow_text_color", b"yellow_text_color"] # noqa: Y015
493
+ _ClearFieldArgType: _TypeAlias = _typing.Literal["_base_font_size", b"_base_font_size", "_base_font_weight", b"_base_font_weight", "_base_radius", b"_base_radius", "_blue_background_color", b"_blue_background_color", "_blue_color", b"_blue_color", "_blue_text_color", b"_blue_text_color", "_border_color", b"_border_color", "_button_radius", b"_button_radius", "_code_background_color", b"_code_background_color", "_code_font_size", b"_code_font_size", "_code_font_weight", b"_code_font_weight", "_code_text_color", b"_code_text_color", "_dark", b"_dark", "_dataframe_border_color", b"_dataframe_border_color", "_dataframe_header_background_color", b"_dataframe_header_background_color", "_gray_background_color", b"_gray_background_color", "_gray_color", b"_gray_color", "_gray_text_color", b"_gray_text_color", "_green_background_color", b"_green_background_color", "_green_color", b"_green_color", "_green_text_color", b"_green_text_color", "_light", b"_light", "_link_color", b"_link_color", "_link_underline", b"_link_underline", "_orange_background_color", b"_orange_background_color", "_orange_color", b"_orange_color", "_orange_text_color", b"_orange_text_color", "_red_background_color", b"_red_background_color", "_red_color", b"_red_color", "_red_text_color", b"_red_text_color", "_show_sidebar_border", b"_show_sidebar_border", "_show_widget_border", b"_show_widget_border", "_sidebar", b"_sidebar", "_violet_background_color", b"_violet_background_color", "_violet_color", b"_violet_color", "_violet_text_color", b"_violet_text_color", "_yellow_background_color", b"_yellow_background_color", "_yellow_color", b"_yellow_color", "_yellow_text_color", b"_yellow_text_color", "background_color", b"background_color", "base", b"base", "base_font_size", b"base_font_size", "base_font_weight", b"base_font_weight", "base_radius", b"base_radius", "blue_background_color", b"blue_background_color", "blue_color", b"blue_color", "blue_text_color", b"blue_text_color", "body_font", b"body_font", "border_color", b"border_color", "button_radius", b"button_radius", "chart_categorical_colors", b"chart_categorical_colors", "chart_diverging_colors", b"chart_diverging_colors", "chart_sequential_colors", b"chart_sequential_colors", "code_background_color", b"code_background_color", "code_font", b"code_font", "code_font_size", b"code_font_size", "code_font_weight", b"code_font_weight", "code_text_color", b"code_text_color", "dark", b"dark", "dataframe_border_color", b"dataframe_border_color", "dataframe_header_background_color", b"dataframe_header_background_color", "font", b"font", "font_faces", b"font_faces", "font_sizes", b"font_sizes", "font_sources", b"font_sources", "gray_background_color", b"gray_background_color", "gray_color", b"gray_color", "gray_text_color", b"gray_text_color", "green_background_color", b"green_background_color", "green_color", b"green_color", "green_text_color", b"green_text_color", "heading_font", b"heading_font", "heading_font_sizes", b"heading_font_sizes", "heading_font_weights", b"heading_font_weights", "light", b"light", "link_color", b"link_color", "link_underline", b"link_underline", "orange_background_color", b"orange_background_color", "orange_color", b"orange_color", "orange_text_color", b"orange_text_color", "primary_color", b"primary_color", "radii", b"radii", "red_background_color", b"red_background_color", "red_color", b"red_color", "red_text_color", b"red_text_color", "secondary_background_color", b"secondary_background_color", "show_sidebar_border", b"show_sidebar_border", "show_widget_border", b"show_widget_border", "sidebar", b"sidebar", "skeleton_background_color", b"skeleton_background_color", "text_color", b"text_color", "violet_background_color", b"violet_background_color", "violet_color", b"violet_color", "violet_text_color", b"violet_text_color", "widget_background_color", b"widget_background_color", "widget_border_color", b"widget_border_color", "yellow_background_color", b"yellow_background_color", "yellow_color", b"yellow_color", "yellow_text_color", b"yellow_text_color"] # noqa: Y015
490
494
  def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
491
495
  _WhichOneofReturnType__base_font_size: _TypeAlias = _typing.Literal["base_font_size"] # noqa: Y015
492
496
  _WhichOneofArgType__base_font_size: _TypeAlias = _typing.Literal["_base_font_size", b"_base_font_size"] # noqa: Y015
@@ -53,6 +53,8 @@ from streamlit.watcher import LocalSourcesWatcher
53
53
  if TYPE_CHECKING:
54
54
  from collections.abc import Callable
55
55
 
56
+ from google.protobuf.internal.containers import RepeatedScalarFieldContainer
57
+
56
58
  from streamlit.proto.BackMsg_pb2 import BackMsg, DeferredFileRequest
57
59
  from streamlit.runtime.script_data import ScriptData
58
60
  from streamlit.runtime.scriptrunner.script_cache import ScriptCache
@@ -1016,6 +1018,65 @@ def _populate_config_msg(msg: Config) -> None:
1016
1018
  msg.toolbar_mode = _get_toolbar_mode()
1017
1019
 
1018
1020
 
1021
+ def _parse_and_populate_chart_colors(
1022
+ theme_opts: dict[str, Any],
1023
+ config_key: str,
1024
+ msg_field: RepeatedScalarFieldContainer[str],
1025
+ required_length: int | None = None,
1026
+ ) -> None:
1027
+ """Parse and populate chart colors from theme config to protobuf message field.
1028
+
1029
+ Parameters
1030
+ ----------
1031
+ theme_opts
1032
+ Dictionary of theme options from config.get_options_for_section.
1033
+ config_key
1034
+ The key in theme_opts to look for (e.g., "chartCategoricalColors").
1035
+ msg_field
1036
+ The protobuf repeated string field to append colors to.
1037
+ required_length
1038
+ If provided, log an error if the colors array doesn't have this exact length.
1039
+ """
1040
+ colors = theme_opts.get(config_key)
1041
+
1042
+ # If colors was configured via config.toml, it's already a list of strings.
1043
+ # However, if it was provided via env variable or via CLI arg,
1044
+ # it's a JSON string that needs to be parsed.
1045
+ if isinstance(colors, str):
1046
+ try:
1047
+ colors = json.loads(colors)
1048
+ except json.JSONDecodeError as e:
1049
+ _LOGGER.warning(
1050
+ "Failed to parse the theme.%s config option: %s.",
1051
+ config_key,
1052
+ colors,
1053
+ exc_info=e,
1054
+ )
1055
+ colors = None
1056
+
1057
+ if colors is not None:
1058
+ # Check required length if specified
1059
+ if required_length is not None and len(colors) != required_length:
1060
+ _LOGGER.error(
1061
+ "Config theme.%s should have %s color values, "
1062
+ "but got %s. Defaulting to Streamlit's default colors.",
1063
+ config_key,
1064
+ required_length,
1065
+ len(colors),
1066
+ )
1067
+ return # Don't populate invalid data; let frontend use defaults
1068
+ for color in colors:
1069
+ try:
1070
+ msg_field.append(color)
1071
+ except Exception as e: # noqa: PERF203
1072
+ _LOGGER.warning(
1073
+ "Failed to parse the theme.%s config option: %s.",
1074
+ config_key,
1075
+ color,
1076
+ exc_info=e,
1077
+ )
1078
+
1079
+
1019
1080
  def _populate_theme_msg(msg: CustomThemeConfig, section: str = "theme") -> None:
1020
1081
  theme_opts = config.get_options_for_section(section)
1021
1082
  if all(val is None for val in theme_opts.values()):
@@ -1036,6 +1097,7 @@ def _populate_theme_msg(msg: CustomThemeConfig, section: str = "theme") -> None:
1036
1097
  "headingFontWeights",
1037
1098
  "chartCategoricalColors",
1038
1099
  "chartSequentialColors",
1100
+ "chartDivergingColors",
1039
1101
  }
1040
1102
  and option_val is not None
1041
1103
  ):
@@ -1180,64 +1242,22 @@ def _populate_theme_msg(msg: CustomThemeConfig, section: str = "theme") -> None:
1180
1242
  exc_info=e,
1181
1243
  )
1182
1244
 
1183
- chart_categorical_colors = theme_opts.get("chartCategoricalColors", None)
1184
- # If chartCategoricalColors was configured via config.toml, it's already a list of
1185
- # strings. However, if it was provided via env variable or via CLI arg,
1186
- # it's a json string that needs to be parsed.
1187
- if isinstance(chart_categorical_colors, str):
1188
- try:
1189
- chart_categorical_colors = json.loads(chart_categorical_colors)
1190
- except json.JSONDecodeError as e:
1191
- _LOGGER.warning(
1192
- "Failed to parse the theme.chartCategoricalColors config option: %s.",
1193
- chart_categorical_colors,
1194
- exc_info=e,
1195
- )
1196
- chart_categorical_colors = None
1197
-
1198
- if chart_categorical_colors is not None:
1199
- for color in chart_categorical_colors:
1200
- try:
1201
- msg.chart_categorical_colors.append(color)
1202
- except Exception as e: # noqa: PERF203
1203
- _LOGGER.warning(
1204
- "Failed to parse the theme.chartCategoricalColors config option: %s.",
1205
- color,
1206
- exc_info=e,
1207
- )
1208
-
1209
- chart_sequential_colors = theme_opts.get("chartSequentialColors", None)
1210
- # If chartSequentialColors was configured via config.toml, it's already a list of
1211
- # strings. However, if it was provided via env variable or via CLI arg,
1212
- # it's a json string that needs to be parsed.
1213
- if isinstance(chart_sequential_colors, str):
1214
- try:
1215
- chart_sequential_colors = json.loads(chart_sequential_colors)
1216
- except json.JSONDecodeError as e:
1217
- _LOGGER.warning(
1218
- "Failed to parse the theme.chartSequentialColors config option: %s.",
1219
- chart_sequential_colors,
1220
- exc_info=e,
1221
- )
1222
- chart_sequential_colors = None
1223
-
1224
- if chart_sequential_colors is not None:
1225
- # Check that the list has 10 color values
1226
- if len(chart_sequential_colors) != 10:
1227
- _LOGGER.error(
1228
- "Config theme.chartSequentialColors should have 10 color values, "
1229
- "but got %s. Defaulting to Streamlit's default colors.",
1230
- len(chart_sequential_colors),
1231
- )
1232
- for color in chart_sequential_colors:
1233
- try:
1234
- msg.chart_sequential_colors.append(color)
1235
- except Exception as e: # noqa: PERF203
1236
- _LOGGER.warning(
1237
- "Failed to parse the theme.chartSequentialColors config option: %s.",
1238
- color,
1239
- exc_info=e,
1240
- )
1245
+ # Handle chart color configurations
1246
+ _parse_and_populate_chart_colors(
1247
+ theme_opts, "chartCategoricalColors", msg.chart_categorical_colors
1248
+ )
1249
+ _parse_and_populate_chart_colors(
1250
+ theme_opts,
1251
+ "chartSequentialColors",
1252
+ msg.chart_sequential_colors,
1253
+ required_length=10,
1254
+ )
1255
+ _parse_and_populate_chart_colors(
1256
+ theme_opts,
1257
+ "chartDivergingColors",
1258
+ msg.chart_diverging_colors,
1259
+ required_length=10,
1260
+ )
1241
1261
 
1242
1262
 
1243
1263
  def _populate_user_info_msg(msg: UserInfo) -> None:
@@ -28,7 +28,6 @@ from urllib import parse
28
28
 
29
29
  from streamlit.errors import (
30
30
  NoSessionContext,
31
- StreamlitAPIException,
32
31
  )
33
32
  from streamlit.logger import get_logger
34
33
  from streamlit.runtime.forward_msg_cache import (
@@ -109,10 +108,6 @@ class ScriptRunContext:
109
108
  # we allow only one dialog to be open at the same time
110
109
  has_dialog_opened: bool = False
111
110
 
112
- # TODO(willhuang1997): Remove this variable when experimental query params are removed
113
- _experimental_query_params_used = False
114
- _production_query_params_used = False
115
-
116
111
  @property
117
112
  def page_script_hash(self) -> str:
118
113
  return self.pages_manager.current_page_script_hash
@@ -202,22 +197,6 @@ class ScriptRunContext:
202
197
  # Pass the message up to our associated ScriptRunner.
203
198
  self._enqueue(msg_to_send)
204
199
 
205
- def ensure_single_query_api_used(self) -> None:
206
- if self._experimental_query_params_used and self._production_query_params_used:
207
- raise StreamlitAPIException(
208
- "Using `st.query_params` together with either `st.experimental_get_query_params` "
209
- "or `st.experimental_set_query_params` is not supported. Please "
210
- " convert your app to only use `st.query_params`"
211
- )
212
-
213
- def mark_experimental_query_params_used(self) -> None:
214
- self._experimental_query_params_used = True
215
- self.ensure_single_query_api_used()
216
-
217
- def mark_production_query_params_used(self) -> None:
218
- self._production_query_params_used = True
219
- self.ensure_single_query_api_used()
220
-
221
200
 
222
201
  SCRIPT_RUN_CONTEXT_ATTR_NAME: Final = "streamlit_script_run_ctx"
223
202
 
@@ -47,8 +47,6 @@ class QueryParams(MutableMapping[str, str]):
47
47
  _query_params: dict[str, list[str] | str] = field(default_factory=dict)
48
48
 
49
49
  def __iter__(self) -> Iterator[str]:
50
- self._ensure_single_query_api_used()
51
-
52
50
  return iter(
53
51
  key
54
52
  for key in self._query_params
@@ -60,7 +58,6 @@ class QueryParams(MutableMapping[str, str]):
60
58
  Returns the last item in a list or an empty string if empty.
61
59
  If the key is not present, raise KeyError.
62
60
  """
63
- self._ensure_single_query_api_used()
64
61
  if key.lower() in EMBED_QUERY_PARAMS_KEYS:
65
62
  raise KeyError(missing_key_error_message(key))
66
63
 
@@ -77,7 +74,6 @@ class QueryParams(MutableMapping[str, str]):
77
74
  raise KeyError(missing_key_error_message(key))
78
75
 
79
76
  def __setitem__(self, key: str, value: str | Iterable[str]) -> None:
80
- self._ensure_single_query_api_used()
81
77
  self._set_item_internal(key, value)
82
78
  self._send_query_param_msg()
83
79
 
@@ -85,7 +81,6 @@ class QueryParams(MutableMapping[str, str]):
85
81
  _set_item_in_dict(self._query_params, key, value)
86
82
 
87
83
  def __delitem__(self, key: str) -> None:
88
- self._ensure_single_query_api_used()
89
84
  if key.lower() in EMBED_QUERY_PARAMS_KEYS:
90
85
  raise KeyError(missing_key_error_message(key))
91
86
  try:
@@ -103,7 +98,6 @@ class QueryParams(MutableMapping[str, str]):
103
98
  ) -> None:
104
99
  # This overrides the `update` provided by MutableMapping
105
100
  # to ensure only one one ForwardMsg is sent.
106
- self._ensure_single_query_api_used()
107
101
  if hasattr(other, "keys") and hasattr(other, "__getitem__"):
108
102
  other = cast("SupportsKeysAndGetItem[str, str | Iterable[str]]", other)
109
103
  for key in other.keys(): # noqa: SIM118
@@ -116,14 +110,12 @@ class QueryParams(MutableMapping[str, str]):
116
110
  self._send_query_param_msg()
117
111
 
118
112
  def get_all(self, key: str) -> list[str]:
119
- self._ensure_single_query_api_used()
120
113
  if key not in self._query_params or key.lower() in EMBED_QUERY_PARAMS_KEYS:
121
114
  return []
122
115
  value = self._query_params[key]
123
116
  return value if isinstance(value, list) else [value]
124
117
 
125
118
  def __len__(self) -> int:
126
- self._ensure_single_query_api_used()
127
119
  return len(
128
120
  {
129
121
  key
@@ -133,14 +125,12 @@ class QueryParams(MutableMapping[str, str]):
133
125
  )
134
126
 
135
127
  def __str__(self) -> str:
136
- self._ensure_single_query_api_used()
137
128
  return str(self._query_params)
138
129
 
139
130
  def _send_query_param_msg(self) -> None:
140
131
  ctx = get_script_run_ctx()
141
132
  if ctx is None:
142
133
  return
143
- self._ensure_single_query_api_used()
144
134
 
145
135
  msg = ForwardMsg()
146
136
  msg.page_info_changed.query_string = parse.urlencode(
@@ -150,12 +140,10 @@ class QueryParams(MutableMapping[str, str]):
150
140
  ctx.enqueue(msg)
151
141
 
152
142
  def clear(self) -> None:
153
- self._ensure_single_query_api_used()
154
143
  self.clear_with_no_forward_msg(preserve_embed=True)
155
144
  self._send_query_param_msg()
156
145
 
157
146
  def to_dict(self) -> dict[str, str]:
158
- self._ensure_single_query_api_used()
159
147
  # return the last query param if multiple values are set
160
148
  return {
161
149
  key: self[key]
@@ -168,7 +156,6 @@ class QueryParams(MutableMapping[str, str]):
168
156
  _dict: Iterable[tuple[str, str | Iterable[str]]]
169
157
  | SupportsKeysAndGetItem[str, str | Iterable[str]],
170
158
  ) -> None:
171
- self._ensure_single_query_api_used()
172
159
  old_value = self._query_params.copy()
173
160
  self.clear_with_no_forward_msg(preserve_embed=True)
174
161
  try:
@@ -188,12 +175,6 @@ class QueryParams(MutableMapping[str, str]):
188
175
  if key.lower() in EMBED_QUERY_PARAMS_KEYS and preserve_embed
189
176
  }
190
177
 
191
- def _ensure_single_query_api_used(self) -> None:
192
- ctx = get_script_run_ctx()
193
- if ctx is None:
194
- return
195
- ctx.mark_production_query_params_used()
196
-
197
178
 
198
179
  def missing_key_error_message(key: str) -> str:
199
180
  return f'st.query_params has no key "{key}".'
@@ -37,7 +37,7 @@
37
37
  <script>
38
38
  window.prerenderReady = false
39
39
  </script>
40
- <script type="module" crossorigin src="./static/js/index.CXVpBAvU.js"></script>
40
+ <script type="module" crossorigin src="./static/js/index.DiwhD0Ic.js"></script>
41
41
  <link rel="stylesheet" crossorigin href="./static/css/index.BUP6fTcR.css">
42
42
  </head>
43
43
  <body>