streamlit-nightly 1.45.2.dev20250616__py3-none-any.whl → 1.45.2.dev20250617__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/commands/navigation.py +39 -5
  2. streamlit/commands/page_config.py +48 -20
  3. streamlit/config.py +64 -33
  4. streamlit/dataframe_util.py +2 -3
  5. streamlit/elements/alert.py +36 -28
  6. streamlit/elements/arrow.py +1 -1
  7. streamlit/elements/code.py +23 -8
  8. streamlit/elements/deck_gl_json_chart.py +1 -1
  9. streamlit/elements/doc_string.py +8 -2
  10. streamlit/elements/exception.py +9 -7
  11. streamlit/elements/form.py +28 -0
  12. streamlit/elements/heading.py +34 -13
  13. streamlit/elements/json.py +8 -3
  14. streamlit/elements/layouts.py +69 -13
  15. streamlit/elements/lib/color_util.py +1 -1
  16. streamlit/elements/lib/image_utils.py +3 -5
  17. streamlit/elements/markdown.py +57 -24
  18. streamlit/elements/media.py +31 -24
  19. streamlit/elements/metric.py +11 -4
  20. streamlit/elements/plotly_chart.py +1 -1
  21. streamlit/elements/progress.py +9 -3
  22. streamlit/elements/spinner.py +11 -3
  23. streamlit/elements/text.py +12 -4
  24. streamlit/elements/vega_charts.py +1 -1
  25. streamlit/elements/widgets/audio_input.py +8 -3
  26. streamlit/elements/widgets/button.py +7 -6
  27. streamlit/elements/widgets/camera_input.py +9 -3
  28. streamlit/elements/widgets/chat.py +23 -11
  29. streamlit/elements/widgets/checkbox.py +24 -6
  30. streamlit/elements/widgets/color_picker.py +13 -4
  31. streamlit/elements/widgets/file_uploader.py +9 -3
  32. streamlit/elements/widgets/number_input.py +10 -2
  33. streamlit/elements/widgets/radio.py +12 -3
  34. streamlit/elements/widgets/select_slider.py +9 -3
  35. streamlit/elements/widgets/selectbox.py +9 -3
  36. streamlit/elements/widgets/slider.py +10 -2
  37. streamlit/elements/widgets/text_widgets.py +20 -4
  38. streamlit/elements/widgets/time_widgets.py +17 -10
  39. streamlit/proto/NewSession_pb2.py +16 -16
  40. streamlit/proto/NewSession_pb2.pyi +7 -2
  41. streamlit/proto/PageConfig_pb2.py +5 -5
  42. streamlit/proto/PageConfig_pb2.pyi +16 -0
  43. streamlit/runtime/context.py +22 -1
  44. streamlit/runtime/state/query_params_proxy.py +2 -0
  45. streamlit/runtime/state/session_state.py +4 -2
  46. streamlit/static/index.html +1 -1
  47. streamlit/static/manifest.json +214 -214
  48. streamlit/static/static/js/{ErrorOutline.esm.BBFVdWjb.js → ErrorOutline.esm.1znYgwZa.js} +1 -1
  49. streamlit/static/static/js/{FileDownload.esm.DvdwDAxp.js → FileDownload.esm.MlshysxD.js} +1 -1
  50. streamlit/static/static/js/{FileHelper.CjU1Ef50.js → FileHelper.DJjfImdO.js} +1 -1
  51. streamlit/static/static/js/{FormClearHelper.CIb6LGNE.js → FormClearHelper.tzcHfSQm.js} +1 -1
  52. streamlit/static/static/js/{Hooks.GJR4p5ub.js → Hooks.CUwe1mU9.js} +1 -1
  53. streamlit/static/static/js/{InputInstructions.nsoutNDU.js → InputInstructions.ibDI_m0Z.js} +1 -1
  54. streamlit/static/static/js/{ProgressBar.DqtkCWgY.js → ProgressBar.B4yod1d4.js} +1 -1
  55. streamlit/static/static/js/{RenderInPortalIfExists.CocQHyjY.js → RenderInPortalIfExists.sxtf_tkp.js} +1 -1
  56. streamlit/static/static/js/{Toolbar.UeCiz5bZ.js → Toolbar.D2TSK_7z.js} +1 -1
  57. streamlit/static/static/js/{base-input.ChMOqefY.js → base-input.DBGTsu79.js} +1 -1
  58. streamlit/static/static/js/{checkbox.mFAkcYlJ.js → checkbox.Cv3M11iz.js} +1 -1
  59. streamlit/static/static/js/{createSuper.CWlw4uuT.js → createSuper.CZYzqRu7.js} +1 -1
  60. streamlit/static/static/js/{data-grid-overlay-editor.BRuPFGVT.js → data-grid-overlay-editor.Dnwp2SeP.js} +1 -1
  61. streamlit/static/static/js/{downloader.D-JZV5KC.js → downloader.OkIJTahw.js} +1 -1
  62. streamlit/static/static/js/{es6.8aYd2mZD.js → es6.CWUYJnwB.js} +2 -2
  63. streamlit/static/static/js/{iframeResizer.contentWindow.jbTJNegv.js → iframeResizer.contentWindow.BGMetL4r.js} +1 -1
  64. streamlit/static/static/js/{index.Bll2-rP6.js → index.BLLY_wCb.js} +1 -1
  65. streamlit/static/static/js/{index.CBxfNa4S.js → index.BNQdHQ9A.js} +1 -1
  66. streamlit/static/static/js/{index.D7n0aj1W.js → index.BRUfGLJs.js} +1 -1
  67. streamlit/static/static/js/{index.D2DTU1aY.js → index.BZhFm-tC.js} +1 -1
  68. streamlit/static/static/js/{index.DcylHZOn.js → index.Bi_xDLKC.js} +1 -1
  69. streamlit/static/static/js/{index.C5Jk6yHy.js → index.Bio4VfuK.js} +1 -1
  70. streamlit/static/static/js/{index.BSBLj6fd.js → index.BlRNHzJT.js} +1 -1
  71. streamlit/static/static/js/{index.D6aDPgRk.js → index.BvPXgYL1.js} +1 -1
  72. streamlit/static/static/js/{index.EmgmixKr.js → index.C8UyejlW.js} +1 -1
  73. streamlit/static/static/js/{index.MuhC3L76.js → index.CATKfyKP.js} +1 -1
  74. streamlit/static/static/js/{index.D9LSzO5n.js → index.CImNFEsN.js} +1 -1
  75. streamlit/static/static/js/{index.CeJjESM2.js → index.CP9S4-UC.js} +1 -1
  76. streamlit/static/static/js/{index.2vhUbWYE.js → index.CaH9iZrA.js} +1 -1
  77. streamlit/static/static/js/{index.DwGCBH5W.js → index.CfU3gX6G.js} +1 -1
  78. streamlit/static/static/js/{index.5VmqWrFJ.js → index.CghNjnWG.js} +1 -1
  79. streamlit/static/static/js/{index.B5CU57Qf.js → index.ClByuhfh.js} +62 -62
  80. streamlit/static/static/js/{index.ZJ-p6xZJ.js → index.CyScXVPk.js} +1 -1
  81. streamlit/static/static/js/{index.Dat8JgZf.js → index.D3yL8Boz.js} +5 -5
  82. streamlit/static/static/js/{index.CQG85lDO.js → index.DHrbHxMA.js} +1 -1
  83. streamlit/static/static/js/{index.g86WIJtm.js → index.DXby5BWo.js} +1 -1
  84. streamlit/static/static/js/{index.Ddznlirl.js → index.Dgicxx_R.js} +1 -1
  85. streamlit/static/static/js/{index.BuwwBXlt.js → index.DhZtGReO.js} +1 -1
  86. streamlit/static/static/js/{index.TEOqOk4H.js → index.DqoNxwFW.js} +1 -1
  87. streamlit/static/static/js/{index.gcWbHnPE.js → index.DrAi2KWE.js} +1 -1
  88. streamlit/static/static/js/{index._beSUPH2.js → index.DuQBFADi.js} +1 -1
  89. streamlit/static/static/js/{index.DiKxaWW9.js → index.DxX0zYtM.js} +1 -1
  90. streamlit/static/static/js/{index.CrLOSpGd.js → index.GbpCpBCj.js} +1 -1
  91. streamlit/static/static/js/{index.45n3hxWl.js → index.aKXX7Ba_.js} +1 -1
  92. streamlit/static/static/js/{index.BrZrTW9I.js → index.bK_LT6WV.js} +1 -1
  93. streamlit/static/static/js/{index.RqdD1cln.js → index.cFdge3NU.js} +1 -1
  94. streamlit/static/static/js/{index.C-qKPIAc.js → index.cbAks8a8.js} +1 -1
  95. streamlit/static/static/js/{index.B_K-sbDk.js → index.eeGQgksq.js} +1 -1
  96. streamlit/static/static/js/{index.CmYORNI1.js → index.fybg-SX6.js} +1 -1
  97. streamlit/static/static/js/{index.DlBss_D9.js → index.igD8dUid.js} +1 -1
  98. streamlit/static/static/js/{index.B_IVL8xE.js → index.jzzHl6U7.js} +1 -1
  99. streamlit/static/static/js/{index.Cf2Ujw1i.js → index.vJGalypl.js} +1 -1
  100. streamlit/static/static/js/{index.CwtQIKUg.js → index.yh03tq2H.js} +1 -1
  101. streamlit/static/static/js/{input.DXa_gBzj.js → input.DG4M8O5Z.js} +1 -1
  102. streamlit/static/static/js/{memory.D5rOUj2Y.js → memory.cZDDDDRN.js} +1 -1
  103. streamlit/static/static/js/{mergeWith.DSXoP_ea.js → mergeWith.CbuU4RN8.js} +1 -1
  104. streamlit/static/static/js/{number-overlay-editor.DOlAMQ4z.js → number-overlay-editor.GDhzbbBH.js} +1 -1
  105. streamlit/static/static/js/{possibleConstructorReturn.C8PlFdhp.js → possibleConstructorReturn.CJFaNdfh.js} +1 -1
  106. streamlit/static/static/js/{sandbox.Cbgzd0RE.js → sandbox.SJvDMGmc.js} +1 -1
  107. streamlit/static/static/js/{textarea.CwmJHkZd.js → textarea.CA5HbAYe.js} +1 -1
  108. streamlit/static/static/js/{timepicker.D-HemJVg.js → timepicker.Dw_Jp_TE.js} +1 -1
  109. streamlit/static/static/js/{toConsumableArray.K58gdyL6.js → toConsumableArray.DrYe4LQW.js} +1 -1
  110. streamlit/static/static/js/{uniqueId.D6CfbZfn.js → uniqueId.D-hUXA0O.js} +1 -1
  111. streamlit/static/static/js/{useBasicWidgetState.t6CdhaX9.js → useBasicWidgetState.ByTJlmUY.js} +1 -1
  112. streamlit/static/static/js/{useOnInputChange.D_GNOmUw.js → useOnInputChange.4waR08fC.js} +1 -1
  113. streamlit/static/static/js/{withFullScreenWrapper.DILaf-7C.js → withFullScreenWrapper.BbZgX6-q.js} +1 -1
  114. {streamlit_nightly-1.45.2.dev20250616.dist-info → streamlit_nightly-1.45.2.dev20250617.dist-info}/METADATA +1 -1
  115. {streamlit_nightly-1.45.2.dev20250616.dist-info → streamlit_nightly-1.45.2.dev20250617.dist-info}/RECORD +119 -119
  116. {streamlit_nightly-1.45.2.dev20250616.data → streamlit_nightly-1.45.2.dev20250617.data}/scripts/streamlit.cmd +0 -0
  117. {streamlit_nightly-1.45.2.dev20250616.dist-info → streamlit_nightly-1.45.2.dev20250617.dist-info}/WHEEL +0 -0
  118. {streamlit_nightly-1.45.2.dev20250616.dist-info → streamlit_nightly-1.45.2.dev20250617.dist-info}/entry_points.txt +0 -0
  119. {streamlit_nightly-1.45.2.dev20250616.dist-info → streamlit_nightly-1.45.2.dev20250617.dist-info}/top_level.txt +0 -0
