streamlit 1.49.0__py3-none-any.whl → 1.50.0__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 (156) hide show
  1. streamlit/column_config.py +2 -0
  2. streamlit/commands/navigation.py +3 -1
  3. streamlit/components/v1/custom_component.py +17 -42
  4. streamlit/config.py +306 -0
  5. streamlit/connections/base_connection.py +4 -2
  6. streamlit/dataframe_util.py +3 -2
  7. streamlit/delta_generator.py +2 -3
  8. streamlit/elements/arrow.py +63 -43
  9. streamlit/elements/deck_gl_json_chart.py +1 -0
  10. streamlit/elements/form.py +6 -6
  11. streamlit/elements/graphviz_chart.py +23 -6
  12. streamlit/elements/iframe.py +0 -2
  13. streamlit/elements/image.py +10 -9
  14. streamlit/elements/layouts.py +58 -11
  15. streamlit/elements/lib/built_in_chart_utils.py +95 -29
  16. streamlit/elements/lib/column_config_utils.py +5 -0
  17. streamlit/elements/lib/column_types.py +563 -144
  18. streamlit/elements/lib/dialog.py +1 -0
  19. streamlit/elements/lib/layout_utils.py +4 -4
  20. streamlit/elements/lib/pandas_styler_utils.py +30 -14
  21. streamlit/elements/lib/utils.py +17 -5
  22. streamlit/elements/map.py +1 -3
  23. streamlit/elements/media.py +2 -0
  24. streamlit/elements/metric.py +10 -32
  25. streamlit/elements/plotly_chart.py +17 -9
  26. streamlit/elements/pyplot.py +6 -6
  27. streamlit/elements/vega_charts.py +110 -44
  28. streamlit/elements/widgets/audio_input.py +48 -0
  29. streamlit/elements/widgets/button.py +27 -25
  30. streamlit/elements/widgets/button_group.py +1 -0
  31. streamlit/elements/widgets/camera_input.py +1 -0
  32. streamlit/elements/widgets/chat.py +1 -0
  33. streamlit/elements/widgets/checkbox.py +1 -0
  34. streamlit/elements/widgets/color_picker.py +1 -0
  35. streamlit/elements/widgets/data_editor.py +6 -5
  36. streamlit/elements/widgets/file_uploader.py +1 -0
  37. streamlit/elements/widgets/multiselect.py +10 -0
  38. streamlit/elements/widgets/number_input.py +3 -0
  39. streamlit/elements/widgets/radio.py +1 -0
  40. streamlit/elements/widgets/select_slider.py +1 -0
  41. streamlit/elements/widgets/selectbox.py +4 -0
  42. streamlit/elements/widgets/slider.py +1 -0
  43. streamlit/elements/widgets/text_widgets.py +6 -0
  44. streamlit/elements/widgets/time_widgets.py +9 -0
  45. streamlit/elements/write.py +1 -17
  46. streamlit/git_util.py +65 -43
  47. streamlit/material_icon_names.py +1 -1
  48. streamlit/proto/Arrow_pb2.py +10 -8
  49. streamlit/proto/Arrow_pb2.pyi +31 -2
  50. streamlit/proto/AudioInput_pb2.py +2 -2
  51. streamlit/proto/AudioInput_pb2.pyi +6 -2
  52. streamlit/proto/Block_pb2.py +11 -11
  53. streamlit/proto/Block_pb2.pyi +5 -0
  54. streamlit/proto/NewSession_pb2.py +18 -16
  55. streamlit/proto/NewSession_pb2.pyi +135 -2
  56. streamlit/runtime/app_session.py +18 -5
  57. streamlit/runtime/theme_util.py +148 -0
  58. streamlit/static/index.html +2 -2
  59. streamlit/static/manifest.json +221 -221
  60. streamlit/static/static/css/index.CHEnSPGk.css +1 -0
  61. streamlit/static/static/css/{index.C8X8rNzw.css → index.CIiu7Ygf.css} +1 -1
  62. streamlit/static/static/js/{ErrorOutline.esm.u9XvzxL8.js → ErrorOutline.esm.DUpR0_Ka.js} +1 -1
  63. streamlit/static/static/js/{FileDownload.esm.CaRyZ-b2.js → FileDownload.esm.CN4j9-1w.js} +1 -1
  64. streamlit/static/static/js/{FileHelper.Dk2SwIi3.js → FileHelper.CaIUKG91.js} +1 -1
  65. streamlit/static/static/js/{FormClearHelper.l_UPPvkg.js → FormClearHelper.DTcdrasw.js} +1 -1
  66. streamlit/static/static/js/{Hooks.BxrVEftw.js → Hooks.BRba_Own.js} +1 -1
  67. streamlit/static/static/js/InputInstructions.xnSDuYeQ.js +1 -0
  68. streamlit/static/static/js/{Particles.DkY6FDnc.js → Particles.CElH0XX2.js} +1 -1
  69. streamlit/static/static/js/{ProgressBar.BPtSM82n.js → ProgressBar.DetlP5aY.js} +2 -2
  70. streamlit/static/static/js/Toolbar.C77ar7rq.js +1 -0
  71. streamlit/static/static/js/{base-input.egUI4LjJ.js → base-input.BQft14La.js} +3 -3
  72. streamlit/static/static/js/{checkbox.ButpszcE.js → checkbox.yZOfXCeX.js} +1 -1
  73. streamlit/static/static/js/{createSuper.DYJA5xa6.js → createSuper.Dh9w1cs8.js} +1 -1
  74. streamlit/static/static/js/data-grid-overlay-editor.DcuHuCyW.js +1 -0
  75. streamlit/static/static/js/{downloader.B3TjsSPZ.js → downloader.MeHtkq8r.js} +1 -1
  76. streamlit/static/static/js/{es6.BYSNuG4D.js → es6.VpBPGCnM.js} +2 -2
  77. streamlit/static/static/js/{iframeResizer.contentWindow.CNPHJsF2.js → iframeResizer.contentWindow.yMw_ARIL.js} +1 -1
  78. streamlit/static/static/js/{index.DgpIMUsr.js → index.64ejlaaT.js} +1 -1
  79. streamlit/static/static/js/{index.BBnWuh07.js → index.6xX1278W.js} +90 -91
  80. streamlit/static/static/js/index.B-hiXRzw.js +1 -0
  81. streamlit/static/static/js/{index.DtwkPJs5.js → index.B0H9IXUJ.js} +47 -47
  82. streamlit/static/static/js/{index.0tDq1WXk.js → index.B4cAbHP6.js} +1 -1
  83. streamlit/static/static/js/{index.CFjU0x00.js → index.B4dUQfni.js} +1 -1
  84. streamlit/static/static/js/{index.BrD9sbpx.js → index.BPQo7BKk.js} +1 -1
  85. streamlit/static/static/js/index.Baqa90pe.js +2 -0
  86. streamlit/static/static/js/{index.uInpwWAP.js → index.Bj9JgOEC.js} +1 -1
  87. streamlit/static/static/js/index.BjCwMzj4.js +3 -0
  88. streamlit/static/static/js/{index.C3EXAI-u.js → index.Bm3VbPB5.js} +1 -1
  89. streamlit/static/static/js/{index.DGcW849X.js → index.Bxz2yX3P.js} +1 -1
  90. streamlit/static/static/js/{index.CeXLlclc.js → index.BycLveZ4.js} +1 -1
  91. streamlit/static/static/js/{index.CjQnYKID.js → index.C9BdUqTi.js} +1 -1
  92. streamlit/static/static/js/index.CFMf5_ez.js +197 -0
  93. streamlit/static/static/js/index.CGYqqs6j.js +1 -0
  94. streamlit/static/static/js/{index.CFePF7s4.js → index.CH1tqnSs.js} +1 -1
  95. streamlit/static/static/js/{index.BoJaJReB.js → index.CMItVsFA.js} +1 -1
  96. streamlit/static/static/js/{index.CuEFSQ-o.js → index.CTBk8Vk2.js} +1 -1
  97. streamlit/static/static/js/index.CiAQIz1H.js +7 -0
  98. streamlit/static/static/js/index.Cj7DSzVR.js +73 -0
  99. streamlit/static/static/js/index.Ck8rQ9OL.js +1 -0
  100. streamlit/static/static/js/{index.CqSRo6zQ.js → index.ClELlchS.js} +2 -2
  101. streamlit/static/static/js/{index.DP1rDFP0.js → index.Cnpi3o3E.js} +1 -1
  102. streamlit/static/static/js/{index.Cl_966eE.js → index.Ctn27_AE.js} +1 -1
  103. streamlit/static/static/js/{index.D4jR1m1z.js → index.D2QEXQq_.js} +1 -1
  104. streamlit/static/static/js/index.DH71Ezyj.js +1 -0
  105. streamlit/static/static/js/{index.CfiZGqj3.js → index.DHh-U0dK.js} +2 -2
  106. streamlit/static/static/js/{index.Bp1Of6L8.js → index.DK7hD7_w.js} +1 -1
  107. streamlit/static/static/js/{index.MQLQLR5Z.js → index.DKv_lNO7.js} +1 -1
  108. streamlit/static/static/js/index.DNLrMXgm.js +12 -0
  109. streamlit/static/static/js/index.DW0Grddz.js +1 -0
  110. streamlit/static/static/js/{index.Cb9gN2T2.js → index.Dbe-Q3C-.js} +1 -1
  111. streamlit/static/static/js/index.DcPNYEUo.js +1 -0
  112. streamlit/static/static/js/index.DuxqVQpd.js +1 -0
  113. streamlit/static/static/js/{index.BH79B25f.js → index.FFOzOWzC.js} +1 -1
  114. streamlit/static/static/js/{index.DWedOrkQ.js → index.GRUzrudl.js} +1 -1
  115. streamlit/static/static/js/{input.CbP5ZuQ7.js → input.s6pjQ49A.js} +1 -1
  116. streamlit/static/static/js/{memory.BuacVo2L.js → memory.Cuvsdfrl.js} +1 -1
  117. streamlit/static/static/js/{number-overlay-editor.BZb9zRl_.js → number-overlay-editor.DdgVR5m3.js} +1 -1
  118. streamlit/static/static/js/{possibleConstructorReturn.DSM84rOS.js → possibleConstructorReturn.CqidKeei.js} +1 -1
  119. streamlit/static/static/js/{sandbox.C480llMG.js → sandbox.CCQREcJx.js} +1 -1
  120. streamlit/static/static/js/{timepicker.BunxCVp7.js → timepicker.mkJF97Bb.js} +4 -4
  121. streamlit/static/static/js/{toConsumableArray.B4o8rEx1.js → toConsumableArray.De7I7KVR.js} +1 -1
  122. streamlit/static/static/js/{uniqueId.tii0yosY.js → uniqueId.RI1LJdtz.js} +1 -1
  123. streamlit/static/static/js/{useBasicWidgetState.Bnm4FD6K.js → useBasicWidgetState.CedkNjUW.js} +1 -1
  124. streamlit/static/static/js/{useTextInputAutoExpand.Dgtwc1m0.js → useTextInputAutoExpand.Ca7w8dVs.js} +2 -2
  125. streamlit/static/static/js/{useUpdateUiValue.DjXdMFGw.js → useUpdateUiValue.DeXelfRH.js} +1 -1
  126. streamlit/static/static/js/withFullScreenWrapper.C3561XxJ.js +1 -0
  127. streamlit/static/static/media/MaterialSymbols-Rounded.DeCZgS-4.woff2 +0 -0
  128. streamlit/string_util.py +58 -1
  129. streamlit/web/bootstrap.py +0 -31
  130. streamlit/web/server/routes.py +17 -4
  131. streamlit/web/server/server.py +1 -0
  132. {streamlit-1.49.0.dist-info → streamlit-1.50.0.dist-info}/METADATA +1 -1
  133. {streamlit-1.49.0.dist-info → streamlit-1.50.0.dist-info}/RECORD +137 -136
  134. streamlit/static/static/css/index.COe1010n.css +0 -1
  135. streamlit/static/static/js/InputInstructions.C254RU9X.js +0 -1
  136. streamlit/static/static/js/Toolbar.BO_3WBaS.js +0 -1
  137. streamlit/static/static/js/data-grid-overlay-editor.C9gQLEnU.js +0 -1
  138. streamlit/static/static/js/index.BDZorv41.js +0 -1
  139. streamlit/static/static/js/index.BeTC4Yl-.js +0 -197
  140. streamlit/static/static/js/index.BnOd05Ko.js +0 -2
  141. streamlit/static/static/js/index.Bpe4-O2W.js +0 -1
  142. streamlit/static/static/js/index.C1qCS-sd.js +0 -1
  143. streamlit/static/static/js/index.C77g9sAQ.js +0 -3
  144. streamlit/static/static/js/index.Ca3y4ztK.js +0 -1
  145. streamlit/static/static/js/index.CbwuUwu4.js +0 -12
  146. streamlit/static/static/js/index.DKb-BAE2.js +0 -1
  147. streamlit/static/static/js/index.DStzYLqM.js +0 -73
  148. streamlit/static/static/js/index.DVKQKDLu.js +0 -1
  149. streamlit/static/static/js/index.DYbRPmVF.js +0 -1
  150. streamlit/static/static/js/index.z992t-BQ.js +0 -7
  151. streamlit/static/static/js/withFullScreenWrapper.0cy2pVf5.js +0 -1
  152. streamlit/static/static/media/MaterialSymbols-Rounded.CBxVaFdk.woff2 +0 -0
  153. {streamlit-1.49.0.data → streamlit-1.50.0.data}/scripts/streamlit.cmd +0 -0
  154. {streamlit-1.49.0.dist-info → streamlit-1.50.0.dist-info}/WHEEL +0 -0
  155. {streamlit-1.49.0.dist-info → streamlit-1.50.0.dist-info}/entry_points.txt +0 -0
  156. {streamlit-1.49.0.dist-info → streamlit-1.50.0.dist-info}/top_level.txt +0 -0
