streamlit-nightly 1.45.2.dev20250617__py3-none-any.whl → 1.46.1.dev20250618__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 (83) hide show
  1. streamlit/components/types/base_custom_component.py +3 -0
  2. streamlit/components/v1/custom_component.py +2 -0
  3. streamlit/config.py +9 -0
  4. streamlit/proto/NewSession_pb2.py +16 -16
  5. streamlit/proto/NewSession_pb2.pyi +7 -2
  6. streamlit/runtime/uploaded_file_manager.py +3 -0
  7. streamlit/static/index.html +1 -1
  8. streamlit/static/manifest.json +214 -214
  9. streamlit/static/static/js/{ErrorOutline.esm.1znYgwZa.js → ErrorOutline.esm.BmIZNTls.js} +1 -1
  10. streamlit/static/static/js/{FileDownload.esm.MlshysxD.js → FileDownload.esm.BANz7qEu.js} +1 -1
  11. streamlit/static/static/js/{FileHelper.DJjfImdO.js → FileHelper.Bn_I1AoA.js} +1 -1
  12. streamlit/static/static/js/{FormClearHelper.tzcHfSQm.js → FormClearHelper.DngQDUHj.js} +1 -1
  13. streamlit/static/static/js/{Hooks.CUwe1mU9.js → Hooks.BvgTYyDl.js} +1 -1
  14. streamlit/static/static/js/{InputInstructions.ibDI_m0Z.js → InputInstructions.Dz68Mi4g.js} +1 -1
  15. streamlit/static/static/js/{ProgressBar.B4yod1d4.js → ProgressBar.CBQ2YdYU.js} +1 -1
  16. streamlit/static/static/js/{RenderInPortalIfExists.sxtf_tkp.js → RenderInPortalIfExists.DbNxALcQ.js} +1 -1
  17. streamlit/static/static/js/{Toolbar.D2TSK_7z.js → Toolbar.Be9ReaBo.js} +1 -1
  18. streamlit/static/static/js/{base-input.DBGTsu79.js → base-input.CuYAUcgr.js} +1 -1
  19. streamlit/static/static/js/{checkbox.Cv3M11iz.js → checkbox.CHeWw9QN.js} +1 -1
  20. streamlit/static/static/js/{createSuper.CZYzqRu7.js → createSuper.cbLRgPSA.js} +1 -1
  21. streamlit/static/static/js/{data-grid-overlay-editor.Dnwp2SeP.js → data-grid-overlay-editor.BtDffWRm.js} +1 -1
  22. streamlit/static/static/js/{downloader.OkIJTahw.js → downloader.CqSIsk34.js} +1 -1
  23. streamlit/static/static/js/{es6.CWUYJnwB.js → es6.Cf5x23Le.js} +2 -2
  24. streamlit/static/static/js/{iframeResizer.contentWindow.BGMetL4r.js → iframeResizer.contentWindow.w5G78o8J.js} +1 -1
  25. streamlit/static/static/js/{index.CATKfyKP.js → index.3x2ivJwf.js} +1 -1
  26. streamlit/static/static/js/{index.BLLY_wCb.js → index.BThEsAWi.js} +1 -1
  27. streamlit/static/static/js/{index.cbAks8a8.js → index.BY9g96EZ.js} +1 -1
  28. streamlit/static/static/js/{index.aKXX7Ba_.js → index.BYMqFCBA.js} +1 -1
  29. streamlit/static/static/js/{index.DuQBFADi.js → index.BbnvJ70n.js} +1 -1
  30. streamlit/static/static/js/{index.DXby5BWo.js → index.Bi464CyL.js} +1 -1
  31. streamlit/static/static/js/{index.BZhFm-tC.js → index.C0eW2K8y.js} +1 -1
  32. streamlit/static/static/js/{index.DrAi2KWE.js → index.CAbis03n.js} +1 -1
  33. streamlit/static/static/js/{index.Bi_xDLKC.js → index.CBOeW9a3.js} +1 -1
  34. streamlit/static/static/js/{index.DHrbHxMA.js → index.CDPtgf1I.js} +1 -1
  35. streamlit/static/static/js/{index.DhZtGReO.js → index.CI8kv2N4.js} +1 -1
  36. streamlit/static/static/js/{index.Bio4VfuK.js → index.CIa-BnGt.js} +1 -1
  37. streamlit/static/static/js/{index.D3yL8Boz.js → index.CO4lsynG.js} +5 -5
  38. streamlit/static/static/js/{index.CP9S4-UC.js → index.CPAaINBO.js} +1 -1
  39. streamlit/static/static/js/{index.bK_LT6WV.js → index.CPybvB14.js} +1 -1
  40. streamlit/static/static/js/{index.yh03tq2H.js → index.CSmW4aEL.js} +1 -1
  41. streamlit/static/static/js/{index.cFdge3NU.js → index.CsbNNPg-.js} +1 -1
  42. streamlit/static/static/js/{index.eeGQgksq.js → index.CvAxzLGy.js} +1 -1
  43. streamlit/static/static/js/{index.vJGalypl.js → index.D3RUL8hc.js} +1 -1
  44. streamlit/static/static/js/{index.GbpCpBCj.js → index.D7skVg6V.js} +1 -1
  45. streamlit/static/static/js/{index.CyScXVPk.js → index.D9cNUJxT.js} +1 -1
  46. streamlit/static/static/js/{index.BlRNHzJT.js → index.D9rP3sec.js} +2 -2
  47. streamlit/static/static/js/{index.Dgicxx_R.js → index.DFb8oLEy.js} +1 -1
  48. streamlit/static/static/js/{index.fybg-SX6.js → index.DUFSCgUU.js} +1 -1
  49. streamlit/static/static/js/{index.CImNFEsN.js → index.DhOEtnPS.js} +1 -1
  50. streamlit/static/static/js/{index.igD8dUid.js → index.Dka0l3y3.js} +1 -1
  51. streamlit/static/static/js/{index.BvPXgYL1.js → index.DqUqQYLj.js} +1 -1
  52. streamlit/static/static/js/{index.C8UyejlW.js → index.Dve6LvwK.js} +1 -1
  53. streamlit/static/static/js/{index.CghNjnWG.js → index.E59z5B9V.js} +1 -1
  54. streamlit/static/static/js/{index.CaH9iZrA.js → index.HCf1LzCz.js} +1 -1
  55. streamlit/static/static/js/{index.BNQdHQ9A.js → index.IFt67CpH.js} +1 -1
  56. streamlit/static/static/js/{index.BRUfGLJs.js → index.Mr8WFWji.js} +1 -1
  57. streamlit/static/static/js/{index.DqoNxwFW.js → index.OWQJmAOF.js} +1 -1
  58. streamlit/static/static/js/{index.jzzHl6U7.js → index.kZ6mI-nG.js} +1 -1
  59. streamlit/static/static/js/{index.ClByuhfh.js → index.u9xbgcFq.js} +110 -111
  60. streamlit/static/static/js/{index.DxX0zYtM.js → index.vMjoJQjc.js} +1 -1
  61. streamlit/static/static/js/{index.CfU3gX6G.js → index.xUOdHmh_.js} +1 -1
  62. streamlit/static/static/js/{input.DG4M8O5Z.js → input.CI-6PkTz.js} +1 -1
  63. streamlit/static/static/js/{memory.cZDDDDRN.js → memory.C3s3Nr3T.js} +1 -1
  64. streamlit/static/static/js/{mergeWith.CbuU4RN8.js → mergeWith.BaIFtAzQ.js} +1 -1
  65. streamlit/static/static/js/{number-overlay-editor.GDhzbbBH.js → number-overlay-editor.DG_TIpZI.js} +1 -1
  66. streamlit/static/static/js/{possibleConstructorReturn.CJFaNdfh.js → possibleConstructorReturn.DnjFJxG8.js} +1 -1
  67. streamlit/static/static/js/{sandbox.SJvDMGmc.js → sandbox.DkNGv8rg.js} +1 -1
  68. streamlit/static/static/js/{textarea.CA5HbAYe.js → textarea.Wdt3uXnP.js} +1 -1
  69. streamlit/static/static/js/{timepicker.Dw_Jp_TE.js → timepicker.BEyYdc_Z.js} +1 -1
  70. streamlit/static/static/js/{toConsumableArray.DrYe4LQW.js → toConsumableArray.CAwuKyRj.js} +1 -1
  71. streamlit/static/static/js/{uniqueId.D-hUXA0O.js → uniqueId.-FDr5eeU.js} +1 -1
  72. streamlit/static/static/js/{useBasicWidgetState.ByTJlmUY.js → useBasicWidgetState.DOr4_K__.js} +1 -1
  73. streamlit/static/static/js/{useOnInputChange.4waR08fC.js → useOnInputChange.KHtPR_lb.js} +1 -1
  74. streamlit/static/static/js/{withFullScreenWrapper.BbZgX6-q.js → withFullScreenWrapper.CJ_ynFQD.js} +1 -1
  75. streamlit/testing/v1/element_tree.py +3 -0
  76. streamlit/watcher/event_based_path_watcher.py +18 -13
  77. streamlit/web/server/oidc_mixin.py +0 -1
  78. {streamlit_nightly-1.45.2.dev20250617.dist-info → streamlit_nightly-1.46.1.dev20250618.dist-info}/METADATA +1 -1
  79. {streamlit_nightly-1.45.2.dev20250617.dist-info → streamlit_nightly-1.46.1.dev20250618.dist-info}/RECORD +83 -83
  80. {streamlit_nightly-1.45.2.dev20250617.data → streamlit_nightly-1.46.1.dev20250618.data}/scripts/streamlit.cmd +0 -0
  81. {streamlit_nightly-1.45.2.dev20250617.dist-info → streamlit_nightly-1.46.1.dev20250618.dist-info}/WHEEL +0 -0
  82. {streamlit_nightly-1.45.2.dev20250617.dist-info → streamlit_nightly-1.46.1.dev20250618.dist-info}/entry_points.txt +0 -0
  83. {streamlit_nightly-1.45.2.dev20250617.dist-info → streamlit_nightly-1.46.1.dev20250618.dist-info}/top_level.txt +0 -0