@@ -239,7 +239,28 @@ class ContextProxy:
239
239
  @property
240
240
  @gather_metrics("context.theme")
241
241
  def theme(self) -> StreamlitTheme:
242
- """A read-only object containing information about the current Streamlit app theme."""
242
+ """A read-only, dictionary-like object containing theme information.
243
+
244
+ Theme information is restricted to the ``type`` of the theme (dark or
245
+ light) and is inferred from the background color of the app.
246
+
247
+ .. note::
248
+ Changes made to the background color through CSS are not included.
249
+
250
+ Attributes
251
+ ----------
252
+ type : "light", "dark"
253
+ The theme type inferred from the background color of the app.
254
+
255
+ Example
256
+ -------
257
+ Access the theme type of the app:
258
+
259
+ >>> import streamlit as st
260
+ >>>
261
+ >>> st.write(f"The current theme type is {st.context.theme.type}.")
262
+
263
+ """
243
264
  ctx = get_script_run_ctx()
244
265
 
245
266
  if ctx is None or ctx.context_info is None:
@@ -213,8 +213,10 @@ class QueryParamsProxy(MutableMapping[str, str]):
213
213
 
214
214
  @staticmethod
215
215
  def missing_key_error_message(key: str) -> str:
216
+ """Returns a formatted error message for missing keys."""
216
217
  return f'st.query_params has no key "{key}".'
