streamlit-nightly 1.43.3.dev20250318__py3-none-any.whl → 1.43.3.dev20250319__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 (131) hide show
  1. streamlit/auth_util.py +1 -1
  2. streamlit/commands/page_config.py +1 -1
  3. streamlit/config.py +11 -14
  4. streamlit/connections/snowflake_connection.py +2 -2
  5. streamlit/connections/snowpark_connection.py +1 -1
  6. streamlit/connections/sql_connection.py +1 -1
  7. streamlit/connections/util.py +1 -1
  8. streamlit/dataframe_util.py +12 -12
  9. streamlit/delta_generator.py +2 -2
  10. streamlit/deprecation_util.py +2 -2
  11. streamlit/elements/arrow.py +3 -3
  12. streamlit/elements/deck_gl_json_chart.py +4 -4
  13. streamlit/elements/dialog_decorator.py +2 -2
  14. streamlit/elements/heading.py +1 -1
  15. streamlit/elements/html.py +3 -3
  16. streamlit/elements/lib/built_in_chart_utils.py +9 -8
  17. streamlit/elements/lib/color_util.py +7 -7
  18. streamlit/elements/lib/dialog.py +1 -1
  19. streamlit/elements/lib/image_utils.py +9 -7
  20. streamlit/elements/lib/mutable_status_container.py +1 -1
  21. streamlit/elements/media.py +2 -2
  22. streamlit/elements/metric.py +1 -1
  23. streamlit/elements/plotly_chart.py +4 -4
  24. streamlit/elements/vega_charts.py +5 -5
  25. streamlit/elements/widgets/button_group.py +1 -1
  26. streamlit/elements/widgets/multiselect.py +3 -2
  27. streamlit/elements/widgets/select_slider.py +3 -5
  28. streamlit/elements/widgets/slider.py +4 -4
  29. streamlit/elements/widgets/time_widgets.py +4 -4
  30. streamlit/elements/write.py +1 -1
  31. streamlit/proto/NewSession_pb2.py +16 -16
  32. streamlit/proto/NewSession_pb2.pyi +16 -11
  33. streamlit/runtime/app_session.py +1 -1
  34. streamlit/runtime/caching/cache_data_api.py +2 -2
  35. streamlit/runtime/caching/cache_resource_api.py +2 -2
  36. streamlit/runtime/caching/hashing.py +7 -7
  37. streamlit/runtime/metrics_util.py +1 -1
  38. streamlit/runtime/scriptrunner/script_runner.py +1 -1
  39. streamlit/runtime/scriptrunner_utils/script_requests.py +1 -1
  40. streamlit/runtime/session_manager.py +1 -1
  41. streamlit/runtime/state/session_state.py +3 -3
  42. streamlit/runtime/websocket_session_manager.py +2 -2
  43. streamlit/static/index.html +1 -1
  44. streamlit/static/static/css/index.C5t3M85E.css +1 -0
  45. streamlit/static/static/js/{FileDownload.esm.qg6FU0gn.js → FileDownload.esm.Dz4lqu2t.js} +1 -1
  46. streamlit/static/static/js/{FileHelper.BjsqRSXf.js → FileHelper.B_o0E5mY.js} +1 -1
  47. streamlit/static/static/js/{FormClearHelper.lrCbq3h9.js → FormClearHelper.B5ARMjis.js} +1 -1
  48. streamlit/static/static/js/{Hooks.DLM8-GOj.js → Hooks.gYcZ3nte.js} +1 -1
  49. streamlit/static/static/js/{InputInstructions.C6xqeBjt.js → InputInstructions.K_vAW_MG.js} +1 -1
  50. streamlit/static/static/js/{ProgressBar.CwnbGH4T.js → ProgressBar.DOjGuUdH.js} +1 -1
  51. streamlit/static/static/js/{RenderInPortalIfExists.DBosjlw4.js → RenderInPortalIfExists.C4HdMGrO.js} +1 -1
  52. streamlit/static/static/js/{Toolbar.DPjbmT0r.js → Toolbar.BZqFuVCo.js} +1 -1
  53. streamlit/static/static/js/{base-input.DYN8lKyb.js → base-input.DtNLPEYc.js} +1 -1
  54. streamlit/static/static/js/{checkbox.DHvRlo93.js → checkbox.De5lDKlG.js} +1 -1
  55. streamlit/static/static/js/{createSuper.ClJZbMNR.js → createSuper.DUfdjejQ.js} +1 -1
  56. streamlit/static/static/js/data-grid-overlay-editor.ByFOuSZw.js +1 -0
  57. streamlit/static/static/js/{downloader.D-SIwsMu.js → downloader.Bndt7ayy.js} +1 -1
  58. streamlit/static/static/js/{es6.RZQgn996.js → es6.B9axslaM.js} +2 -2
  59. streamlit/static/static/js/{iframeResizer.contentWindow.CXViiYfd.js → iframeResizer.contentWindow.C19fTVqS.js} +1 -1
  60. streamlit/static/static/js/{index.9SqbTcLN.js → index.3vPW8lC3.js} +1 -1
  61. streamlit/static/static/js/{index.DJnKVyky.js → index.8fEQ0naY.js} +1 -1
  62. streamlit/static/static/js/{index.ChEumMTh.js → index.B9N7bKyh.js} +1 -1
  63. streamlit/static/static/js/{index.BnRmaj0q.js → index.BBkaxxeO.js} +1 -1
  64. streamlit/static/static/js/index.BDWxQ6IH.js +3 -0
  65. streamlit/static/static/js/{index.Clo5LWpc.js → index.BELm1MW6.js} +1 -1
  66. streamlit/static/static/js/{index.Bz8bUQom.js → index.BKE695Zg.js} +1 -1
  67. streamlit/static/static/js/{index.DC-G9iGy.js → index.BKhwcUMH.js} +83 -83
  68. streamlit/static/static/js/index.BOsCHoek.js +1 -0
  69. streamlit/static/static/js/{index.Df97B7YB.js → index.BQkmoKYZ.js} +1 -1
  70. streamlit/static/static/js/{index.Cvp6swyX.js → index.BRjv0YAi.js} +1 -1
  71. streamlit/static/static/js/index.BTbDncVq.js +1 -0
  72. streamlit/static/static/js/{index.CJNnM66H.js → index.BVKRKiWg.js} +1 -1
  73. streamlit/static/static/js/{index.Dw0WhCiS.js → index.Bbd47eDn.js} +1 -1
  74. streamlit/static/static/js/index.Bk2R3MJ7.js +1 -0
  75. streamlit/static/static/js/{index.krYobKf-.js → index.BoIgF6Mf.js} +2 -2
  76. streamlit/static/static/js/{index.HyA1RCUq.js → index.BpkIFU8i.js} +1 -1
  77. streamlit/static/static/js/{index.jtYhcA9Y.js → index.BrZWnIcP.js} +1 -1
  78. streamlit/static/static/js/index.Bu7fiR4T.js +1 -0
  79. streamlit/static/static/js/{index.Do_EEKkv.js → index.C4zUVQy-.js} +1 -1
  80. streamlit/static/static/js/index.CBtAFng_.js +1 -0
  81. streamlit/static/static/js/{index.C-HVVl5G.js → index.CGzFdF4L.js} +2 -2
  82. streamlit/static/static/js/{index.BYzci3kh.js → index.CKmyhCjm.js} +1 -1
  83. streamlit/static/static/js/index.CVbLNEv4.js +1 -0
  84. streamlit/static/static/js/{index.Dk0AzWKK.js → index.CYG25qUi.js} +1 -1
  85. streamlit/static/static/js/{index.CqzRlT_N.js → index.DCgNoHge.js} +3 -3
  86. streamlit/static/static/js/{index.COChIdSa.js → index.DJzV_Hd9.js} +1 -1
  87. streamlit/static/static/js/{index.CVwvNsMT.js → index.DQ8O6p2Z.js} +1 -1
  88. streamlit/static/static/js/{index.BLNPtZ0I.js → index.DWQ-qPH7.js} +1 -1
  89. streamlit/static/static/js/{index.DPBPYkVj.js → index.DxsZ6SOh.js} +1 -1
  90. streamlit/static/static/js/{index.BrmZ2YXw.js → index.K2n8XAB3.js} +1 -1
  91. streamlit/static/static/js/{index.PrTbO9_K.js → index.KmpTf7BC.js} +16 -16
  92. streamlit/static/static/js/{index.DXtp2vWQ.js → index.TIHw6394.js} +1 -1
  93. streamlit/static/static/js/{index.Cjhlljyd.js → index.TXEfAqTZ.js} +1 -1
  94. streamlit/static/static/js/index.bco4avsR.js +1 -0
  95. streamlit/static/static/js/{index.Nr-h-MEp.js → index.cHVEPjHw.js} +2 -2
  96. streamlit/static/static/js/index.xvt4PCc-.js +1 -0
  97. streamlit/static/static/js/{input.dDObaqA1.js → input.5dHsg5IP.js} +1 -1
  98. streamlit/static/static/js/{memory.ByHTAQoD.js → memory.7AvKwFql.js} +1 -1
  99. streamlit/static/static/js/{mergeWith.BZKwBIi3.js → mergeWith.Bz2fCjZ-.js} +1 -1
  100. streamlit/static/static/js/{number-overlay-editor.xIt9oCDu.js → number-overlay-editor.BzFQCoPo.js} +1 -1
  101. streamlit/static/static/js/{possibleConstructorReturn.CWDGHg1z.js → possibleConstructorReturn.BWYpSIhJ.js} +1 -1
  102. streamlit/static/static/js/{sandbox.Bp7KFO4N.js → sandbox.DDDzfccc.js} +1 -1
  103. streamlit/static/static/js/{textarea.BryYk9e_.js → textarea.UlZOYsGE.js} +1 -1
  104. streamlit/static/static/js/{timepicker.BXqQU8Wg.js → timepicker.C8uTDs22.js} +1 -1
  105. streamlit/static/static/js/{toConsumableArray.jCEZas3E.js → toConsumableArray.CdG0Nv6r.js} +1 -1
  106. streamlit/static/static/js/{uniqueId.Bo8oca1r.js → uniqueId.hWzaDSRc.js} +1 -1
  107. streamlit/static/static/js/{useBasicWidgetState.B5KzIWBc.js → useBasicWidgetState.CtYBARrn.js} +1 -1
  108. streamlit/static/static/js/{useOnInputChange.DbufYBDh.js → useOnInputChange.Cpz9bdhf.js} +1 -1
  109. streamlit/static/static/js/withFullScreenWrapper.BcDfXDtz.js +1 -0
  110. streamlit/string_util.py +1 -1
  111. streamlit/testing/v1/element_tree.py +14 -14
  112. streamlit/watcher/event_based_path_watcher.py +1 -1
  113. streamlit/web/server/routes.py +1 -0
  114. {streamlit_nightly-1.43.3.dev20250318.dist-info → streamlit_nightly-1.43.3.dev20250319.dist-info}/METADATA +2 -2
  115. {streamlit_nightly-1.43.3.dev20250318.dist-info → streamlit_nightly-1.43.3.dev20250319.dist-info}/RECORD +119 -119
  116. {streamlit_nightly-1.43.3.dev20250318.dist-info → streamlit_nightly-1.43.3.dev20250319.dist-info}/WHEEL +1 -1
  117. streamlit/static/static/css/index.Bmkmz40k.css +0 -1
  118. streamlit/static/static/js/data-grid-overlay-editor.CBlXaHUd.js +0 -1
  119. streamlit/static/static/js/index.9un9ip3K.js +0 -3
  120. streamlit/static/static/js/index.B683Y0MV.js +0 -1
  121. streamlit/static/static/js/index.BOAw4pUA.js +0 -1
  122. streamlit/static/static/js/index.BjS7LGRO.js +0 -1
  123. streamlit/static/static/js/index.CI-nHxA-.js +0 -1
  124. streamlit/static/static/js/index.CaO-RWxy.js +0 -1
  125. streamlit/static/static/js/index.CqnxBfXn.js +0 -1
  126. streamlit/static/static/js/index.DveSnEeT.js +0 -1
  127. streamlit/static/static/js/index.RAvbwGxj.js +0 -1
  128. streamlit/static/static/js/withFullScreenWrapper.BKsmWq7e.js +0 -1
  129. {streamlit_nightly-1.43.3.dev20250318.data → streamlit_nightly-1.43.3.dev20250319.data}/scripts/streamlit.cmd +0 -0
  130. {streamlit_nightly-1.43.3.dev20250318.dist-info → streamlit_nightly-1.43.3.dev20250319.dist-info}/entry_points.txt +0 -0
  131. {streamlit_nightly-1.43.3.dev20250318.dist-info → streamlit_nightly-1.43.3.dev20250319.dist-info}/top_level.txt +0 -0