@@ -98,6 +98,9 @@ class BaseCustomComponent(ABC):
98
98
  def __str__(self) -> str:
99
99
  return f"'{self.name}': {self.path if self.path is not None else self.url}"
100
100
 
101
+ def __hash__(self) -> int:
102
+ return hash((self.name, self.path, self.url, self.module_name))
103
+
101
104
  @abstractmethod
102
105
  def __eq__(self, other: object) -> bool:
103
106
  """Equality operator."""
@@ -253,6 +253,8 @@ And if you're using Streamlit Cloud, add "pyarrow" to your requirements.txt."""
253
253
  and self.module_name == other.module_name
254
254
  )
255
255
 
256
+ __hash__ = BaseCustomComponent.__hash__
257
+
256
258
  def __ne__(self, other: object) -> bool:
257
259
  """Inequality operator."""
258
260
 
streamlit/config.py CHANGED
@@ -1144,6 +1144,15 @@ _create_theme_options(
1144
1144
  """,
1145
1145
  )
1146
1146
 
1147
+ _create_theme_options(
1148
+ "linkUnderline",
1149
+ categories=["theme", CustomThemeCategories.SIDEBAR],
1150
+ description="""
1151
+ Whether or not links should be displayed with an underline.
1152
+ """,
1153
+ type_=bool,
1154
+ )
1155
+
1147
1156
  _create_theme_options(
1148
1157
  "codeBackgroundColor",
1149
1158
  categories=["theme", CustomThemeCategories.SIDEBAR],
@@ -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\"\xd4\x08\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\x0e\x62\x61se_font_size\x18\x16 \x01(\x05H\x06\x88\x01\x01\x12\x1b\n\x0e\x63ode_font_size\x18\x1c \x01(\tH\x07\x88\x01\x01\x12 \n\x13show_sidebar_border\x18\x17 \x01(\x08H\x08\x88\x01\x01\x12(\n\x07sidebar\x18\x18 \x01(\x0b\x32\x12.CustomThemeConfigH\t\x88\x01\x01\x12\"\n\x15\x63ode_background_color\x18\x19 \x01(\tH\n\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_base_font_sizeB\x11\n\x0f_code_font_sizeB\x16\n\x14_show_sidebar_borderB\n\n\x08_sidebarB\x18\n\x16_code_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\"\x84\t\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\x1b\n\x0e\x63ode_font_size\x18\x1c \x01(\tH\x08\x88\x01\x01\x12 \n\x13show_sidebar_border\x18\x17 \x01(\x08H\t\x88\x01\x01\x12(\n\x07sidebar\x18\x18 \x01(\x0b\x32\x12.CustomThemeConfigH\n\x88\x01\x01\x12\"\n\x15\x63ode_background_color\x18\x19 \x01(\tH\x0b\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\x11\n\x0f_code_font_sizeB\x16\n\x14_show_sidebar_borderB\n\n\x08_sidebarB\x18\n\x16_code_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')
20
20
 
21
21
  _globals = globals()
22
22
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -35,19 +35,19 @@ 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=1980
39
- _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_start=1676
40
- _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_end=1708
41
- _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_start=1710
42
- _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_end=1764
43
- _globals['_FONTFACE']._serialized_start=1982
44
- _globals['_FONTFACE']._serialized_end=2101
45
- _globals['_RADII']._serialized_start=2103
46
- _globals['_RADII']._serialized_end=2163
47
- _globals['_FONTSIZES']._serialized_start=2165
48
- _globals['_FONTSIZES']._serialized_end=2249
49
- _globals['_USERINFO']._serialized_start=2251
50
- _globals['_USERINFO']._serialized_end=2348
51
- _globals['_ENVIRONMENTINFO']._serialized_start=2350
52
- _globals['_ENVIRONMENTINFO']._serialized_end=2458
38
+ _globals['_CUSTOMTHEMECONFIG']._serialized_end=2028
39
+ _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_start=1705
40
+ _globals['_CUSTOMTHEMECONFIG_BASETHEME']._serialized_end=1737
41
+ _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_start=1739
42
+ _globals['_CUSTOMTHEMECONFIG_FONTFAMILY']._serialized_end=1793
43
+ _globals['_FONTFACE']._serialized_start=2030
44
+ _globals['_FONTFACE']._serialized_end=2149
45
+ _globals['_RADII']._serialized_start=2151
46
+ _globals['_RADII']._serialized_end=2211
47
+ _globals['_FONTSIZES']._serialized_start=2213
48
+ _globals['_FONTSIZES']._serialized_end=2297
49
+ _globals['_USERINFO']._serialized_start=2299
50
+ _globals['_USERINFO']._serialized_end=2396
51
+ _globals['_ENVIRONMENTINFO']._serialized_start=2398
52
+ _globals['_ENVIRONMENTINFO']._serialized_end=2506
53
53
  # @@protoc_insertion_point(module_scope)
@@ -290,6 +290,7 @@ class CustomThemeConfig(google.protobuf.message.Message):
290
290
  DATAFRAME_BORDER_COLOR_FIELD_NUMBER: builtins.int
291
291
  SHOW_WIDGET_BORDER_FIELD_NUMBER: builtins.int
292
292
  LINK_COLOR_FIELD_NUMBER: builtins.int
293
+ LINK_UNDERLINE_FIELD_NUMBER: builtins.int
293
294
  BASE_FONT_SIZE_FIELD_NUMBER: builtins.int
294
295
  CODE_FONT_SIZE_FIELD_NUMBER: builtins.int
295
296
  SHOW_SIDEBAR_BORDER_FIELD_NUMBER: builtins.int
@@ -317,6 +318,7 @@ class CustomThemeConfig(google.protobuf.message.Message):
317
318
  dataframe_border_color: builtins.str
318
319
  show_widget_border: builtins.bool
319
320
  link_color: builtins.str
321
+ link_underline: builtins.bool
320
322
  base_font_size: builtins.int
321
323
  code_font_size: builtins.str
322
324
  show_sidebar_border: builtins.bool
@@ -357,14 +359,15 @@ class CustomThemeConfig(google.protobuf.message.Message):
357
359
  dataframe_border_color: builtins.str | None = ...,
358
360
  show_widget_border: builtins.bool | None = ...,
359
361
  link_color: builtins.str | None = ...,
362
+ link_underline: builtins.bool | None = ...,
360
363
  base_font_size: builtins.int | None = ...,
361
364
  code_font_size: builtins.str | None = ...,
362
365
  show_sidebar_border: builtins.bool | None = ...,
363
366
  sidebar: global___CustomThemeConfig | None = ...,
364
367
  code_background_color: builtins.str | None = ...,
365
368
  ) -> None: ...
366
- def HasField(self, field_name: typing.Literal["_base_font_size", b"_base_font_size", "_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", "_dataframe_border_color", b"_dataframe_border_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", "button_radius", b"button_radius", "code_background_color", b"code_background_color", "code_font_size", b"code_font_size", "dataframe_border_color", b"dataframe_border_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: ...
367
- def ClearField(self, field_name: typing.Literal["_base_font_size", b"_base_font_size", "_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", "_dataframe_border_color", b"_dataframe_border_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", "button_radius", b"button_radius", "code_background_color", b"code_background_color", "code_font", b"code_font", "code_font_size", b"code_font_size", "dataframe_border_color", b"dataframe_border_color", "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: ...
369
+ def HasField(self, field_name: typing.Literal["_base_font_size", b"_base_font_size", "_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", "_dataframe_border_color", b"_dataframe_border_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_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", "dataframe_border_color", b"dataframe_border_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: ...
370
+ def ClearField(self, field_name: typing.Literal["_base_font_size", b"_base_font_size", "_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", "_dataframe_border_color", b"_dataframe_border_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_radius", b"base_radius", "body_font", b"body_font", "border_color", b"border_color", "button_radius", b"button_radius", "code_background_color", b"code_background_color", "code_font", b"code_font", "code_font_size", b"code_font_size", "dataframe_border_color", b"dataframe_border_color", "font", b"font", "font_faces", b"font_faces", "font_sizes", b"font_sizes", "heading_font", b"heading_font", "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: ...
368
371
  @typing.overload
369
372
  def WhichOneof(self, oneof_group: typing.Literal["_base_font_size", b"_base_font_size"]) -> typing.Literal["base_font_size"] | None: ...
370
373
  @typing.overload
@@ -382,6 +385,8 @@ class CustomThemeConfig(google.protobuf.message.Message):
382
385
  @typing.overload
383
386
  def WhichOneof(self, oneof_group: typing.Literal["_link_color", b"_link_color"]) -> typing.Literal["link_color"] | None: ...
384
387
  @typing.overload
388
+ def WhichOneof(self, oneof_group: typing.Literal["_link_underline", b"_link_underline"]) -> typing.Literal["link_underline"] | None: ...
389
+ @typing.overload
385
390
  def WhichOneof(self, oneof_group: typing.Literal["_show_sidebar_border", b"_show_sidebar_border"]) -> typing.Literal["show_sidebar_border"] | None: ...
386
391
  @typing.overload
387
392
  def WhichOneof(self, oneof_group: typing.Literal["_show_widget_border", b"_show_widget_border"]) -> typing.Literal["show_widget_border"] | None: ...
@@ -82,6 +82,9 @@ class UploadedFile(io.BytesIO):
82
82
  return NotImplemented
83
83
  return self.file_id == other.file_id
84
84
 
85
+ def __hash__(self) -> int:
86
+ return hash(self.file_id)
87
+
85
88
  def __repr__(self) -> str:
86
89
  return util.repr_(self)
87
90
 
@@ -37,7 +37,7 @@
37
37
  <script>
38
38
  window.prerenderReady = false
39
39
  </script>
40
- <script type="module" crossorigin src="./static/js/index.ClByuhfh.js"></script>
40
+ <script type="module" crossorigin src="./static/js/index.u9xbgcFq.js"></script>
41
41
  <link rel="stylesheet" crossorigin href="./static/css/index.CJVRHjQZ.css">
42
42
  </head>
43
43
  <body>