217
218
 
218
219
  @staticmethod
219
220
  def missing_attr_error_message(key: str) -> str:
221
+ """Returns a formatted error message for missing attributes."""
220
222
  return f'st.query_params has no attribute "{key}".'
@@ -318,7 +318,7 @@ class KeyIdMapper:
318
318
  self._key_id_mapping = key_id_mapping
319
319
  self._id_key_mapping = {v: k for k, v in key_id_mapping.items()}
320
320
 
321
- def get_id_from_key(self, key: str, default: Any = None) -> str:
321
+ def get_id_from_key(self, key: str, default: str | None = None) -> str | None:
322
322
  return self._key_id_mapping.get(key, default)
323
323
 
324
324
  def get_key_from_id(self, widget_id: str) -> str:
@@ -670,7 +670,9 @@ class SessionState:
670
670
  """Turns a value that might be a widget id or a user provided key into
671
671
  an appropriate widget id.
672
672
  """
673
- return self._key_id_mapper.get_id_from_key(k, k)
673
+ # It's guaranteed that the key is a string since the default is string,
674
+ # so we can cast it to str here:
675
+ return cast("str", self._key_id_mapper.get_id_from_key(k, k))
674
676
 
675
677
  def _set_key_widget_mapping(self, widget_id: str, user_key: str) -> None:
676
678
  self._key_id_mapper[user_key] = widget_id
@@ -37,7 +37,7 @@
37
37
  <script>
38
38
  window.prerenderReady = false
39
39
  </script>
40
- <script type="module" crossorigin src="./static/js/index.B5CU57Qf.js"></script>
40
+ <script type="module" crossorigin src="./static/js/index.ClByuhfh.js"></script>
41
41
  <link rel="stylesheet" crossorigin href="./static/css/index.CJVRHjQZ.css">
42
42
  </head>
43
43
  <body>