@@ -227,13 +227,13 @@ class PlotlyChartSelectionSerde:
227
227
  selection_state = (
228
228
  empty_selection_state
229
229
  if ui_value is None
230
- else cast(PlotlyState, AttributeDictionary(json.loads(ui_value)))
230
+ else cast("PlotlyState", AttributeDictionary(json.loads(ui_value)))
231
231
  )
232
232
 
233
233
  if "selection" not in selection_state:
234
234
  selection_state = empty_selection_state
235
235
 
236
- return cast(PlotlyState, AttributeDictionary(selection_state))
236
+ return cast("PlotlyState", AttributeDictionary(selection_state))
237
237
 
238
238
  def serialize(self, selection_state: PlotlyState) -> str:
239
239
  return json.dumps(selection_state, default=str)
@@ -474,7 +474,7 @@ class PlotlyMixin:
474
474
  check_widget_policies(
475
475
  self.dg,
476
476
  key,
477
- on_change=cast(WidgetCallback, on_select) if is_callback else None,
477
+ on_change=cast("WidgetCallback", on_select) if is_callback else None,
478
478
  default_value=None,
479
479
  writes_allowed=False,
480
480
  enable_check_callback_rules=is_callback,
@@ -536,7 +536,7 @@ class PlotlyMixin:
536
536
  )
537
537
 
538
538
  self.dg._enqueue("plotly_chart", plotly_chart_proto)
539
- return cast(PlotlyState, widget_state.value)
539
+ return cast("PlotlyState", widget_state.value)
540
540
  else:
541
541
  return self.dg._enqueue("plotly_chart", plotly_chart_proto)
542
542
 
@@ -238,13 +238,13 @@ class VegaLiteStateSerde:
238
238
  selection_state = (
239
239
  empty_selection_state
240
240
  if ui_value is None
241
- else cast(VegaLiteState, AttributeDictionary(json.loads(ui_value)))
241
+ else cast("VegaLiteState", AttributeDictionary(json.loads(ui_value)))
242
242
  )
243
243
 
244
244
  if "selection" not in selection_state:
245
245
  selection_state = empty_selection_state
246
246
 
247
- return cast(VegaLiteState, AttributeDictionary(selection_state))
247
+ return cast("VegaLiteState", AttributeDictionary(selection_state))
248
248
 
249
249
  def serialize(self, selection_state: VegaLiteState) -> str:
250
250
  return json.dumps(selection_state, default=str)
@@ -255,7 +255,7 @@ def _prepare_vega_lite_spec(
255
255
  use_container_width: bool,
256
256
  **kwargs,
257
257
  ) -> VegaLiteSpec:
258
- if len(kwargs):
258
+ if kwargs:
259
259
  # Support passing in kwargs. Example:
260
260
  # marshall(proto, {foo: 'bar'}, baz='boz')
261
261
  # Merge spec with unflattened kwargs, where kwargs take precedence.