@@ -80,7 +80,7 @@ class Arrow(google.protobuf.message.Message):
80
80
  """Multiple cells (continuous range) can be selected."""
81
81
 
82
82
  class SelectionMode(_SelectionMode, metaclass=_SelectionModeEnumTypeWrapper):
83
- """Available editing modes:"""
83
+ """Available selection modes:"""
84
84
 
85
85
  SINGLE_ROW: Arrow.SelectionMode.ValueType # 0
86
86
  """Only one row can be selected at a time."""
@@ -95,6 +95,29 @@ class Arrow(google.protobuf.message.Message):
95
95
  MULTI_CELL: Arrow.SelectionMode.ValueType # 5
96
96
  """Multiple cells (continuous range) can be selected."""
97
97
 
98
+ class _BorderMode:
99
+ ValueType = typing.NewType("ValueType", builtins.int)
100
+ V: typing_extensions.TypeAlias = ValueType
101
+
102
+ class _BorderModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Arrow._BorderMode.ValueType], builtins.type):
103
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
104
+ ALL: Arrow._BorderMode.ValueType # 0
105
+ """Show borders around the table and between cells."""
106
+ NONE: Arrow._BorderMode.ValueType # 1
107
+ """Show no borders."""
108
+ HORIZONTAL: Arrow._BorderMode.ValueType # 2
109
+ """Show only horizontal borders between rows."""
110
+
111
+ class BorderMode(_BorderMode, metaclass=_BorderModeEnumTypeWrapper):
112
+ """Available border modes:"""
113
+
114
+ ALL: Arrow.BorderMode.ValueType # 0
115
+ """Show borders around the table and between cells."""
116
+ NONE: Arrow.BorderMode.ValueType # 1
117
+ """Show no borders."""
118
+ HORIZONTAL: Arrow.BorderMode.ValueType # 2
119
+ """Show only horizontal borders between rows."""
120
+
98
121
  DATA_FIELD_NUMBER: builtins.int
