streamlit-nightly 1.45.2.dev20250615__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 (121) hide show
  1. streamlit/commands/navigation.py +39 -5
  2. streamlit/commands/page_config.py +48 -20
  3. streamlit/config.py +75 -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 +29 -12
  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 +29 -2
  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/credentials.py +3 -1
  45. streamlit/runtime/state/query_params_proxy.py +2 -0
  46. streamlit/runtime/state/session_state.py +4 -2
  47. streamlit/static/index.html +1 -1
  48. streamlit/static/manifest.json +218 -218
  49. streamlit/static/static/js/{ErrorOutline.esm.DeqDGwEO.js → ErrorOutline.esm.1znYgwZa.js} +1 -1
  50. streamlit/static/static/js/{FileDownload.esm.--sYVXOa.js → FileDownload.esm.MlshysxD.js} +1 -1
  51. streamlit/static/static/js/{FileHelper.bloGbv2W.js → FileHelper.DJjfImdO.js} +1 -1
  52. streamlit/static/static/js/{FormClearHelper.CYKg4prI.js → FormClearHelper.tzcHfSQm.js} +1 -1
  53. streamlit/static/static/js/{Hooks.B16qdpVx.js → Hooks.CUwe1mU9.js} +1 -1
  54. streamlit/static/static/js/{InputInstructions.DMO4B42t.js → InputInstructions.ibDI_m0Z.js} +1 -1
  55. streamlit/static/static/js/{ProgressBar.BH1ZwSEk.js → ProgressBar.B4yod1d4.js} +1 -1
  56. streamlit/static/static/js/{RenderInPortalIfExists.IgdXklou.js → RenderInPortalIfExists.sxtf_tkp.js} +1 -1
  57. streamlit/static/static/js/{Toolbar.DkIytKhC.js → Toolbar.D2TSK_7z.js} +1 -1
  58. streamlit/static/static/js/{base-input.CAahP9oF.js → base-input.DBGTsu79.js} +1 -1
  59. streamlit/static/static/js/{checkbox.k1RuPBbZ.js → checkbox.Cv3M11iz.js} +1 -1
  60. streamlit/static/static/js/{createSuper.ButEKFwQ.js → createSuper.CZYzqRu7.js} +1 -1
  61. streamlit/static/static/js/{data-grid-overlay-editor.7XGvfjSS.js → data-grid-overlay-editor.Dnwp2SeP.js} +1 -1
  62. streamlit/static/static/js/{downloader.DSilreQW.js → downloader.OkIJTahw.js} +1 -1
  63. streamlit/static/static/js/{es6.yDFTfvZI.js → es6.CWUYJnwB.js} +2 -2
  64. streamlit/static/static/js/{iframeResizer.contentWindow.BSskBUmQ.js → iframeResizer.contentWindow.BGMetL4r.js} +1 -1
  65. streamlit/static/static/js/{index.Iveq4NZV.js → index.BLLY_wCb.js} +1 -1
  66. streamlit/static/static/js/{index.BG8RaQ8E.js → index.BNQdHQ9A.js} +1 -1
  67. streamlit/static/static/js/{index.BcW5X6V5.js → index.BRUfGLJs.js} +1 -1
  68. streamlit/static/static/js/{index.CWeNa-FP.js → index.BZhFm-tC.js} +1 -1
  69. streamlit/static/static/js/{index.BAXqDnQ9.js → index.Bi_xDLKC.js} +1 -1
  70. streamlit/static/static/js/{index.DNTQOI5W.js → index.Bio4VfuK.js} +1 -1
  71. streamlit/static/static/js/{index.ChhNrUVT.js → index.BlRNHzJT.js} +1 -1
  72. streamlit/static/static/js/{index.D9muCjoC.js → index.BvPXgYL1.js} +1 -1
  73. streamlit/static/static/js/{index.FC1jA29Z.js → index.C8UyejlW.js} +1 -1
  74. streamlit/static/static/js/{index.bQ9PFxvm.js → index.CATKfyKP.js} +1 -1
  75. streamlit/static/static/js/{index.Cdi_Zw1a.js → index.CImNFEsN.js} +1 -1
  76. streamlit/static/static/js/{index.ClCtylIR.js → index.CP9S4-UC.js} +1 -1
  77. streamlit/static/static/js/{index.C0xV4csm.js → index.CaH9iZrA.js} +1 -1
  78. streamlit/static/static/js/{index.DslKxDZN.js → index.CfU3gX6G.js} +1 -1
  79. streamlit/static/static/js/{index.RQlZs06L.js → index.CghNjnWG.js} +1 -1
  80. streamlit/static/static/js/index.ClByuhfh.js +783 -0
  81. streamlit/static/static/js/{index.DGrpmtEI.js → index.CyScXVPk.js} +1 -1
  82. streamlit/static/static/js/{index.Bo1tG5CG.js → index.D3yL8Boz.js} +5 -5
  83. streamlit/static/static/js/{index.EgFq4OeP.js → index.DHrbHxMA.js} +1 -1
  84. streamlit/static/static/js/{index.y-bXsZ3U.js → index.DXby5BWo.js} +1 -1
  85. streamlit/static/static/js/{index.9VWuu9bJ.js → index.Dgicxx_R.js} +1 -1
  86. streamlit/static/static/js/{index.DLBGcvEx.js → index.DhZtGReO.js} +1 -1
  87. streamlit/static/static/js/{index.ChBsbacw.js → index.DqoNxwFW.js} +1 -1
  88. streamlit/static/static/js/{index.80yI-jzZ.js → index.DrAi2KWE.js} +1 -1
  89. streamlit/static/static/js/{index.O4EQwJsZ.js → index.DuQBFADi.js} +1 -1
  90. streamlit/static/static/js/{index.BoHCDi97.js → index.DxX0zYtM.js} +1 -1
  91. streamlit/static/static/js/{index.CzY5--PW.js → index.GbpCpBCj.js} +1 -1
  92. streamlit/static/static/js/{index.D6veSOdZ.js → index.aKXX7Ba_.js} +1 -1
  93. streamlit/static/static/js/{index.DqbaNLFW.js → index.bK_LT6WV.js} +1 -1
  94. streamlit/static/static/js/{index.BY47W7LH.js → index.cFdge3NU.js} +1 -1
  95. streamlit/static/static/js/{index.CKJtZooB.js → index.cbAks8a8.js} +1 -1
  96. streamlit/static/static/js/{index.tnjDy4iv.js → index.eeGQgksq.js} +1 -1
  97. streamlit/static/static/js/{index.CIXRC_j_.js → index.fybg-SX6.js} +1 -1
  98. streamlit/static/static/js/{index.ClCMQ4iK.js → index.igD8dUid.js} +1 -1
  99. streamlit/static/static/js/{index.BsCehkC8.js → index.jzzHl6U7.js} +1 -1
  100. streamlit/static/static/js/{index.DSpbUJvK.js → index.vJGalypl.js} +1 -1
  101. streamlit/static/static/js/{index.BZqoA_aJ.js → index.yh03tq2H.js} +1 -1
  102. streamlit/static/static/js/{input.5dpw-Sqs.js → input.DG4M8O5Z.js} +1 -1
  103. streamlit/static/static/js/{memory.8YWsO_82.js → memory.cZDDDDRN.js} +1 -1
  104. streamlit/static/static/js/{mergeWith.1afHaDFE.js → mergeWith.CbuU4RN8.js} +1 -1
  105. streamlit/static/static/js/{number-overlay-editor.CrclsoQd.js → number-overlay-editor.GDhzbbBH.js} +1 -1
  106. streamlit/static/static/js/{possibleConstructorReturn.Dq7g1SWn.js → possibleConstructorReturn.CJFaNdfh.js} +1 -1
  107. streamlit/static/static/js/{sandbox.ZlQ0WZlh.js → sandbox.SJvDMGmc.js} +1 -1
  108. streamlit/static/static/js/{textarea.CY5cwdtO.js → textarea.CA5HbAYe.js} +1 -1
  109. streamlit/static/static/js/{timepicker.DMqTkd3V.js → timepicker.Dw_Jp_TE.js} +1 -1
  110. streamlit/static/static/js/{toConsumableArray.Bm0yYM5M.js → toConsumableArray.DrYe4LQW.js} +1 -1
  111. streamlit/static/static/js/{uniqueId.kDXXTYvS.js → uniqueId.D-hUXA0O.js} +1 -1
  112. streamlit/static/static/js/{useBasicWidgetState.ClCgm0D-.js → useBasicWidgetState.ByTJlmUY.js} +1 -1
  113. streamlit/static/static/js/{useOnInputChange.Cwcz7NJx.js → useOnInputChange.4waR08fC.js} +1 -1
  114. streamlit/static/static/js/{withFullScreenWrapper.CRbf9QMV.js → withFullScreenWrapper.BbZgX6-q.js} +1 -1
  115. {streamlit_nightly-1.45.2.dev20250615.dist-info → streamlit_nightly-1.45.2.dev20250617.dist-info}/METADATA +1 -1
  116. {streamlit_nightly-1.45.2.dev20250615.dist-info → streamlit_nightly-1.45.2.dev20250617.dist-info}/RECORD +120 -120
  117. streamlit/static/static/js/index.VE3QHoXq.js +0 -783
  118. {streamlit_nightly-1.45.2.dev20250615.data → streamlit_nightly-1.45.2.dev20250617.data}/scripts/streamlit.cmd +0 -0
  119. {streamlit_nightly-1.45.2.dev20250615.dist-info → streamlit_nightly-1.45.2.dev20250617.dist-info}/WHEEL +0 -0
  120. {streamlit_nightly-1.45.2.dev20250615.dist-info → streamlit_nightly-1.45.2.dev20250617.dist-info}/entry_points.txt +0 -0
  121. {streamlit_nightly-1.45.2.dev20250615.dist-info → streamlit_nightly-1.45.2.dev20250617.dist-info}/top_level.txt +0 -0