@@ -1884,7 +1884,7 @@ class VegaChartsMixin:
1884
1884
  check_widget_policies(
1885
1885
  self.dg,
1886
1886
  key,
1887
- on_change=cast(WidgetCallback, on_select) if is_callback else None,
1887
+ on_change=cast("WidgetCallback", on_select) if is_callback else None,
1888
1888
  default_value=None,
1889
1889
  writes_allowed=False,
1890
1890
  enable_check_callback_rules=is_callback,
@@ -1970,7 +1970,7 @@ class VegaChartsMixin:
1970
1970
  vega_lite_proto,
1971
1971
  add_rows_metadata=add_rows_metadata,
1972
1972
  )
1973
- return cast(VegaLiteState, widget_state.value)
1973
+ return cast("VegaLiteState", widget_state.value)
1974
1974
  # If its not used with selections activated, just return
1975
1975
  # the delta generator related to this element.
1976
1976
  return self.dg._enqueue(
@@ -149,7 +149,7 @@ class SingleOrMultiSelectSerde(Generic[T]):
149
149
  )
150
150
 
151
151
  def serialize(self, value: T | list[T] | None) -> list[int]:
152
- return self.serde.serialize(cast(Any, value))
152
+ return self.serde.serialize(cast("Any", value))
153
153
 