99
122
  STYLER_FIELD_NUMBER: builtins.int
100
123
  WIDTH_FIELD_NUMBER: builtins.int
@@ -108,6 +131,7 @@ class Arrow(google.protobuf.message.Message):
108
131
  COLUMN_ORDER_FIELD_NUMBER: builtins.int
109
132
  SELECTION_MODE_FIELD_NUMBER: builtins.int
110
133
  ROW_HEIGHT_FIELD_NUMBER: builtins.int
134
+ BORDER_MODE_FIELD_NUMBER: builtins.int
111
135
  data: builtins.bytes
112
136
  """The serialized arrow dataframe"""
113
137
  width: builtins.int
@@ -128,6 +152,10 @@ class Arrow(google.protobuf.message.Message):
128
152
  """The form ID of the widget, this is required if the dataframe is editable"""
129
153
  row_height: builtins.int
130
154
  """Row height in pixels"""
155
+ border_mode: global___Arrow.BorderMode.ValueType
156
+ """How to show borders around the table and between cells. Note that this property
157
+ is only used for `st.table` at the moment.
158
+ """
131
159
  @property
132
160
  def styler(self) -> global___Styler:
133
161
  """Pandas styler information"""
@@ -156,9 +184,10 @@ class Arrow(google.protobuf.message.Message):
156
184
  column_order: collections.abc.Iterable[builtins.str] | None = ...,
157
185
  selection_mode: collections.abc.Iterable[global___Arrow.SelectionMode.ValueType] | None = ...,
158
186
  row_height: builtins.int | None = ...,
187
+ border_mode: global___Arrow.BorderMode.ValueType = ...,
159
188
  ) -> None: ...
160
189
  def HasField(self, field_name: typing.Literal["_row_height", b"_row_height", "row_height", b"row_height", "styler", b"styler"]) -> builtins.bool: ...
161
- def ClearField(self, field_name: typing.Literal["_row_height", b"_row_height", "column_order", b"column_order", "columns", b"columns", "data", b"data", "disabled", b"disabled", "editing_mode", b"editing_mode", "form_id", b"form_id", "height", b"height", "id", b"id", "row_height", b"row_height", "selection_mode", b"selection_mode", "styler", b"styler", "use_container_width", b"use_container_width", "width", b"width"]) -> None: ...
190
+ def ClearField(self, field_name: typing.Literal["_row_height", b"_row_height", "border_mode", b"border_mode", "column_order", b"column_order", "columns", b"columns", "data", b"data", "disabled", b"disabled", "editing_mode", b"editing_mode", "form_id", b"form_id", "height", b"height", "id", b"id", "row_height", b"row_height", "selection_mode", b"selection_mode", "styler", b"styler", "use_container_width", b"use_container_width", "width", b"width"]) -> None: ...
162
191
  def WhichOneof(self, oneof_group: typing.Literal["_row_height", b"_row_height"]) -> typing.Literal["row_height"] | None: ...
163
192
 
164
193
  global___Arrow = Arrow
@@ -15,7 +15,7 @@ _sym_db = _symbol_database.Default()
15
15
  from streamlit.proto import LabelVisibilityMessage_pb2 as streamlit_dot_proto_dot_LabelVisibilityMessage__pb2
16
16
 
17
17
 
18
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n streamlit/proto/AudioInput.proto\x1a,streamlit/proto/LabelVisibilityMessage.proto\"\x8b\x01\n\nAudioInput\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x0c\n\x04help\x18\x03 \x01(\t\x12\x0f\n\x07\x66orm_id\x18\x04 \x01(\t\x12\x10\n\x08\x64isabled\x18\x05 \x01(\x08\x12\x31\n\x10label_visibility\x18\x06 \x01(\x0b\x32\x17.LabelVisibilityMessageB/\n\x1c\x63om.snowflake.apps.streamlitB\x0f\x41udioInputProtob\x06proto3')
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n streamlit/proto/AudioInput.proto\x1a,streamlit/proto/LabelVisibilityMessage.proto\"\xb5\x01\n\nAudioInput\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x0c\n\x04help\x18\x03 \x01(\t\x12\x0f\n\x07\x66orm_id\x18\x04 \x01(\t\x12\x10\n\x08\x64isabled\x18\x05 \x01(\x08\x12\x31\n\x10label_visibility\x18\x06 \x01(\x0b\x32\x17.LabelVisibilityMessage\x12\x18\n\x0bsample_rate\x18\x07 \x01(\x05H\x00\x88\x01\x01\x42\x0e\n\x0c_sample_rateB/\n\x1c\x63om.snowflake.apps.streamlitB\x0f\x41udioInputProtob\x06proto3')
19
19
 
20
20
  _globals = globals()
21
21
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -24,5 +24,5 @@ if not _descriptor._USE_C_DESCRIPTORS:
24
24
  _globals['DESCRIPTOR']._loaded_options = None
25
25
  _globals['DESCRIPTOR']._serialized_options = b'\n\034com.snowflake.apps.streamlitB\017AudioInputProto'
26
26
  _globals['_AUDIOINPUT']._serialized_start=83
27
- _globals['_AUDIOINPUT']._serialized_end=222
27
+ _globals['_AUDIOINPUT']._serialized_end=264
28
28
  # @@protoc_insertion_point(module_scope)
@@ -35,11 +35,13 @@ class AudioInput(google.protobuf.message.Message):
35
35
  FORM_ID_FIELD_NUMBER: builtins.int
36
36
  DISABLED_FIELD_NUMBER: builtins.int
37
37
  LABEL_VISIBILITY_FIELD_NUMBER: builtins.int
38
+ SAMPLE_RATE_FIELD_NUMBER: builtins.int
38
39
  id: builtins.str
39
40
  label: builtins.str
40
41
  help: builtins.str
41
42
  form_id: builtins.str
42
43
  disabled: builtins.bool
44
+ sample_rate: builtins.int
43
45
  @property
44
46
  def label_visibility(self) -> streamlit.proto.LabelVisibilityMessage_pb2.LabelVisibilityMessage: ...
45
47
  def __init__(
@@ -51,8 +53,10 @@ class AudioInput(google.protobuf.message.Message):
51
53
  form_id: builtins.str = ...,
52
54
  disabled: builtins.bool = ...,
53
55
  label_visibility: streamlit.proto.LabelVisibilityMessage_pb2.LabelVisibilityMessage | None = ...,
56
+ sample_rate: builtins.int | None = ...,
54
57
  ) -> None: ...
55
- def HasField(self, field_name: typing.Literal["label_visibility", b"label_visibility"]) -> builtins.bool: ...
56
- def ClearField(self, field_name: typing.Literal["disabled", b"disabled", "form_id", b"form_id", "help", b"help", "id", b"id", "label", b"label", "label_visibility", b"label_visibility"]) -> None: ...
58
+ def HasField(self, field_name: typing.Literal["_sample_rate", b"_sample_rate", "label_visibility", b"label_visibility", "sample_rate", b"sample_rate"]) -> builtins.bool: ...
59
+ def ClearField(self, field_name: typing.Literal["_sample_rate", b"_sample_rate", "disabled", b"disabled", "form_id", b"form_id", "help", b"help", "id", b"id", "label", b"label", "label_visibility", b"label_visibility", "sample_rate", b"sample_rate"]) -> None: ...
60
+ def WhichOneof(self, oneof_group: typing.Literal["_sample_rate", b"_sample_rate"]) -> typing.Literal["sample_rate"] | None: ...
57
61
 