@@ -47,12 +47,20 @@ class PageConfig(google.protobuf.message.Message):
47
47
  """Render page elements in a centered block, roughly 730px wide."""
48
48
  WIDE: PageConfig._Layout.ValueType # 1
49
49
  """Use the full browser width to render elements."""
50
+ LAYOUT_UNSET: PageConfig._Layout.ValueType # 2
51
+ """Unset distinguishes that config was not provided - on initial call, will
52
+ set to centered as default. Otherwise, inherit value from previous call
53
+ """
50
54
 
51
55
  class Layout(_Layout, metaclass=_LayoutEnumTypeWrapper): ...
52
56
  CENTERED: PageConfig.Layout.ValueType # 0
53
57
  """Render page elements in a centered block, roughly 730px wide."""
54
58
  WIDE: PageConfig.Layout.ValueType # 1
55
59
  """Use the full browser width to render elements."""
60
+ LAYOUT_UNSET: PageConfig.Layout.ValueType # 2
61
+ """Unset distinguishes that config was not provided - on initial call, will
62
+ set to centered as default. Otherwise, inherit value from previous call
63
+ """
56
64
 
57
65
  class _SidebarState:
58
66
  ValueType = typing.NewType("ValueType", builtins.int)
@@ -66,6 +74,10 @@ class PageConfig(google.protobuf.message.Message):
66
74
  """Force the sidebar to be shown."""