154
154
  def deserialize(
155
155
  self, ui_value: list[int] | None, widget_id: str = ""
@@ -14,7 +14,6 @@
14
14
 
15
15
  from __future__ import annotations
16
16
 
17
- from collections.abc import Sequence
18
17
  from dataclasses import dataclass, field
19
18
  from textwrap import dedent
20
19
  from typing import TYPE_CHECKING, Any, Callable, Generic, cast
@@ -52,6 +51,8 @@ from streamlit.type_util import (
52
51
  )
53
52
 
54
53
  if TYPE_CHECKING:
54
+ from collections.abc import Sequence
55
+
55
56
  from streamlit.dataframe_util import OptionSequence
56
57
  from streamlit.delta_generator import DeltaGenerator
57
58
  from streamlit.runtime.state import (
@@ -86,7 +87,7 @@ def _get_default_count(default: Sequence[Any] | Any | None) -> int:
86
87
  return 0
87
88
  if not is_iterable(default):
88
89
  return 1
89
- return len(cast(Sequence[Any], default))
90
+ return len(cast("Sequence[Any]", default))
90
91
 
91
92
 
92
93
  def _check_max_selections(
@@ -56,15 +56,13 @@ from streamlit.runtime.state import (
56
56
  WidgetKwargs,
57
57
  register_widget,
58
58
  )
59
- from streamlit.runtime.state.common import (
60
- RegisterWidgetResult,
61
- )
62
59
  from streamlit.type_util import T, check_python_comparable
63
60
 
64
61
  if TYPE_CHECKING:
65
62
  from collections.abc import Sequence
66
63
 
67
64
  from streamlit.delta_generator import DeltaGenerator
65
+ from streamlit.runtime.state.common import RegisterWidgetResult
68
66
 
69
67
 
70
68
  def _is_range_value(value: T | Sequence[T]) -> TypeGuard[Sequence[T]]:
@@ -91,7 +89,7 @@ class SelectSliderSerde(Generic[T]):
91
89
 
92
90
  # The widget always returns floats, so convert to ints before indexing
93
91
  return_value: tuple[T, T] = cast(
94
- tuple[T, T],
92
+ "tuple[T, T]",
95
93
  tuple(self.options[int(x)] for x in ui_value),
96
94
  )
97
95
 
@@ -416,7 +414,7 @@ class SelectSliderMixin:
416
414
  )
417
415
  if isinstance(widget_state.value, tuple):
418
416
  widget_state = maybe_coerce_enum_sequence(
419
- cast(RegisterWidgetResult[tuple[T, T]], widget_state), options, opt
417
+ cast("RegisterWidgetResult[tuple[T, T]]", widget_state), options, opt
420
418
  )
421
419
  else:
422
420
  widget_state = maybe_coerce_enum(widget_state, options, opt)
@@ -693,7 +693,7 @@ class SliderMixin:
693
693
  ) and max_value - min_value < timedelta(days=1):
694
694
  step = timedelta(minutes=15)
695
695
  if format is None:
696
- format = cast(str, DEFAULTS[data_type]["format"])
696
+ format = cast("str", DEFAULTS[data_type]["format"])
697
697
 
698
698
  if step == 0:
699
699
  raise StreamlitAPIException(
@@ -811,7 +811,7 @@ class SliderMixin:
811
811
  value = list(map(_datetime_to_micros, value))
812
812
  min_value = _datetime_to_micros(min_value)
813
813
  max_value = _datetime_to_micros(max_value)
814
- step = _delta_to_micros(cast(timedelta, step))
814
+ step = _delta_to_micros(cast("timedelta", step))
815
815
 
816
816
  # It would be great if we could guess the number of decimal places from
817
817
  # the `step` argument, but this would only be meaningful if step were a
@@ -826,7 +826,7 @@ class SliderMixin:
826
826
  slider_proto.default[:] = value
827
827
  slider_proto.min = min_value
828
828
  slider_proto.max = max_value
829
- slider_proto.step = cast(float, step)
829
+ slider_proto.step = cast("float", step)
830
830
  slider_proto.data_type = data_type
831
831
  slider_proto.options[:] = []
832
832
  slider_proto.form_id = current_form_id(self.dg)
@@ -872,7 +872,7 @@ class SliderMixin:
872
872
  slider_proto.set_value = True
873
873
 
874
874
  self.dg._enqueue("slider", slider_proto)
875
- return cast(SliderReturn, widget_state.value)
875
+ return cast("SliderReturn", widget_state.value)
876
876
 
877
877
  @property
878
878
  def dg(self) -> DeltaGenerator:
@@ -151,7 +151,7 @@ def _parse_date_value(value: DateValue) -> tuple[list[date] | None, bool]:
151
151
  value_tuple = value
152
152
  else:
153
153
  is_range = False
154
- value_tuple = [cast(NullableScalarDateValue, value)]
154
+ value_tuple = [cast("NullableScalarDateValue", value)]
155
155
 
156
156
  if len(value_tuple) not in {0, 1, 2}:
157
157
  raise StreamlitAPIException(
@@ -227,7 +227,7 @@ class _DateInputValues:
227
227
  )
228
228
 
229
229
  if value == "today":
230
- v = cast(list[date], parsed_value)[0]
230
+ v = cast("list[date]", parsed_value)[0]
231
231
  if v < parsed_min:
232
232
  parsed_value = [parsed_min]
233
233
  if v > parsed_max:
@@ -300,7 +300,7 @@ class DateInputSerde:
300
300
 
301
301
  if not self.value.is_range:
302
302
  return return_value[0]
303
- return cast(DateWidgetReturn, tuple(return_value))
303
+ return cast("DateWidgetReturn", tuple(return_value))
304
304
 
305
305
  def serialize(self, v: DateWidgetReturn) -> list[str]:
306
306
  if v is None:
@@ -869,7 +869,7 @@ class TimeWidgetsMixin:
869
869
  parsed = None
870
870
  elif isinstance(value, Sequence):
871
871
  parsed = [
872
- parse_date_deterministic_for_id(cast(NullableScalarDateValue, v))
872
+ parse_date_deterministic_for_id(cast("NullableScalarDateValue", v))
873
873
  for v in value
874
874
  ]
875
875
  else:
@@ -528,7 +528,7 @@ class WriteMixin:
528
528
  flush_buffer()
529
529
  # We cast arg to type here to appease mypy, due to bug in mypy:
530
530
  # https://github.com/python/mypy/issues/12933
531
- self.dg.help(cast(type, arg))
531
+ self.dg.help(cast("type", arg))
532
532
  elif unsafe_allow_html and type_util.has_callable_attr(arg, "_repr_html_"):
533
533
  self.dg.html(arg._repr_html_())
534
534
  elif type_util.has_callable_attr(
@@ -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\"\x8c\x07\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\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\x19\n\x0c\x62order_color\x18\x13 \x01(\tH\x01\x88\x01\x01\x12&\n\x19show_border_around_inputs\x18\x14 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nlink_color\x18\x15 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0e\x62\x61se_font_size\x18\x16 \x01(\x05H\x04\x88\x01\x01\x12#\n\x16show_sidebar_separator\x18\x17 \x01(\x08H\x05\x88\x01\x01\x12(\n\x07sidebar\x18\x18 \x01(\x0b\x32\x12.CustomThemeConfigH\x06\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\x0f\n\r_border_colorB\x1c\n\x1a_show_border_around_inputsB\r\n\x0b_link_colorB\x11\n\x0f_base_font_sizeB\x19\n\x17_show_sidebar_separatorB\n\n\x08_sidebar\"F\n\x08\x46ontFace\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0e\n\x06\x66\x61mily\x18\x02 \x01(\t\x12\x0e\n\x06weight\x18\x03 \x01(\x05\x12\r\n\x05style\x18\x04 \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\"E\n\x08UserInfo\x12\x17\n\x0finstallation_id\x18\x01 \x01(\t\x12\x1a\n\x12installation_id_v3\x18\x05 \x01(\tJ\x04\x08\x02\x10\x03\"D\n\x0f\x45nvironmentInfo\x12\x19\n\x11streamlit_version\x18\x01 \x01(\t\x12\x16\n\x0epython_version\x18\x02 \x01(\tB/\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\"\xb6\x07\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\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\x19\n\x0c\x62order_color\x18\x13 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12show_widget_border\x18\x14 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nlink_color\x18\x15 \x01(\tH\x03\x88\x01\x01\x12\x1b\n\x0e\x62\x61se_font_size\x18\x16 \x01(\x05H\x04\x88\x01\x01\x12 \n\x13show_sidebar_border\x18\x17 \x01(\x08H\x05\x88\x01\x01\x12(\n\x07sidebar\x18\x18 \x01(\x0b\x32\x12.CustomThemeConfigH\x06\x88\x01\x01\x12\"\n\x15\x63ode_background_color\x18\x19 \x01(\tH\x07\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\x0f\n\r_border_colorB\x15\n\x13_show_widget_borderB\r\n\x0b_link_colorB\x11\n\x0f_base_font_sizeB\x16\n\x14_show_sidebar_borderB\n\n\x08_sidebarB\x18\n\x16_code_background_color\"F\n\x08\x46ontFace\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0e\n\x06\x66\x61mily\x18\x02 \x01(\t\x12\x0e\n\x06weight\x18\x03 \x01(\x05\x12\r\n\x05style\x18\x04 \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\"E\n\x08UserInfo\x12\x17\n\x0finstallation_id\x18\x01 \x01(\t\x12\x1a\n\x12installation_id_v3\x18\x05 \x01(\tJ\x04\x08\x02\x10\x03\"D\n\x0f\x45nvironmentInfo\x12\x19\n\x11streamlit_version\x18\x01 \x01(\t\x12\x16\n\x0epython_version\x18\x02 \x01(\tB/\n\x1c\x63om.snowflake.apps.streamlitB\x0fNewSessionProtob\x06proto3')
20
20
 
21
21
  _globals = globals()
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -33,19 +33,19 @@ if not _descriptor._USE_C_DESCRIPTORS:
33
33
  _globals['_CONFIG_TOOLBARMODE']._serialized_start=800
34
34
  _globals['_CONFIG_TOOLBARMODE']._serialized_end=863
35
35
  _globals['_CUSTOMTHEMECONFIG']._serialized_start=872
36
- _globals['_CUSTOMTHEMECONFIG']._serialized_end=1780
37
- _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_start=1556
38
- _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_end=1588
39
- _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_start=1590
40
- _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_end=1644
41
- _globals['_FONTFACE']._serialized_start=1782
42
- _globals['_FONTFACE']._serialized_end=1852
43
- _globals['_RADII']._serialized_start=1854
44
- _globals['_RADII']._serialized_end=1914
45
- _globals['_FONTSIZES']._serialized_start=1916
46
- _globals['_FONTSIZES']._serialized_end=2000
47
- _globals['_USERINFO']._serialized_start=2002
48
- _globals['_USERINFO']._serialized_end=2071
49
- _globals['_ENVIRONMENTINFO']._serialized_start=2073
50
- _globals['_ENVIRONMENTINFO']._serialized_end=2141
36
+ _globals['_CUSTOMTHEMECONFIG']._serialized_end=1822
37
+ _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_start=1582
38
+ _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_end=1614
39
+ _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_start=1616
40
+ _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_end=1670
41
+ _globals['_FONTFACE']._serialized_start=1824
42
+ _globals['_FONTFACE']._serialized_end=1894
43
+ _globals['_RADII']._serialized_start=1896
44
+ _globals['_RADII']._serialized_end=1956
45
+ _globals['_FONTSIZES']._serialized_start=1958
46
+ _globals['_FONTSIZES']._serialized_end=2042
47
+ _globals['_USERINFO']._serialized_start=2044
48
+ _globals['_USERINFO']._serialized_end=2113
49
+ _globals['_ENVIRONMENTINFO']._serialized_start=2115
50
+ _globals['_ENVIRONMENTINFO']._serialized_end=2183
51
51
  # @@protoc_insertion_point(module_scope)
@@ -286,11 +286,12 @@ class CustomThemeConfig(google.protobuf.message.Message):
286
286
  SKELETON_BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
287
287
  BASE_RADIUS_FIELD_NUMBER: builtins.int
288
288
  BORDER_COLOR_FIELD_NUMBER: builtins.int
289
- SHOW_BORDER_AROUND_INPUTS_FIELD_NUMBER: builtins.int
289
+ SHOW_WIDGET_BORDER_FIELD_NUMBER: builtins.int
290
290
  LINK_COLOR_FIELD_NUMBER: builtins.int
291
291
  BASE_FONT_SIZE_FIELD_NUMBER: builtins.int
292
- SHOW_SIDEBAR_SEPARATOR_FIELD_NUMBER: builtins.int
292
+ SHOW_SIDEBAR_BORDER_FIELD_NUMBER: builtins.int
293
293
  SIDEBAR_FIELD_NUMBER: builtins.int
294
+ CODE_BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
294
295
  primary_color: builtins.str
295
296
  secondary_background_color: builtins.str
296
297
  background_color: builtins.str
@@ -301,7 +302,7 @@ class CustomThemeConfig(google.protobuf.message.Message):
301
302
  widget_background_color: builtins.str
302
303
  """DEPRECATED: This color is not applied anymore:"""
303
304
  widget_border_color: builtins.str
304
- """DEPRECATED: Use the border_color and show_border_around_inputs instead:"""
305
+ """DEPRECATED: Use the border_color and show_widget_border instead:"""
305
306
  heading_font: builtins.str
306
307
  body_font: builtins.str
307
308
  code_font: builtins.str
@@ -309,10 +310,11 @@ class CustomThemeConfig(google.protobuf.message.Message):
309
310
  """DEPRECATED: This color is not applied anymore:"""
310
311
  base_radius: builtins.str
311
312
  border_color: builtins.str
312
- show_border_around_inputs: builtins.bool
313
+ show_widget_border: builtins.bool
313
314
  link_color: builtins.str
314
315
  base_font_size: builtins.int
315
- show_sidebar_separator: builtins.bool
316
+ show_sidebar_border: builtins.bool
317
+ code_background_color: builtins.str
316
318
  @property
317
319
  def radii(self) -> global___Radii:
318
320
  """DEPRECATED: Please use the base_radius theme config instead:"""
@@ -345,14 +347,15 @@ class CustomThemeConfig(google.protobuf.message.Message):
345
347
  skeleton_background_color: builtins.str = ...,
346
348
  base_radius: builtins.str | None = ...,
347
349
  border_color: builtins.str | None = ...,
348
- show_border_around_inputs: builtins.bool | None = ...,
350
+ show_widget_border: builtins.bool | None = ...,
349
351
  link_color: builtins.str | None = ...,
350
352
  base_font_size: builtins.int | None = ...,
351
- show_sidebar_separator: builtins.bool | None = ...,
353
+ show_sidebar_border: builtins.bool | None = ...,
352
354
  sidebar: global___CustomThemeConfig | None = ...,
355
+ code_background_color: builtins.str | None = ...,
353
356
  ) -> None: ...
354
- def HasField(self, field_name: typing.Literal["_base_font_size", b"_base_font_size", "_base_radius", b"_base_radius", "_border_color", b"_border_color", "_link_color", b"_link_color", "_show_border_around_inputs", b"_show_border_around_inputs", "_show_sidebar_separator", b"_show_sidebar_separator", "_sidebar", b"_sidebar", "base_font_size", b"base_font_size", "base_radius", b"base_radius", "border_color", b"border_color", "font_sizes", b"font_sizes", "link_color", b"link_color", "radii", b"radii", "show_border_around_inputs", b"show_border_around_inputs", "show_sidebar_separator", b"show_sidebar_separator", "sidebar", b"sidebar"]) -> builtins.bool: ...
355
- def ClearField(self, field_name: typing.Literal["_base_font_size", b"_base_font_size", "_base_radius", b"_base_radius", "_border_color", b"_border_color", "_link_color", b"_link_color", "_show_border_around_inputs", b"_show_border_around_inputs", "_show_sidebar_separator", b"_show_sidebar_separator", "_sidebar", b"_sidebar", "background_color", b"background_color", "base", b"base", "base_font_size", b"base_font_size", "base_radius", b"base_radius", "body_font", b"body_font", "border_color", b"border_color", "code_font", b"code_font", "font", b"font", "font_faces", b"font_faces", "font_sizes", b"font_sizes", "heading_font", b"heading_font", "link_color", b"link_color", "primary_color", b"primary_color", "radii", b"radii", "secondary_background_color", b"secondary_background_color", "show_border_around_inputs", b"show_border_around_inputs", "show_sidebar_separator", b"show_sidebar_separator", "sidebar", b"sidebar", "skeleton_background_color", b"skeleton_background_color", "text_color", b"text_color", "widget_background_color", b"widget_background_color", "widget_border_color", b"widget_border_color"]) -> None: ...
357
+ def HasField(self, field_name: typing.Literal["_base_font_size", b"_base_font_size", "_base_radius", b"_base_radius", "_border_color", b"_border_color", "_code_background_color", b"_code_background_color", "_link_color", b"_link_color", "_show_sidebar_border", b"_show_sidebar_border", "_show_widget_border", b"_show_widget_border", "_sidebar", b"_sidebar", "base_font_size", b"base_font_size", "base_radius", b"base_radius", "border_color", b"border_color", "code_background_color", b"code_background_color", "font_sizes", b"font_sizes", "link_color", b"link_color", "radii", b"radii", "show_sidebar_border", b"show_sidebar_border", "show_widget_border", b"show_widget_border", "sidebar", b"sidebar"]) -> builtins.bool: ...
358
+ def ClearField(self, field_name: typing.Literal["_base_font_size", b"_base_font_size", "_base_radius", b"_base_radius", "_border_color", b"_border_color", "_code_background_color", b"_code_background_color", "_link_color", b"_link_color", "_show_sidebar_border", b"_show_sidebar_border", "_show_widget_border", b"_show_widget_border", "_sidebar", b"_sidebar", "background_color", b"background_color", "base", b"base", "base_font_size", b"base_font_size", "base_radius", b"base_radius", "body_font", b"body_font", "border_color", b"border_color", "code_background_color", b"code_background_color", "code_font", b"code_font", "font", b"font", "font_faces", b"font_faces", "font_sizes", b"font_sizes", "heading_font", b"heading_font", "link_color", b"link_color", "primary_color", b"primary_color", "radii", b"radii", "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", "widget_background_color", b"widget_background_color", "widget_border_color", b"widget_border_color"]) -> None: ...
356
359
  @typing.overload
357
360
  def WhichOneof(self, oneof_group: typing.Literal["_base_font_size", b"_base_font_size"]) -> typing.Literal["base_font_size"] | None: ...
358
361
  @typing.overload
@@ -360,11 +363,13 @@ class CustomThemeConfig(google.protobuf.message.Message):
360
363
  @typing.overload
361
364
  def WhichOneof(self, oneof_group: typing.Literal["_border_color", b"_border_color"]) -> typing.Literal["border_color"] | None: ...
362
365
  @typing.overload
366
+ def WhichOneof(self, oneof_group: typing.Literal["_code_background_color", b"_code_background_color"]) -> typing.Literal["code_background_color"] | None: ...
367
+ @typing.overload
363
368
  def WhichOneof(self, oneof_group: typing.Literal["_link_color", b"_link_color"]) -> typing.Literal["link_color"] | None: ...
364
369
  @typing.overload
365
- def WhichOneof(self, oneof_group: typing.Literal["_show_border_around_inputs", b"_show_border_around_inputs"]) -> typing.Literal["show_border_around_inputs"] | None: ...
370
+ def WhichOneof(self, oneof_group: typing.Literal["_show_sidebar_border", b"_show_sidebar_border"]) -> typing.Literal["show_sidebar_border"] | None: ...
366
371
  @typing.overload
367
- def WhichOneof(self, oneof_group: typing.Literal["_show_sidebar_separator", b"_show_sidebar_separator"]) -> typing.Literal["show_sidebar_separator"] | None: ...
372
+ def WhichOneof(self, oneof_group: typing.Literal["_show_widget_border", b"_show_widget_border"]) -> typing.Literal["show_widget_border"] | None: ...
368
373
  @typing.overload
369
374
  def WhichOneof(self, oneof_group: typing.Literal["_sidebar", b"_sidebar"]) -> typing.Literal["sidebar"] | None: ...
370
375
 
@@ -920,7 +920,7 @@ def _populate_config_msg(msg: Config) -> None:
920
920
 
921
921
  def _populate_theme_msg(msg: CustomThemeConfig, section: str = "theme") -> None:
922
922
  theme_opts = config.get_options_for_section(section)
923
- if not any(theme_opts.values()):
923
+ if all(val is None for val in theme_opts.values()):
924
924
  return
925
925
 
926
926
  for option_name, option_val in theme_opts.items():
@@ -18,7 +18,6 @@ from __future__ import annotations
18
18
 
19
19
  import pickle
20
20
  import threading
21
- import types
22
21
  from typing import (
23
22
  TYPE_CHECKING,
24
23
  Any,
@@ -68,6 +67,7 @@ from streamlit.runtime.stats import CacheStat, CacheStatsProvider, group_stats
68
67
  from streamlit.time_util import time_to_seconds
69
68
 
70
69
  if TYPE_CHECKING:
70
+ import types
71
71
  from datetime import timedelta
72
72
 
73
73
  from streamlit.runtime.caching.hashing import HashFuncsDict
@@ -581,7 +581,7 @@ class CacheDataAPI:
581
581
 
582
582
  return make_cached_func_wrapper(
583
583
  CachedDataFuncInfo(
584
- func=cast(types.FunctionType, func),
584
+ func=cast("types.FunctionType", func),
585
585
  persist=persist_string,
586
586
  show_spinner=show_spinner,
587
587
  max_entries=max_entries,
@@ -18,7 +18,6 @@ from __future__ import annotations
18
18
 
19
19
  import math
20
20
  import threading
21
- import types
22
21
  from typing import TYPE_CHECKING, Any, Callable, Final, TypeVar, cast, overload
23
22
 
24
23
  from cachetools import TTLCache
@@ -45,6 +44,7 @@ from streamlit.runtime.stats import CacheStat, CacheStatsProvider, group_stats
45
44
  from streamlit.time_util import time_to_seconds
46
45
 
47
46
  if TYPE_CHECKING:
47
+ import types
48
48
  from datetime import timedelta
49
49
 
50
50
  from streamlit.runtime.caching.hashing import HashFuncsDict
@@ -430,7 +430,7 @@ class CacheResourceAPI:
430
430
 
431
431
  return make_cached_func_wrapper(
432
432
  CachedResourceFuncInfo(
433
- func=cast(types.FunctionType, func),
433
+ func=cast("types.FunctionType", func),
434
434
  show_spinner=show_spinner,
435
435
  max_entries=max_entries,
436
436
  ttl=ttl,
@@ -417,7 +417,7 @@ class _CacheFuncHasher:
417
417
  elif type_util.is_type(obj, "pandas.core.series.Series"):
418
418
  import pandas as pd
419
419
 
420
- obj = cast(pd.Series, obj)
420
+ obj = cast("pd.Series", obj)
421
421
  self.update(h, obj.size)
422
422
  self.update(h, obj.dtype.name)
423
423
 
@@ -440,7 +440,7 @@ class _CacheFuncHasher:
440
440
  elif type_util.is_type(obj, "pandas.core.frame.DataFrame"):
441
441
  import pandas as pd
442
442
 
443
- obj = cast(pd.DataFrame, obj)
443
+ obj = cast("pd.DataFrame", obj)
444
444
  self.update(h, obj.shape)
445
445
 
446
446
  if len(obj) >= _PANDAS_ROWS_LARGE:
@@ -466,7 +466,7 @@ class _CacheFuncHasher:
466
466
  elif type_util.is_type(obj, "polars.series.series.Series"):
467
467
  import polars as pl # type: ignore[import-not-found]
468
468
 
469
- obj = cast(pl.Series, obj)
469
+ obj = cast("pl.Series", obj)
470
470
  self.update(h, str(obj.dtype).encode())
471
471
  self.update(h, obj.shape)
472
472
 
@@ -486,9 +486,9 @@ class _CacheFuncHasher:
486
486
  # it contains unhashable objects.
487
487
  return b"%s" % pickle.dumps(obj, pickle.HIGHEST_PROTOCOL)
488
488
  elif type_util.is_type(obj, "polars.dataframe.frame.DataFrame"):
489
- import polars as pl
489
+ import polars as pl # noqa: TC002
490
490
 
491
- obj = cast(pl.DataFrame, obj)
491
+ obj = cast("pl.DataFrame", obj)
492
492
  self.update(h, obj.shape)
493
493
 
494
494
  if len(obj) >= _PANDAS_ROWS_LARGE:
@@ -532,9 +532,9 @@ class _CacheFuncHasher:
532
532
  return h.digest()
533
533
  elif type_util.is_type(obj, "PIL.Image.Image"):
534
534
  import numpy as np
535
- from PIL.Image import Image
535
+ from PIL.Image import Image # noqa: TC002
536
536
 
537
- obj = cast(Image, obj)
537
+ obj = cast("Image", obj)
538
538
 
539
539
  # we don't just hash the results of obj.tobytes() because we want to use
540
540
  # the sampling logic for numpy data
@@ -432,7 +432,7 @@ def gather_metrics(name: str, func: F | None = None) -> Callable[[F], F] | F:
432
432
  # attributes.
433
433
  wrapped_func.__dict__.update(non_optional_func.__dict__)
434
434
  wrapped_func.__signature__ = inspect.signature(non_optional_func) # type: ignore
435
- return cast(F, wrapped_func)
435
+ return cast("F", wrapped_func)
436
436
 
437
437
 
438
438
  def create_page_profile_message(
@@ -149,7 +149,7 @@ def _mpa_v1(main_script_path: str):
149
149
  else "sidebar"
150
150
  )
151
151
  page = _navigation(
152
- cast(list[PageType], all_pages),
152
+ cast("list[PageType]", all_pages),
153
153
  position=position,
154
154
  expanded=False,
155
155
  )
@@ -75,7 +75,7 @@ class ScriptRequest:
75
75
  def rerun_data(self) -> RerunData:
76
76
  if self.type is not ScriptRequestType.RERUN:
77
77
  raise RuntimeError("RerunData is only set for RERUN requests.")
78
- return cast(RerunData, self._rerun_data)
78
+ return cast("RerunData", self._rerun_data)
79
79
 
80
80
  def __repr__(self) -> str:
81
81
  return util.repr_(self)
@@ -78,7 +78,7 @@ class SessionInfo:
78
78
  # NOTE: The cast here (rather than copying this SessionInfo's fields into a new
79
79
  # ActiveSessionInfo) is important as the Runtime expects to be able to mutate
80
80
  # what's returned from get_active_session_info to increment script_run_count.
81
- return cast(ActiveSessionInfo, self)
81
+ return cast("ActiveSessionInfo", self)
82
82
 
83
83
 
84
84
  class SessionStorageError(Exception):
@@ -110,7 +110,7 @@ class WStates(MutableMapping[str, Any]):
110
110
  # trying to access it. Pretend it doesn't exist.
111
111
  raise KeyError(k)
112
112
  value_field_name = cast(
113
- ValueFieldName,
113
+ "ValueFieldName",
114
114
  wstate.value.WhichOneof("value"),
115
115
  )
116
116
  value = (
@@ -252,7 +252,7 @@ class WStates(MutableMapping[str, Any]):
252
252
  for widget_id in self.states.keys()
253
253
  if self.get_serialized(widget_id)
254
254
  ]
255
- states = cast(list[WidgetStateProto], states)
255
+ states = cast("list[WidgetStateProto]", states)
256
256
  return states
257
257
 
258
258
  def call_callback(self, widget_id: str) -> None:
@@ -689,7 +689,7 @@ class SessionState:
689
689
  # Get the current value of the widget for use as its return value.
690
690
  # We return a copy, so that reference types can't be accidentally
691
691
  # mutated by user code.
692
- widget_value = cast(T, self[widget_id])
692
+ widget_value = cast("T", self[widget_id])
693
693
  widget_value = deepcopy(widget_value)
694
694
 
695
695
  # widget_value_changed indicates to the caller that the widget's
@@ -157,11 +157,11 @@ class WebsocketSessionManager(SessionManager):
157
157
  def get_session_info(self, session_id: str) -> SessionInfo | None:
158
158
  session_info = self.get_active_session_info(session_id)
159
159
  if session_info:
160
- return cast(SessionInfo, session_info)
160
+ return cast("SessionInfo", session_info)
161
161
  return self._session_storage.get(session_id)
162
162
 
163
163
  def list_sessions(self) -> list[SessionInfo]:
164
164
  return (
165
- cast(list[SessionInfo], self.list_active_sessions())
165
+ cast("list[SessionInfo]", self.list_active_sessions())
166
166
  + self._session_storage.list()
167
167
  )
@@ -51,7 +51,7 @@
51
51
  <script>
52
52
  window.prerenderReady = false
53
53
  </script>
54
- <script type="module" crossorigin src="./static/js/index.DC-G9iGy.js"></script>
54
+ <script type="module" crossorigin src="./static/js/index.BKhwcUMH.js"></script>
55
55
  <link rel="stylesheet" crossorigin href="./static/css/index.BOl9eq08.css">
56
56
  </head>
57
57
  <body>
@@ -0,0 +1 @@
1
+ .gdg-r17m35ur{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;border:none;outline:none;background-color:var(--gdg-bg-header-has-focus);border-radius:9px;padding:0 8px;box-shadow:0 0 0 1px var(--gdg-border-color);color:var(--gdg-text-group-header);min-height:var(--r17m35ur-0);font:var(--gdg-header-font-style) var(--gdg-font-family)}.gdg-c1tqibwd{padding:0 8px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--gdg-bg-header)}.gdg-d19meir1{position:absolute;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden;box-sizing:border-box;--overlay-top:var(--d19meir1-0);left:var(--d19meir1-1);top:var(--d19meir1-0);min-width:var(--d19meir1-2);min-height:var(--d19meir1-3);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:400px;max-height:calc(100vh - var(--d19meir1-4));font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);text-align:start}@-webkit-keyframes glide_fade_in-gdg-d19meir1{0%{opacity:0%}to{opacity:100%}}@keyframes glide_fade_in-gdg-d19meir1{0%{opacity:0%}to{opacity:100%}}.gdg-d19meir1.gdg-style{border-radius:2px;background-color:var(--gdg-bg-cell);box-shadow:0 0 0 1px var(--gdg-accent-color),0 0 1px #3e415666,0 6px 12px #3e415626;-webkit-animation:glide_fade_in-gdg-d19meir1 60ms 1;animation:glide_fade_in-gdg-d19meir1 60ms 1}.gdg-d19meir1.gdg-pad{padding:var(--d19meir1-5) 8.5px 3px}.gdg-d19meir1 .gdg-clip-region{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow-y:auto;overflow-x:hidden;border-radius:2px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.gdg-d19meir1 .gdg-clip-region .gdg-growing-entry{height:100%}.gdg-d19meir1 .gdg-clip-region input.gdg-input{width:100%;border:none;border-width:0;outline:none}.gdg-d19meir1 .gdg-clip-region textarea.gdg-input{border:none;border-width:0;outline:none}.gdg-b1ygi5by{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:auto;margin-bottom:auto}.gdg-b1ygi5by .boe-bubble{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:var(--gdg-rounding-radius,10px);padding:0 8px;height:20px;background-color:var(--gdg-bg-bubble);color:var(--gdg-text-dark);margin:2px}.gdg-b1ygi5by textarea{position:absolute;top:0;left:0;width:0px;height:0px;opacity:0}.gdg-u1rrojo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:21px}.gdg-u1rrojo .gdg-link-area{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;cursor:pointer;margin-right:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--gdg-link-color);-webkit-text-decoration:underline!important;text-decoration:underline!important}.gdg-u1rrojo .gdg-edit-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:32px;color:var(--gdg-accent-color);cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.gdg-u1rrojo .gdg-edit-icon>*{width:24px;height:24px}.gdg-u1rrojo textarea{position:absolute;top:0;left:0;width:0px;height:0px;opacity:0}.gdg-n15fjm3e{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:6px 0 3px;color:var(--gdg-text-dark)}.gdg-n15fjm3e>input{font-size:var(--gdg-editor-font-size);padding:0;font-family:var(--gdg-font-family);color:var(--gdg-text-dark);background-color:var(--gdg-bg-cell)}.gdg-i2iowwq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%}.gdg-i2iowwq .gdg-centering-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%}.gdg-i2iowwq .gdg-centering-container img,.gdg-i2iowwq .gdg-centering-container canvas{max-height:calc(100vh - var(--overlay-top) - 20px);object-fit:contain;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gdg-i2iowwq .gdg-centering-container canvas{max-width:380px}.gdg-i2iowwq .gdg-edit-icon{position:absolute;top:12px;right:0;width:48px;height:48px;color:var(--gdg-accent-color);cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.gdg-i2iowwq .gdg-edit-icon>*{width:24px;height:24px}.gdg-i2iowwq textarea{position:absolute;top:0;left:0;width:0px;height:0px;opacity:0}.gdg-m1pnx84e{min-width:var(--m1pnx84e-0);width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;position:relative;color:var(--gdg-text-dark)}.gdg-m1pnx84e .gdg-g1y0xocz{-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;min-width:0}.gdg-m1pnx84e .gdg-spacer{-webkit-flex:1;-ms-flex:1;flex:1}.gdg-m1pnx84e .gdg-edit-icon{position:relative;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--gdg-accent-color);padding:0;height:24px;width:24px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:all "0.125s ease";transition:all "0.125s ease";border-radius:6px}.gdg-m1pnx84e .gdg-edit-icon>*{width:16px;height:16px}.gdg-m1pnx84e .gdg-edit-hover:hover{background-color:var(--gdg-accent-light);-webkit-transition:background-color .15s;transition:background-color .15s}.gdg-m1pnx84e .gdg-checkmark-hover:hover{color:#fff;background-color:var(--gdg-accent-color)}.gdg-m1pnx84e .gdg-md-edit-textarea{position:relative;top:0;left:0;width:0px;height:0px;margin-top:25px;opacity:0;padding:0}.gdg-m1pnx84e .gdg-ml-6{margin-left:6px}.gdg-d4zsq0x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.gdg-d4zsq0x .doe-bubble{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 8px;height:24px;background-color:var(--gdg-bg-cell);color:var(--gdg-text-dark);margin:2px;border-radius:var(--gdg-rounding-radius,6px);box-shadow:0 0 1px #3e415666,0 1px 3px #3e415666}.gdg-d4zsq0x .doe-bubble img{height:16px;object-fit:contain;margin-right:4px}.gdg-d4zsq0x textarea{position:absolute;top:0;left:0;width:0px;height:0px;opacity:0}.gdg-s1dgczr6 .dvn-scroller{overflow:var(--s1dgczr6-0);-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translateZ(0)}.gdg-s1dgczr6 .dvn-hidden{visibility:hidden}.gdg-s1dgczr6 .dvn-scroll-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;pointer-events:none}.gdg-s1dgczr6 .dvn-scroll-inner>*{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.gdg-s1dgczr6 .dvn-scroll-inner .dvn-spacer{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.gdg-s1dgczr6 .dvn-scroll-inner .dvn-stack{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.gdg-s1dgczr6 .dvn-underlay>*{position:absolute;left:0;top:0}.gdg-s1dgczr6 canvas{outline:none}.gdg-s1dgczr6 canvas *{height:0}.gdg-izpuzkl{position:absolute;left:0;right:0;top:0;bottom:0;width:100%;height:100%;border-radius:0;resize:none;white-space:pre-wrap;min-width:100%;overflow:hidden;border:0;background-color:transparent;font-size:var(--gdg-editor-font-size);line-height:16px;font-family:var(--gdg-font-family);-webkit-text-fill-color:var(--gdg-text-dark);color:var(--gdg-text-dark);padding:0;margin:0}.gdg-izpuzkl::-webkit-input-placeholder{color:var(--gdg-text-light)}.gdg-izpuzkl::-moz-placeholder{color:var(--gdg-text-light)}.gdg-izpuzkl:-ms-input-placeholder{color:var(--gdg-text-light)}.gdg-izpuzkl::placeholder{color:var(--gdg-text-light)}.gdg-invalid .gdg-izpuzkl{-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration-color:#d60606;text-decoration-color:#d60606}.gdg-s69h75o{visibility:hidden;white-space:pre-wrap;word-wrap:break-word;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;min-width:100%;font-size:var(--gdg-editor-font-size);line-height:16px;font-family:var(--gdg-font-family);color:var(--gdg-text-dark);padding:0 0 2px;margin:0}.gdg-g1y0xocz{position:relative;margin-top:6px}.gdg-wmyidgi{position:relative;min-width:10px;min-height:10px;max-width:100%;max-height:100%;width:var(--wmyidgi-0);height:var(--wmyidgi-1);overflow:hidden;overflow:clip;direction:ltr}.gdg-wmyidgi>:first-child{position:absolute;left:0;top:0;width:100%;height:100%}.gdg-seveqep{position:absolute;top:4px;right:20px;background-color:var(--gdg-bg-cell);color:var(--gdg-text-dark);padding:8px;border:1px solid var(--gdg-border-color);border-radius:6px;font-size:var(--gdg-editor-font-size);-webkit-animation:gdg-search-fadein-gdg-seveqep .15s forwards;animation:gdg-search-fadein-gdg-seveqep .15s forwards}.gdg-seveqep.out{-webkit-animation:gdg-search-fadeout-gdg-seveqep .15s forwards;animation:gdg-search-fadeout-gdg-seveqep .15s forwards}.gdg-seveqep .gdg-search-bar-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.gdg-seveqep .gdg-search-status{padding-top:4px;font-size:11px}.gdg-seveqep .gdg-search-progress{position:absolute;height:4px;left:0;bottom:0;background-color:var(--gdg-text-light)}.gdg-seveqep input{width:220px;color:var(--gdg-textDark);background-color:var(--gdg-bg-cell);border:none;border-width:0;outline:none}.gdg-seveqep button{width:24px;height:24px;padding:0;border:none;outline:none;background:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;color:var(--gdg-text-medium)}.gdg-seveqep button:hover{color:var(--gdg-text-dark)}.gdg-seveqep button .button-icon{width:16px;height:16px}.gdg-seveqep button:disabled{opacity:.4;pointer-events:none}@-webkit-keyframes gdg-search-fadeout-gdg-seveqep{0%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translate(0)}to{-webkit-transform:translateX(400px);-ms-transform:translateX(400px);transform:translate(400px)}}@keyframes gdg-search-fadeout-gdg-seveqep{0%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translate(0)}to{-webkit-transform:translateX(400px);-ms-transform:translateX(400px);transform:translate(400px)}}@-webkit-keyframes gdg-search-fadein-gdg-seveqep{0%{-webkit-transform:translateX(400px);-ms-transform:translateX(400px);transform:translate(400px)}to{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translate(0)}}@keyframes gdg-search-fadein-gdg-seveqep{0%{-webkit-transform:translateX(400px);-ms-transform:translateX(400px);transform:translate(400px)}to{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translate(0)}}.gdg-mnuv029{word-break:break-word;-webkit-touch-callout:default;padding-top:6px}.gdg-mnuv029>*{margin:0}.gdg-mnuv029 *:last-child{margin-bottom:0}.gdg-mnuv029 p img{width:100%}.gdg-e1wnlokz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;padding-top:6px;color:var(--gdg-text-dark);box-sizing:border-box}.gdg-e1wnlokz *{box-sizing:border-box}.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz label{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;cursor:pointer}.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz label input{cursor:pointer;width:auto}.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz label .gdg-pill{margin-left:8px;margin-right:6px;margin-bottom:6px;border-radius:var(--gdg-rounding-radius,var(--e1wnlokz-0));min-height:var(--e1wnlokz-1);padding:2px var(--e1wnlokz-2);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font:12px var(--gdg-font-family);background-color:var(--gdg-bg-bubble);-webkit-transition:box-shadow .15s;transition:box-shadow .15s}.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz label .gdg-pill.gdg-unselected{opacity:.8}.gdg-e1wnlokz label:hover .gdg-pill{box-shadow:0 1px 4px #00000026}.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz.gdg-readonly label{cursor:default}.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz.gdg-e1wnlokz.gdg-readonly label .gdg-pill{box-shadow:none!important}.gdg-e1ywxz2x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:6px 0;color:var(--gdg-text-light)}.gdg-e1ywxz2x .gdg-active{color:var(--gdg-text-dark)}.gdg-e1ywxz2x>*{position:relative;width:16px;height:16px;cursor:pointer;margin-right:2px}.gdg-e1ywxz2x>* svg{width:100%;height:100%}.gdg-wghi2zc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.gdg-wghi2zc .glide-select{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size)}.gdg-p13nj8j0{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);color:var(--gdg-text-dark)}.gdg-p13nj8j0>div{border-radius:4px;border:1px solid var(--gdg-border-color)}.gdg-r6sia3g{display:"flex";margin:auto 8.5px;padding-bottom:3px}.gdg-w1hnqk7o .gdg-footer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;padding:20px}.gdg-w1hnqk7o .gdg-footer button{border:none;padding:8px 16px;font-size:14px;font-weight:500;font-family:var(--gdg-font-family);cursor:pointer;border-radius:var(--gdg-rounding-radius,9px)}.gdg-w1hnqk7o .gdg-save-button{background-color:var(--gdg-accent-color);color:var(--gdg-accent-fg)}.gdg-w1hnqk7o .gdg-close-button{background-color:var(--gdg-bg-header);color:var(--gdg-text-medium);margin-right:8px}.gdg-w1i61rz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;margin-top:auto;margin-bottom:auto}.gdg-w1i61rz .gdg-multi-select{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size)}.gdg-phbadu4{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);color:var(--gdg-text-dark)}.gdg-phbadu4>div{border-radius:4px;border:1px solid var(--gdg-border-color)}.gdg-s1wtovjx{min-height:26px;border:none;outline:none;background-color:transparent;font-size:var(--gdg-editor-font-size);font-family:var(--gdg-font-family);color:var(--gdg-text-dark)}.gdg-s1wtovjx::-webkit-calendar-picker-indicator{background-color:#fff}.gdg-lw5nakc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin:4px 0}.gdg-lw5nakc>button{color:var(--gdg-accent-color);font-weight:600;-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end;border:none;outline:none;background-color:transparent;-webkit-transition:background-color .2s;transition:background-color .2s;border-radius:4px;padding:6px 8px;cursor:pointer}.gdg-lw5nakc>button:hover,.gdg-lw5nakc>button:focus-visible{background-color:var(--gdg-accent-light)}.gdg-lw5nakc>button:disabled{opacity:.4;pointer-events:none}.gdg-lw5nakc .gdg-link-title-editor{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:250px}.gdg-lw5nakc .gdg-link-title-editor>input{outline:none;border:1px solid var(--gdg-border-color);border-radius:4px;box-shadow:none;padding:6px 8px;min-width:0;width:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-transition:border .2s;transition:border .2s}.gdg-lw5nakc .gdg-link-title-editor>input:not(:last-child){margin-right:4px}.gdg-lw5nakc .gdg-link-title-editor>input:focus{border:1px solid var(--gdg-accent-color)}.gdg-lw5nakc .gdg-link-title-editor:not(:last-child){margin-bottom:4px}.gdg-lw5nakc .gdg-link-title-editor>button{border:none;outline:none;border-radius:4px;background-color:transparent;cursor:pointer;-webkit-transition:background-color .2s,color .2s;transition:background-color .2s,color .2s;color:var(--gdg-text-medium)}.gdg-lw5nakc .gdg-link-title-editor>button:hover,.gdg-lw5nakc .gdg-link-title-editor>button:focus-visible{background-color:var(--gdg-accent-light);color:var(--gdg-text-dark)}
@@ -1 +1 @@
1
- import{r as e,E as n,_ as a}from"./index.DC-G9iGy.js";var o=e.forwardRef(function(t,r){var l={fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"};return e.createElement(n,a({iconAttrs:l,iconVerticalAlign:"middle",iconViewBox:"0 0 24 24"},t,{ref:r}),e.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),e.createElement("path",{d:"M16 9v10H8V9h8m-1.5-6h-5l-1 1H5v2h14V4h-3.5l-1-1zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7z"}))});o.displayName="Delete";var i=e.forwardRef(function(t,r){var l={fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"};return e.createElement(n,a({iconAttrs:l,iconVerticalAlign:"middle",iconViewBox:"0 0 24 24"},t,{ref:r}),e.createElement("rect",{width:24,height:24,fill:"none"}),e.createElement("path",{d:"M18 15v3H6v-3H4v3c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3h-2zm-1-4l-1.41-1.41L13 12.17V4h-2v8.17L8.41 9.59 7 11l5 5 5-5z"}))});i.displayName="FileDownload";export{o as D,i as F};
1
+ import{r as e,E as n,_ as a}from"./index.BKhwcUMH.js";var o=e.forwardRef(function(t,r){var l={fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"};return e.createElement(n,a({iconAttrs:l,iconVerticalAlign:"middle",iconViewBox:"0 0 24 24"},t,{ref:r}),e.createElement("path",{fill:"none",d:"M0 0h24v24H0V0z"}),e.createElement("path",{d:"M16 9v10H8V9h8m-1.5-6h-5l-1 1H5v2h14V4h-3.5l-1-1zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7z"}))});o.displayName="Delete";var i=e.forwardRef(function(t,r){var l={fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"};return e.createElement(n,a({iconAttrs:l,iconVerticalAlign:"middle",iconViewBox:"0 0 24 24"},t,{ref:r}),e.createElement("rect",{width:24,height:24,fill:"none"}),e.createElement("path",{d:"M18 15v3H6v-3H4v3c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3h-2zm-1-4l-1.41-1.41L13 12.17V4h-2v8.17L8.41 9.59 7 11l5 5 5-5z"}))});i.displayName="FileDownload";export{o as D,i as F};