58
62
  global___AudioInput = AudioInput
@@ -17,7 +17,7 @@ from streamlit.proto import HeightConfig_pb2 as streamlit_dot_proto_dot_HeightCo
17
17
  from streamlit.proto import GapSize_pb2 as streamlit_dot_proto_dot_GapSize__pb2
18
18
 
19
19
 
20
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bstreamlit/proto/Block.proto\x1a!streamlit/proto/WidthConfig.proto\x1a\"streamlit/proto/HeightConfig.proto\x1a\x1dstreamlit/proto/GapSize.proto\"\xa7\x10\n\x05\x42lock\x12#\n\x08vertical\x18\x01 \x01(\x0b\x32\x0f.Block.VerticalH\x00\x12\'\n\nhorizontal\x18\x02 \x01(\x0b\x32\x11.Block.HorizontalH\x00\x12\x1f\n\x06\x63olumn\x18\x03 \x01(\x0b\x32\r.Block.ColumnH\x00\x12\'\n\nexpandable\x18\x04 \x01(\x0b\x32\x11.Block.ExpandableH\x00\x12\x1b\n\x04\x66orm\x18\x05 \x01(\x0b\x32\x0b.Block.FormH\x00\x12,\n\rtab_container\x18\x06 \x01(\x0b\x32\x13.Block.TabContainerH\x00\x12\x19\n\x03tab\x18\x07 \x01(\x0b\x32\n.Block.TabH\x00\x12*\n\x0c\x63hat_message\x18\t \x01(\x0b\x32\x12.Block.ChatMessageH\x00\x12!\n\x07popover\x18\n \x01(\x0b\x32\x0e.Block.PopoverH\x00\x12\x1f\n\x06\x64ialog\x18\x0b \x01(\x0b\x32\r.Block.DialogH\x00\x12.\n\x0e\x66lex_container\x18\r \x01(\x0b\x32\x14.Block.FlexContainerH\x00\x12\x13\n\x0b\x61llow_empty\x18\x08 \x01(\x08\x12\x0f\n\x02id\x18\x0c \x01(\tH\x01\x88\x01\x01\x12\x33\n\rheight_config\x18\x0e \x01(\x0b\x32\x17.streamlit.HeightConfigH\x02\x88\x01\x01\x12\x31\n\x0cwidth_config\x18\x0f \x01(\x0b\x32\x16.streamlit.WidthConfigH\x03\x88\x01\x01\x1a.\n\x08Vertical\x12\x0e\n\x06\x62order\x18\x01 \x01(\x08\x12\x12\n\x06height\x18\x02 \x01(\rB\x02\x18\x01\x1a\x19\n\nHorizontal\x12\x0b\n\x03gap\x18\x01 \x01(\t\x1a\x81\x04\n\rFlexContainer\x12\x0e\n\x06\x62order\x18\x01 \x01(\x08\x12(\n\ngap_config\x18\x02 \x01(\x0b\x32\x14.streamlit.GapConfig\x12\r\n\x05scale\x18\x03 \x01(\x02\x12\x31\n\tdirection\x18\x04 \x01(\x0e\x32\x1e.Block.FlexContainer.Direction\x12\x0c\n\x04wrap\x18\x05 \x01(\x08\x12-\n\x07justify\x18\x07 \x01(\x0e\x32\x1c.Block.FlexContainer.Justify\x12)\n\x05\x61lign\x18\x08 \x01(\x0e\x32\x1a.Block.FlexContainer.Align\"B\n\tDirection\x12\x17\n\x13\x44IRECTION_UNDEFINED\x10\x00\x12\x0c\n\x08VERTICAL\x10\x01\x12\x0e\n\nHORIZONTAL\x10\x02\"k\n\x07Justify\x12\x15\n\x11JUSTIFY_UNDEFINED\x10\x00\x12\x11\n\rJUSTIFY_START\x10\x01\x12\x0f\n\x0bJUSTIFY_END\x10\x02\x12\x12\n\x0eJUSTIFY_CENTER\x10\x03\x12\x11\n\rSPACE_BETWEEN\x10\x04\"[\n\x05\x41lign\x12\x13\n\x0f\x41LIGN_UNDEFINED\x10\x00\x12\x0f\n\x0b\x41LIGN_START\x10\x01\x12\r\n\tALIGN_END\x10\x02\x12\x10\n\x0c\x41LIGN_CENTER\x10\x03\x12\x0b\n\x07STRETCH\x10\x04\x1a\xef\x01\n\x06\x43olumn\x12\x0e\n\x06weight\x18\x01 \x01(\x01\x12\x0f\n\x03gap\x18\x02 \x01(\tB\x02\x18\x01\x12;\n\x12vertical_alignment\x18\x03 \x01(\x0e\x32\x1f.Block.Column.VerticalAlignment\x12\x13\n\x0bshow_border\x18\x04 \x01(\x08\x12-\n\ngap_config\x18\x05 \x01(\x0b\x32\x14.streamlit.GapConfigH\x00\x88\x01\x01\"4\n\x11VerticalAlignment\x12\x07\n\x03TOP\x10\x00\x12\n\n\x06\x43\x45NTER\x10\x01\x12\n\n\x06\x42OTTOM\x10\x02\x42\r\n\x0b_gap_config\x1aM\n\nExpandable\x12\r\n\x05label\x18\x01 \x01(\t\x12\x15\n\x08\x65xpanded\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x0c\n\x04icon\x18\x03 \x01(\tB\x0b\n\t_expanded\x1a\xb5\x01\n\x06\x44ialog\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x64ismissible\x18\x02 \x01(\x08\x12(\n\x05width\x18\x03 \x01(\x0e\x32\x19.Block.Dialog.DialogWidth\x12\x14\n\x07is_open\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12\n\n\x02id\x18\x05 \x01(\t\"/\n\x0b\x44ialogWidth\x12\t\n\x05SMALL\x10\x00\x12\t\n\x05LARGE\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x42\n\n\x08_is_open\x1aY\n\x04\x46orm\x12\x0f\n\x07\x66orm_id\x18\x01 \x01(\t\x12\x17\n\x0f\x63lear_on_submit\x18\x02 \x01(\x08\x12\x0e\n\x06\x62order\x18\x03 \x01(\x08\x12\x17\n\x0f\x65nter_to_submit\x18\x04 \x01(\x08\x1a\x0e\n\x0cTabContainer\x1a\x14\n\x03Tab\x12\r\n\x05label\x18\x01 \x01(\t\x1ag\n\x07Popover\x12\r\n\x05label\x18\x01 \x01(\t\x12\x1f\n\x13use_container_width\x18\x02 \x01(\x08\x42\x02\x18\x01\x12\x0c\n\x04help\x18\x03 \x01(\t\x12\x10\n\x08\x64isabled\x18\x04 \x01(\x08\x12\x0c\n\x04icon\x18\x05 \x01(\t\x1a\x8d\x01\n\x0b\x43hatMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x61vatar\x18\x02 \x01(\t\x12\x32\n\x0b\x61vatar_type\x18\x03 \x01(\x0e\x32\x1d.Block.ChatMessage.AvatarType\",\n\nAvatarType\x12\t\n\x05IMAGE\x10\x00\x12\t\n\x05\x45MOJI\x10\x01\x12\x08\n\x04ICON\x10\x02\x42\x06\n\x04typeB\x05\n\x03_idB\x10\n\x0e_height_configB\x0f\n\r_width_configB*\n\x1c\x63om.snowflake.apps.streamlitB\nBlockProtob\x06proto3')
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bstreamlit/proto/Block.proto\x1a!streamlit/proto/WidthConfig.proto\x1a\"streamlit/proto/HeightConfig.proto\x1a\x1dstreamlit/proto/GapSize.proto\"\xc2\x10\n\x05\x42lock\x12#\n\x08vertical\x18\x01 \x01(\x0b\x32\x0f.Block.VerticalH\x00\x12\'\n\nhorizontal\x18\x02 \x01(\x0b\x32\x11.Block.HorizontalH\x00\x12\x1f\n\x06\x63olumn\x18\x03 \x01(\x0b\x32\r.Block.ColumnH\x00\x12\'\n\nexpandable\x18\x04 \x01(\x0b\x32\x11.Block.ExpandableH\x00\x12\x1b\n\x04\x66orm\x18\x05 \x01(\x0b\x32\x0b.Block.FormH\x00\x12,\n\rtab_container\x18\x06 \x01(\x0b\x32\x13.Block.TabContainerH\x00\x12\x19\n\x03tab\x18\x07 \x01(\x0b\x32\n.Block.TabH\x00\x12*\n\x0c\x63hat_message\x18\t \x01(\x0b\x32\x12.Block.ChatMessageH\x00\x12!\n\x07popover\x18\n \x01(\x0b\x32\x0e.Block.PopoverH\x00\x12\x1f\n\x06\x64ialog\x18\x0b \x01(\x0b\x32\r.Block.DialogH\x00\x12.\n\x0e\x66lex_container\x18\r \x01(\x0b\x32\x14.Block.FlexContainerH\x00\x12\x13\n\x0b\x61llow_empty\x18\x08 \x01(\x08\x12\x0f\n\x02id\x18\x0c \x01(\tH\x01\x88\x01\x01\x12\x33\n\rheight_config\x18\x0e \x01(\x0b\x32\x17.streamlit.HeightConfigH\x02\x88\x01\x01\x12\x31\n\x0cwidth_config\x18\x0f \x01(\x0b\x32\x16.streamlit.WidthConfigH\x03\x88\x01\x01\x1a.\n\x08Vertical\x12\x0e\n\x06\x62order\x18\x01 \x01(\x08\x12\x12\n\x06height\x18\x02 \x01(\rB\x02\x18\x01\x1a\x19\n\nHorizontal\x12\x0b\n\x03gap\x18\x01 \x01(\t\x1a\x81\x04\n\rFlexContainer\x12\x0e\n\x06\x62order\x18\x01 \x01(\x08\x12(\n\ngap_config\x18\x02 \x01(\x0b\x32\x14.streamlit.GapConfig\x12\r\n\x05scale\x18\x03 \x01(\x02\x12\x31\n\tdirection\x18\x04 \x01(\x0e\x32\x1e.Block.FlexContainer.Direction\x12\x0c\n\x04wrap\x18\x05 \x01(\x08\x12-\n\x07justify\x18\x07 \x01(\x0e\x32\x1c.Block.FlexContainer.Justify\x12)\n\x05\x61lign\x18\x08 \x01(\x0e\x32\x1a.Block.FlexContainer.Align\"B\n\tDirection\x12\x17\n\x13\x44IRECTION_UNDEFINED\x10\x00\x12\x0c\n\x08VERTICAL\x10\x01\x12\x0e\n\nHORIZONTAL\x10\x02\"k\n\x07Justify\x12\x15\n\x11JUSTIFY_UNDEFINED\x10\x00\x12\x11\n\rJUSTIFY_START\x10\x01\x12\x0f\n\x0bJUSTIFY_END\x10\x02\x12\x12\n\x0eJUSTIFY_CENTER\x10\x03\x12\x11\n\rSPACE_BETWEEN\x10\x04\"[\n\x05\x41lign\x12\x13\n\x0f\x41LIGN_UNDEFINED\x10\x00\x12\x0f\n\x0b\x41LIGN_START\x10\x01\x12\r\n\tALIGN_END\x10\x02\x12\x10\n\x0c\x41LIGN_CENTER\x10\x03\x12\x0b\n\x07STRETCH\x10\x04\x1a\xef\x01\n\x06\x43olumn\x12\x0e\n\x06weight\x18\x01 \x01(\x01\x12\x0f\n\x03gap\x18\x02 \x01(\tB\x02\x18\x01\x12;\n\x12vertical_alignment\x18\x03 \x01(\x0e\x32\x1f.Block.Column.VerticalAlignment\x12\x13\n\x0bshow_border\x18\x04 \x01(\x08\x12-\n\ngap_config\x18\x05 \x01(\x0b\x32\x14.streamlit.GapConfigH\x00\x88\x01\x01\"4\n\x11VerticalAlignment\x12\x07\n\x03TOP\x10\x00\x12\n\n\x06\x43\x45NTER\x10\x01\x12\n\n\x06\x42OTTOM\x10\x02\x42\r\n\x0b_gap_config\x1aM\n\nExpandable\x12\r\n\x05label\x18\x01 \x01(\t\x12\x15\n\x08\x65xpanded\x18\x02 \x01(\x08H\x00\x88\x01\x01\x12\x0c\n\x04icon\x18\x03 \x01(\tB\x0b\n\t_expanded\x1a\xb5\x01\n\x06\x44ialog\x12\r\n\x05title\x18\x01 \x01(\t\x12\x13\n\x0b\x64ismissible\x18\x02 \x01(\x08\x12(\n\x05width\x18\x03 \x01(\x0e\x32\x19.Block.Dialog.DialogWidth\x12\x14\n\x07is_open\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12\n\n\x02id\x18\x05 \x01(\t\"/\n\x0b\x44ialogWidth\x12\t\n\x05SMALL\x10\x00\x12\t\n\x05LARGE\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x42\n\n\x08_is_open\x1aY\n\x04\x46orm\x12\x0f\n\x07\x66orm_id\x18\x01 \x01(\t\x12\x17\n\x0f\x63lear_on_submit\x18\x02 \x01(\x08\x12\x0e\n\x06\x62order\x18\x03 \x01(\x08\x12\x17\n\x0f\x65nter_to_submit\x18\x04 \x01(\x08\x1a)\n\x0cTabContainer\x12\x19\n\x11\x64\x65\x66\x61ult_tab_index\x18\x01 \x01(\x05\x1a\x14\n\x03Tab\x12\r\n\x05label\x18\x01 \x01(\t\x1ag\n\x07Popover\x12\r\n\x05label\x18\x01 \x01(\t\x12\x1f\n\x13use_container_width\x18\x02 \x01(\x08\x42\x02\x18\x01\x12\x0c\n\x04help\x18\x03 \x01(\t\x12\x10\n\x08\x64isabled\x18\x04 \x01(\x08\x12\x0c\n\x04icon\x18\x05 \x01(\t\x1a\x8d\x01\n\x0b\x43hatMessage\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x61vatar\x18\x02 \x01(\t\x12\x32\n\x0b\x61vatar_type\x18\x03 \x01(\x0e\x32\x1d.Block.ChatMessage.AvatarType\",\n\nAvatarType\x12\t\n\x05IMAGE\x10\x00\x12\t\n\x05\x45MOJI\x10\x01\x12\x08\n\x04ICON\x10\x02\x42\x06\n\x04typeB\x05\n\x03_idB\x10\n\x0e_height_configB\x0f\n\r_width_configB*\n\x1c\x63om.snowflake.apps.streamlitB\nBlockProtob\x06proto3')
21
21
 