67
75
  COLLAPSED: PageConfig._SidebarState.ValueType # 2
68
76
  """Force the sidebar to be hidden."""
77
+ SIDEBAR_UNSET: PageConfig._SidebarState.ValueType # 3
78
+ """Unset distinguishes that config was not provided - on initial call, will
79
+ set to auto as default. Otherwise, inherit value from previous call
80
+ """
69
81
 
70
82
  class SidebarState(_SidebarState, metaclass=_SidebarStateEnumTypeWrapper): ...
71
83
  AUTO: PageConfig.SidebarState.ValueType # 0
@@ -74,6 +86,10 @@ class PageConfig(google.protobuf.message.Message):
74
86
  """Force the sidebar to be shown."""
75
87
  COLLAPSED: PageConfig.SidebarState.ValueType # 2
76
88
  """Force the sidebar to be hidden."""
89
+ SIDEBAR_UNSET: PageConfig.SidebarState.ValueType # 3
90
+ """Unset distinguishes that config was not provided - on initial call, will
91
+ set to auto as default. Otherwise, inherit value from previous call
92
+ """
77
93
 
78
94
  @typing.final
79
95
  class MenuItems(google.protobuf.message.Message):
@@ -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:
@@ -23,7 +23,7 @@ import textwrap
23
23
  from typing import Final, NamedTuple, NoReturn, cast
24
24
  from uuid import uuid4
25
25
 
26
- from streamlit import cli_util, env_util, file_util, util
26
+ from streamlit import cli_util, config, env_util, file_util, util
27
27
  from streamlit.logger import get_logger
28
28
 
29
29
  _LOGGER: Final = get_logger(__name__)
@@ -247,6 +247,8 @@ class Credentials:
247
247
  "`streamlit activate reset` then `streamlit activate`"
248
248
  )
249
249
  else:
250
+ if not config.get_option("server.showEmailPrompt"):
251
+ return
250
252
  activated = False
251
253
 
252
254
  while not activated:
@@ -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.VE3QHoXq.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>