22
22
  _globals = globals()
23
23
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -32,7 +32,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
32
32
  _globals['_BLOCK_POPOVER'].fields_by_name['use_container_width']._loaded_options = None
33
33
  _globals['_BLOCK_POPOVER'].fields_by_name['use_container_width']._serialized_options = b'\030\001'
34
34
  _globals['_BLOCK']._serialized_start=134
35
- _globals['_BLOCK']._serialized_end=2221
35
+ _globals['_BLOCK']._serialized_end=2248
36
36
  _globals['_BLOCK_VERTICAL']._serialized_start=699
37
37
  _globals['_BLOCK_VERTICAL']._serialized_end=745
38
38
  _globals['_BLOCK_HORIZONTAL']._serialized_start=747
@@ -58,13 +58,13 @@ if not _descriptor._USE_C_DESCRIPTORS:
58
58
  _globals['_BLOCK_FORM']._serialized_start=1795
59
59
  _globals['_BLOCK_FORM']._serialized_end=1884
60
60
  _globals['_BLOCK_TABCONTAINER']._serialized_start=1886
61
- _globals['_BLOCK_TABCONTAINER']._serialized_end=1900
62
- _globals['_BLOCK_TAB']._serialized_start=1902
63
- _globals['_BLOCK_TAB']._serialized_end=1922
64
- _globals['_BLOCK_POPOVER']._serialized_start=1924
65
- _globals['_BLOCK_POPOVER']._serialized_end=2027
66
- _globals['_BLOCK_CHATMESSAGE']._serialized_start=2030
67
- _globals['_BLOCK_CHATMESSAGE']._serialized_end=2171
68
- _globals['_BLOCK_CHATMESSAGE_AVATARTYPE']._serialized_start=2127
69
- _globals['_BLOCK_CHATMESSAGE_AVATARTYPE']._serialized_end=2171
61
+ _globals['_BLOCK_TABCONTAINER']._serialized_end=1927
62
+ _globals['_BLOCK_TAB']._serialized_start=1929
63
+ _globals['_BLOCK_TAB']._serialized_end=1949
64
+ _globals['_BLOCK_POPOVER']._serialized_start=1951
65
+ _globals['_BLOCK_POPOVER']._serialized_end=2054
66
+ _globals['_BLOCK_CHATMESSAGE']._serialized_start=2057
67
+ _globals['_BLOCK_CHATMESSAGE']._serialized_end=2198
68
+ _globals['_BLOCK_CHATMESSAGE_AVATARTYPE']._serialized_start=2154
69
+ _globals['_BLOCK_CHATMESSAGE_AVATARTYPE']._serialized_end=2198
70
70
  # @@protoc_insertion_point(module_scope)
@@ -290,9 +290,14 @@ class Block(google.protobuf.message.Message):
290
290
  class TabContainer(google.protobuf.message.Message):
291
291
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
292
292
 
293
+ DEFAULT_TAB_INDEX_FIELD_NUMBER: builtins.int
294
+ default_tab_index: builtins.int
293
295
  def __init__(
294
296
  self,
297
+ *,
298
+ default_tab_index: builtins.int = ...,
295
299
  ) -> None: ...
300
+ def ClearField(self, field_name: typing.Literal["default_tab_index", b"default_tab_index"]) -> None: ...
296
301
 
297
302
  @typing.final
298
303
  class Tab(google.protobuf.message.Message):
@@ -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\"\xbf\x0b\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\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(\n\x07sidebar\x18\x18 \x01(\x0b\x32\x12.CustomThemeConfigH\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\" \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\n\n\x08_sidebarB\x18\n\x16_code_background_colorB$\n\"_dataframe_header_background_color\"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\"<\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\"\xae\x14\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(\n\x07sidebar\x18\x18 \x01(\x0b\x32\x12.CustomThemeConfigH\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\" \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\n\n\x08_sidebarB\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_color\"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,19 +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=2343
39
- _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_start=1940
40
- _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_end=1972
41
- _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_start=1974
42
- _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_end=2028
43
- _globals['_FONTFACE']._serialized_start=2345
44
- _globals['_FONTFACE']._serialized_end=2464
45
- _globals['_RADII']._serialized_start=2466
46
- _globals['_RADII']._serialized_end=2526
47
- _globals['_FONTSIZES']._serialized_start=2528
48
- _globals['_FONTSIZES']._serialized_end=2612
49
- _globals['_USERINFO']._serialized_start=2614
50
- _globals['_USERINFO']._serialized_end=2711
51
- _globals['_ENVIRONMENTINFO']._serialized_start=2713
52
- _globals['_ENVIRONMENTINFO']._serialized_end=2821
38
+ _globals['_CUSTOMTHEMECONFIG']._serialized_end=3478
39
+ _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_start=2630
40
+ _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_end=2662
41
+ _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_start=2664
42
+ _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_end=2718
43
+ _globals['_FONTFACE']._serialized_start=3480
44
+ _globals['_FONTFACE']._serialized_end=3599
45
+ _globals['_FONTSOURCE']._serialized_start=3601
46
+ _globals['_FONTSOURCE']._serialized_end=3654
47
+ _globals['_RADII']._serialized_start=3656
48
+ _globals['_RADII']._serialized_end=3716
49
+ _globals['_FONTSIZES']._serialized_start=3718
50
+ _globals['_FONTSIZES']._serialized_end=3802
51
+ _globals['_USERINFO']._serialized_start=3804
52
+ _globals['_USERINFO']._serialized_end=3901
53
+ _globals['_ENVIRONMENTINFO']._serialized_start=3903
54
+ _globals['_ENVIRONMENTINFO']._serialized_end=4011
53
55
  # @@protoc_insertion_point(module_scope)
@@ -282,6 +282,7 @@ class CustomThemeConfig(google.protobuf.message.Message):
282
282
  BODY_FONT_FIELD_NUMBER: builtins.int
283
283
  CODE_FONT_FIELD_NUMBER: builtins.int
284
284
  FONT_FACES_FIELD_NUMBER: builtins.int
285
+ FONT_SOURCES_FIELD_NUMBER: builtins.int
285
286
  FONT_SIZES_FIELD_NUMBER: builtins.int
286
287
  SKELETON_BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
287
288
  BASE_RADIUS_FIELD_NUMBER: builtins.int
@@ -303,6 +304,27 @@ class CustomThemeConfig(google.protobuf.message.Message):
303
304
  DATAFRAME_HEADER_BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
304
305
  CHART_CATEGORICAL_COLORS_FIELD_NUMBER: builtins.int
305
306
  CHART_SEQUENTIAL_COLORS_FIELD_NUMBER: builtins.int
307
+ RED_COLOR_FIELD_NUMBER: builtins.int
308
+ ORANGE_COLOR_FIELD_NUMBER: builtins.int
309
+ YELLOW_COLOR_FIELD_NUMBER: builtins.int
310
+ BLUE_COLOR_FIELD_NUMBER: builtins.int
311
+ GREEN_COLOR_FIELD_NUMBER: builtins.int
312
+ VIOLET_COLOR_FIELD_NUMBER: builtins.int
313
+ GRAY_COLOR_FIELD_NUMBER: builtins.int
314
+ RED_BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
315
+ ORANGE_BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
316
+ YELLOW_BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
317
+ BLUE_BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
318
+ GREEN_BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
319
+ VIOLET_BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
320
+ GRAY_BACKGROUND_COLOR_FIELD_NUMBER: builtins.int
321
+ RED_TEXT_COLOR_FIELD_NUMBER: builtins.int
322
+ ORANGE_TEXT_COLOR_FIELD_NUMBER: builtins.int
323
+ YELLOW_TEXT_COLOR_FIELD_NUMBER: builtins.int
324
+ BLUE_TEXT_COLOR_FIELD_NUMBER: builtins.int
325
+ GREEN_TEXT_COLOR_FIELD_NUMBER: builtins.int
326
+ VIOLET_TEXT_COLOR_FIELD_NUMBER: builtins.int
327
+ GRAY_TEXT_COLOR_FIELD_NUMBER: builtins.int
306
328
  primary_color: builtins.str
307
329
  secondary_background_color: builtins.str
308
330
  background_color: builtins.str
@@ -333,6 +355,30 @@ class CustomThemeConfig(google.protobuf.message.Message):
333
355
  show_sidebar_border: builtins.bool
334
356
  code_background_color: builtins.str
335
357
  dataframe_header_background_color: builtins.str
358
+ red_color: builtins.str
359
+ """Main color configs:"""
360
+ orange_color: builtins.str
361
+ yellow_color: builtins.str
362
+ blue_color: builtins.str
363
+ green_color: builtins.str
364
+ violet_color: builtins.str
365
+ gray_color: builtins.str
366
+ red_background_color: builtins.str
367
+ """Background color configs:"""
368
+ orange_background_color: builtins.str
369
+ yellow_background_color: builtins.str
370
+ blue_background_color: builtins.str
371
+ green_background_color: builtins.str
372
+ violet_background_color: builtins.str
373
+ gray_background_color: builtins.str
374
+ red_text_color: builtins.str
375
+ """Text color configs:"""
376
+ orange_text_color: builtins.str
377
+ yellow_text_color: builtins.str
378
+ blue_text_color: builtins.str
379
+ green_text_color: builtins.str
380
+ violet_text_color: builtins.str
381
+ gray_text_color: builtins.str
336
382
  @property
337
383
  def radii(self) -> global___Radii:
338
384
  """DEPRECATED: Please use the base_radius theme config instead:"""
@@ -340,6 +386,8 @@ class CustomThemeConfig(google.protobuf.message.Message):
340
386
  @property
341
387
  def font_faces(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FontFace]: ...
342
388
  @property
389
+ def font_sources(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FontSource]: ...
390
+ @property
343
391
  def font_sizes(self) -> global___FontSizes:
344
392
  """DEPRECATED: Please use the base_font_size theme config instead:"""
345
393
 
@@ -369,6 +417,7 @@ class CustomThemeConfig(google.protobuf.message.Message):
369
417
  body_font: builtins.str = ...,
370
418
  code_font: builtins.str = ...,
371
419
  font_faces: collections.abc.Iterable[global___FontFace] | None = ...,
420
+ font_sources: collections.abc.Iterable[global___FontSource] | None = ...,
372
421
  font_sizes: global___FontSizes | None = ...,
373
422
  skeleton_background_color: builtins.str = ...,
374
423
  base_radius: builtins.str | None = ...,
@@ -390,9 +439,30 @@ class CustomThemeConfig(google.protobuf.message.Message):
390
439
  dataframe_header_background_color: builtins.str | None = ...,
391
440
  chart_categorical_colors: collections.abc.Iterable[builtins.str] | None = ...,
392
441
  chart_sequential_colors: collections.abc.Iterable[builtins.str] | None = ...,
442
+ red_color: builtins.str | None = ...,
443
+ orange_color: builtins.str | None = ...,
444
+ yellow_color: builtins.str | None = ...,
445
+ blue_color: builtins.str | None = ...,
446
+ green_color: builtins.str | None = ...,
447
+ violet_color: builtins.str | None = ...,
448
+ gray_color: builtins.str | None = ...,
449
+ red_background_color: builtins.str | None = ...,
450
+ orange_background_color: builtins.str | None = ...,
451
+ yellow_background_color: builtins.str | None = ...,
452
+ blue_background_color: builtins.str | None = ...,
453
+ green_background_color: builtins.str | None = ...,
454
+ violet_background_color: builtins.str | None = ...,
455
+ gray_background_color: builtins.str | None = ...,
456
+ red_text_color: builtins.str | None = ...,
457
+ orange_text_color: builtins.str | None = ...,
458
+ yellow_text_color: builtins.str | None = ...,
459
+ blue_text_color: builtins.str | None = ...,
460
+ green_text_color: builtins.str | None = ...,
461
+ violet_text_color: builtins.str | None = ...,
462
+ gray_text_color: builtins.str | None = ...,
393
463
  ) -> None: ...
394
- def HasField(self, field_name: typing.Literal["_base_font_size", b"_base_font_size", "_base_font_weight", b"_base_font_weight", "_base_radius", b"_base_radius", "_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", "_dataframe_border_color", b"_dataframe_border_color", "_dataframe_header_background_color", b"_dataframe_header_background_color", "_link_color", b"_link_color", "_link_underline", b"_link_underline", "_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_font_weight", b"base_font_weight", "base_radius", b"base_radius", "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", "dataframe_border_color", b"dataframe_border_color", "dataframe_header_background_color", b"dataframe_header_background_color", "font_sizes", b"font_sizes", "link_color", b"link_color", "link_underline", b"link_underline", "radii", b"radii", "show_sidebar_border", b"show_sidebar_border", "show_widget_border", b"show_widget_border", "sidebar", b"sidebar"]) -> builtins.bool: ...
395
- def ClearField(self, field_name: typing.Literal["_base_font_size", b"_base_font_size", "_base_font_weight", b"_base_font_weight", "_base_radius", b"_base_radius", "_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", "_dataframe_border_color", b"_dataframe_border_color", "_dataframe_header_background_color", b"_dataframe_header_background_color", "_link_color", b"_link_color", "_link_underline", b"_link_underline", "_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_font_weight", b"base_font_weight", "base_radius", b"base_radius", "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", "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", "heading_font", b"heading_font", "heading_font_sizes", b"heading_font_sizes", "heading_font_weights", b"heading_font_weights", "link_color", b"link_color", "link_underline", b"link_underline", "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: ...
464
+ def HasField(self, field_name: 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", "_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", "_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", "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", "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"]) -> builtins.bool: ...
465
+ def ClearField(self, field_name: 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", "_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", "_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", "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", "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"]) -> None: ...
396
466
  @typing.overload
397
467
  def WhichOneof(self, oneof_group: typing.Literal["_base_font_size", b"_base_font_size"]) -> typing.Literal["base_font_size"] | None: ...
398
468
  @typing.overload
@@ -400,6 +470,12 @@ class CustomThemeConfig(google.protobuf.message.Message):
400
470
  @typing.overload
401
471
  def WhichOneof(self, oneof_group: typing.Literal["_base_radius", b"_base_radius"]) -> typing.Literal["base_radius"] | None: ...
402
472
  @typing.overload
473
+ def WhichOneof(self, oneof_group: typing.Literal["_blue_background_color", b"_blue_background_color"]) -> typing.Literal["blue_background_color"] | None: ...
474
+ @typing.overload
475
+ def WhichOneof(self, oneof_group: typing.Literal["_blue_color", b"_blue_color"]) -> typing.Literal["blue_color"] | None: ...
476
+ @typing.overload
477
+ def WhichOneof(self, oneof_group: typing.Literal["_blue_text_color", b"_blue_text_color"]) -> typing.Literal["blue_text_color"] | None: ...
478
+ @typing.overload
403
479
  def WhichOneof(self, oneof_group: typing.Literal["_border_color", b"_border_color"]) -> typing.Literal["border_color"] | None: ...
404
480
  @typing.overload
405
481
  def WhichOneof(self, oneof_group: typing.Literal["_button_radius", b"_button_radius"]) -> typing.Literal["button_radius"] | None: ...
@@ -414,15 +490,51 @@ class CustomThemeConfig(google.protobuf.message.Message):
414
490
  @typing.overload
415
491
  def WhichOneof(self, oneof_group: typing.Literal["_dataframe_header_background_color", b"_dataframe_header_background_color"]) -> typing.Literal["dataframe_header_background_color"] | None: ...
416
492
  @typing.overload
493
+ def WhichOneof(self, oneof_group: typing.Literal["_gray_background_color", b"_gray_background_color"]) -> typing.Literal["gray_background_color"] | None: ...
494
+ @typing.overload
495
+ def WhichOneof(self, oneof_group: typing.Literal["_gray_color", b"_gray_color"]) -> typing.Literal["gray_color"] | None: ...
496
+ @typing.overload
497
+ def WhichOneof(self, oneof_group: typing.Literal["_gray_text_color", b"_gray_text_color"]) -> typing.Literal["gray_text_color"] | None: ...
498
+ @typing.overload
499
+ def WhichOneof(self, oneof_group: typing.Literal["_green_background_color", b"_green_background_color"]) -> typing.Literal["green_background_color"] | None: ...
500
+ @typing.overload
501
+ def WhichOneof(self, oneof_group: typing.Literal["_green_color", b"_green_color"]) -> typing.Literal["green_color"] | None: ...
502
+ @typing.overload
503
+ def WhichOneof(self, oneof_group: typing.Literal["_green_text_color", b"_green_text_color"]) -> typing.Literal["green_text_color"] | None: ...
504
+ @typing.overload
417
505
  def WhichOneof(self, oneof_group: typing.Literal["_link_color", b"_link_color"]) -> typing.Literal["link_color"] | None: ...
418
506
  @typing.overload
419
507
  def WhichOneof(self, oneof_group: typing.Literal["_link_underline", b"_link_underline"]) -> typing.Literal["link_underline"] | None: ...
420
508
  @typing.overload
509
+ def WhichOneof(self, oneof_group: typing.Literal["_orange_background_color", b"_orange_background_color"]) -> typing.Literal["orange_background_color"] | None: ...
510
+ @typing.overload
511
+ def WhichOneof(self, oneof_group: typing.Literal["_orange_color", b"_orange_color"]) -> typing.Literal["orange_color"] | None: ...
512
+ @typing.overload
513
+ def WhichOneof(self, oneof_group: typing.Literal["_orange_text_color", b"_orange_text_color"]) -> typing.Literal["orange_text_color"] | None: ...
514
+ @typing.overload
515
+ def WhichOneof(self, oneof_group: typing.Literal["_red_background_color", b"_red_background_color"]) -> typing.Literal["red_background_color"] | None: ...
516
+ @typing.overload
517
+ def WhichOneof(self, oneof_group: typing.Literal["_red_color", b"_red_color"]) -> typing.Literal["red_color"] | None: ...
518
+ @typing.overload
519
+ def WhichOneof(self, oneof_group: typing.Literal["_red_text_color", b"_red_text_color"]) -> typing.Literal["red_text_color"] | None: ...
520
+ @typing.overload
421
521
  def WhichOneof(self, oneof_group: typing.Literal["_show_sidebar_border", b"_show_sidebar_border"]) -> typing.Literal["show_sidebar_border"] | None: ...
422
522
  @typing.overload
423
523
  def WhichOneof(self, oneof_group: typing.Literal["_show_widget_border", b"_show_widget_border"]) -> typing.Literal["show_widget_border"] | None: ...
424
524
  @typing.overload
425
525
  def WhichOneof(self, oneof_group: typing.Literal["_sidebar", b"_sidebar"]) -> typing.Literal["sidebar"] | None: ...
526
+ @typing.overload
527
+ def WhichOneof(self, oneof_group: typing.Literal["_violet_background_color", b"_violet_background_color"]) -> typing.Literal["violet_background_color"] | None: ...
528
+ @typing.overload
529
+ def WhichOneof(self, oneof_group: typing.Literal["_violet_color", b"_violet_color"]) -> typing.Literal["violet_color"] | None: ...
530
+ @typing.overload
531
+ def WhichOneof(self, oneof_group: typing.Literal["_violet_text_color", b"_violet_text_color"]) -> typing.Literal["violet_text_color"] | None: ...
532
+ @typing.overload
533
+ def WhichOneof(self, oneof_group: typing.Literal["_yellow_background_color", b"_yellow_background_color"]) -> typing.Literal["yellow_background_color"] | None: ...
534
+ @typing.overload
535
+ def WhichOneof(self, oneof_group: typing.Literal["_yellow_color", b"_yellow_color"]) -> typing.Literal["yellow_color"] | None: ...
536
+ @typing.overload
537
+ def WhichOneof(self, oneof_group: typing.Literal["_yellow_text_color", b"_yellow_text_color"]) -> typing.Literal["yellow_text_color"] | None: ...
426
538
 
427
539
  global___CustomThemeConfig = CustomThemeConfig
428
540
 
@@ -461,6 +573,27 @@ class FontFace(google.protobuf.message.Message):
461
573
 
462
574
  global___FontFace = FontFace
463
575
 
576
+ @typing.final
577
+ class FontSource(google.protobuf.message.Message):
578
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
579
+
580
+ CONFIG_NAME_FIELD_NUMBER: builtins.int
581
+ SOURCE_URL_FIELD_NUMBER: builtins.int
582
+ config_name: builtins.str
583
+ """Supports passing links to font config options - these are the sources
584
+ used in the <link> tag (href) to embed the font in html
585
+ """
586
+ source_url: builtins.str
587
+ def __init__(
588
+ self,
589
+ *,
590
+ config_name: builtins.str = ...,
591
+ source_url: builtins.str = ...,
592
+ ) -> None: ...
593
+ def ClearField(self, field_name: typing.Literal["config_name", b"config_name", "source_url", b"source_url"]) -> None: ...
594
+
595
+ global___FontSource = FontSource
596
+
464
597
  @typing.final
465
598
  class Radii(google.protobuf.message.Message):
466
599
  """DEPRECATED: Please use the base_radius theme config instead."""
@@ -45,6 +45,7 @@ from streamlit.runtime.metrics_util import Installation
45
45
  from streamlit.runtime.pages_manager import PagesManager
46
46
  from streamlit.runtime.scriptrunner import RerunData, ScriptRunner, ScriptRunnerEvent
47
47
  from streamlit.runtime.secrets import secrets_singleton
48
+ from streamlit.runtime.theme_util import parse_fonts_with_source
48
49
  from streamlit.string_util import to_snake_case
49
50
  from streamlit.version import STREAMLIT_VERSION_STRING
50
51
  from streamlit.watcher import LocalSourcesWatcher
@@ -810,6 +811,12 @@ class AppSession:
810
811
  else:
811
812
  msg.git_info_changed.state = GitInfo.GitStates.DEFAULT
812
813
 
814
+ _LOGGER.debug(
815
+ "Git information found. Name: %s, Branch: %s, Module: %s",
816
+ repository_name,
817
+ branch,
818
+ module,
819
+ )
813
820
  self._enqueue_forward_msg(msg)
814
821
  except Exception as ex:
815
822
  # Users may never even install Git in the first place, so this
@@ -946,6 +953,8 @@ def _populate_theme_msg(msg: CustomThemeConfig, section: str = "theme") -> None:
946
953
  "base",
947
954
  "font",
948
955
  "fontFaces",
956
+ "codeFont",
957
+ "headingFont",
949
958
  "headingFontSizes",
950
959
  "headingFontWeights",
951
960
  "chartCategoricalColors",
@@ -975,11 +984,15 @@ def _populate_theme_msg(msg: CustomThemeConfig, section: str = "theme") -> None:
975
984
  else:
976
985
  msg.base = base_map[base]
977
986
 
978
- # Since the font field uses the deprecated enum, we need to put the font
979
- # config into the body_font field instead:
980
- body_font = theme_opts.get("font", None)
981
- if body_font:
982
- msg.body_font = body_font
987
+ # Handle font, codeFont, and headingFont config options and if they are
988
+ # specified with a source URL
989
+ msg = parse_fonts_with_source(
990
+ msg,
991
+ theme_opts.get("font", None),
992
+ theme_opts.get("codeFont", None),
993
+ theme_opts.get("headingFont", None),
994
+ section,
995
+ )
983
996
 
984
997
  font_faces = theme_opts.get("fontFaces", None)
985
998
  # If fontFaces was configured via config.toml, it's already a parsed list of