streamlit 1.50.0__tar.gz → 1.51.0__tar.gz

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 (608) hide show
  1. {streamlit-1.50.0 → streamlit-1.51.0}/PKG-INFO +4 -5
  2. {streamlit-1.50.0 → streamlit-1.51.0}/setup.py +6 -11
  3. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/__init__.py +4 -1
  4. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/commands/navigation.py +4 -6
  5. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/commands/page_config.py +4 -6
  6. streamlit-1.51.0/streamlit/components/v2/__init__.py +458 -0
  7. streamlit-1.51.0/streamlit/components/v2/bidi_component/__init__.py +20 -0
  8. streamlit-1.51.0/streamlit/components/v2/bidi_component/constants.py +29 -0
  9. streamlit-1.51.0/streamlit/components/v2/bidi_component/main.py +386 -0
  10. streamlit-1.51.0/streamlit/components/v2/bidi_component/serialization.py +265 -0
  11. streamlit-1.51.0/streamlit/components/v2/bidi_component/state.py +92 -0
  12. streamlit-1.51.0/streamlit/components/v2/component_definition_resolver.py +143 -0
  13. streamlit-1.51.0/streamlit/components/v2/component_file_watcher.py +403 -0
  14. streamlit-1.51.0/streamlit/components/v2/component_manager.py +431 -0
  15. streamlit-1.51.0/streamlit/components/v2/component_manifest_handler.py +122 -0
  16. streamlit-1.51.0/streamlit/components/v2/component_path_utils.py +245 -0
  17. streamlit-1.51.0/streamlit/components/v2/component_registry.py +409 -0
  18. streamlit-1.51.0/streamlit/components/v2/get_bidi_component_manager.py +51 -0
  19. streamlit-1.51.0/streamlit/components/v2/manifest_scanner.py +615 -0
  20. streamlit-1.51.0/streamlit/components/v2/presentation.py +198 -0
  21. streamlit-1.51.0/streamlit/components/v2/types.py +324 -0
  22. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/config.py +456 -53
  23. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/config_option.py +4 -1
  24. streamlit-1.51.0/streamlit/config_util.py +832 -0
  25. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/dataframe_util.py +15 -8
  26. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/delta_generator.py +6 -4
  27. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/delta_generator_singletons.py +3 -1
  28. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/deprecation_util.py +17 -6
  29. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/arrow.py +37 -9
  30. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/deck_gl_json_chart.py +97 -39
  31. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/dialog_decorator.py +2 -1
  32. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/exception.py +3 -1
  33. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/graphviz_chart.py +1 -3
  34. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/heading.py +3 -5
  35. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/image.py +2 -4
  36. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/layouts.py +31 -11
  37. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/built_in_chart_utils.py +1 -3
  38. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/color_util.py +8 -18
  39. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/column_config_utils.py +4 -8
  40. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/column_types.py +40 -12
  41. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/dialog.py +2 -2
  42. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/image_utils.py +3 -5
  43. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/layout_utils.py +50 -13
  44. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/mutable_status_container.py +2 -2
  45. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/options_selector_utils.py +2 -2
  46. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/utils.py +4 -4
  47. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/map.py +80 -37
  48. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/media.py +5 -7
  49. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/metric.py +3 -5
  50. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/pdf.py +2 -4
  51. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/plotly_chart.py +125 -17
  52. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/progress.py +2 -4
  53. streamlit-1.51.0/streamlit/elements/space.py +113 -0
  54. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/vega_charts.py +339 -148
  55. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/audio_input.py +5 -5
  56. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/button.py +2 -4
  57. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/button_group.py +33 -7
  58. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/camera_input.py +2 -4
  59. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/chat.py +7 -1
  60. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/color_picker.py +1 -1
  61. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/data_editor.py +28 -24
  62. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/file_uploader.py +5 -10
  63. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/multiselect.py +4 -3
  64. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/number_input.py +2 -4
  65. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/radio.py +10 -3
  66. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/select_slider.py +8 -5
  67. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/selectbox.py +6 -3
  68. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/slider.py +38 -42
  69. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/time_widgets.py +6 -12
  70. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/write.py +27 -6
  71. streamlit-1.51.0/streamlit/emojis.py +34 -0
  72. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/errors.py +115 -0
  73. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/hello/hello.py +8 -0
  74. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/hello/utils.py +2 -1
  75. streamlit-1.51.0/streamlit/material_icon_names.py +25 -0
  76. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/navigation/page.py +4 -1
  77. streamlit-1.51.0/streamlit/proto/ArrowData_pb2.py +27 -0
  78. streamlit-1.51.0/streamlit/proto/ArrowData_pb2.pyi +46 -0
  79. streamlit-1.51.0/streamlit/proto/BidiComponent_pb2.py +34 -0
  80. streamlit-1.51.0/streamlit/proto/BidiComponent_pb2.pyi +153 -0
  81. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Block_pb2.py +7 -7
  82. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Block_pb2.pyi +4 -1
  83. streamlit-1.51.0/streamlit/proto/DeckGlJsonChart_pb2.py +35 -0
  84. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/DeckGlJsonChart_pb2.pyi +9 -3
  85. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Element_pb2.py +5 -3
  86. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Element_pb2.pyi +14 -4
  87. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/HeightConfig_pb2.py +2 -2
  88. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/HeightConfig_pb2.pyi +6 -3
  89. streamlit-1.51.0/streamlit/proto/NewSession_pb2.py +55 -0
  90. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/NewSession_pb2.pyi +25 -6
  91. streamlit-1.51.0/streamlit/proto/PlotlyChart_pb2.py +33 -0
  92. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PlotlyChart_pb2.pyi +3 -1
  93. streamlit-1.51.0/streamlit/proto/Space_pb2.py +27 -0
  94. streamlit-1.51.0/streamlit/proto/Space_pb2.pyi +42 -0
  95. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/WidgetStates_pb2.py +2 -2
  96. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/WidgetStates_pb2.pyi +13 -3
  97. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/WidthConfig_pb2.py +2 -2
  98. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/WidthConfig_pb2.pyi +6 -3
  99. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/app_session.py +27 -1
  100. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/cache_data_api.py +4 -4
  101. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/cache_errors.py +4 -1
  102. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/cache_resource_api.py +3 -2
  103. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/cache_utils.py +2 -1
  104. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/cached_message_replay.py +3 -3
  105. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/hashing.py +3 -4
  106. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/legacy_cache_api.py +2 -1
  107. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/connection_factory.py +1 -3
  108. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/forward_msg_queue.py +4 -1
  109. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/fragment.py +2 -1
  110. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/memory_media_file_storage.py +1 -1
  111. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/metrics_util.py +6 -2
  112. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/runtime.py +14 -0
  113. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/scriptrunner/exec_code.py +2 -1
  114. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/scriptrunner/script_runner.py +2 -2
  115. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/scriptrunner_utils/script_run_context.py +3 -6
  116. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/secrets.py +2 -4
  117. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/session_manager.py +3 -1
  118. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/state/common.py +30 -5
  119. streamlit-1.51.0/streamlit/runtime/state/presentation.py +85 -0
  120. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/state/safe_session_state.py +2 -2
  121. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/state/session_state.py +220 -16
  122. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/state/widgets.py +19 -3
  123. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/websocket_session_manager.py +3 -1
  124. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/source_util.py +2 -2
  125. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/index.html +2 -2
  126. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/manifest.json +243 -226
  127. streamlit-1.50.0/streamlit/static/static/css/index.CIiu7Ygf.css → streamlit-1.51.0/streamlit/static/static/css/index.BpABIXK9.css +1 -1
  128. streamlit-1.51.0/streamlit/static/static/css/index.DgR7E2CV.css +1 -0
  129. streamlit-1.50.0/streamlit/static/static/js/ErrorOutline.esm.DUpR0_Ka.js → streamlit-1.51.0/streamlit/static/static/js/ErrorOutline.esm.YoJdlW1p.js +1 -1
  130. streamlit-1.50.0/streamlit/static/static/js/FileDownload.esm.CN4j9-1w.js → streamlit-1.51.0/streamlit/static/static/js/FileDownload.esm.Ddx8VEYy.js +1 -1
  131. streamlit-1.50.0/streamlit/static/static/js/FileHelper.CaIUKG91.js → streamlit-1.51.0/streamlit/static/static/js/FileHelper.90EtOmj9.js +1 -1
  132. streamlit-1.50.0/streamlit/static/static/js/FormClearHelper.DTcdrasw.js → streamlit-1.51.0/streamlit/static/static/js/FormClearHelper.BB1Km6eP.js +1 -1
  133. streamlit-1.51.0/streamlit/static/static/js/InputInstructions.jhH15PqV.js +1 -0
  134. streamlit-1.50.0/streamlit/static/static/js/Particles.CElH0XX2.js → streamlit-1.51.0/streamlit/static/static/js/Particles.DUsputn1.js +1 -1
  135. streamlit-1.50.0/streamlit/static/static/js/ProgressBar.DetlP5aY.js → streamlit-1.51.0/streamlit/static/static/js/ProgressBar.DLY8H6nE.js +1 -1
  136. streamlit-1.50.0/streamlit/static/static/js/Toolbar.C77ar7rq.js → streamlit-1.51.0/streamlit/static/static/js/Toolbar.D8nHCkuz.js +1 -1
  137. streamlit-1.50.0/streamlit/static/static/js/base-input.BQft14La.js → streamlit-1.51.0/streamlit/static/static/js/base-input.CJGiNqed.js +3 -3
  138. streamlit-1.50.0/streamlit/static/static/js/checkbox.yZOfXCeX.js → streamlit-1.51.0/streamlit/static/static/js/checkbox.Cpdd482O.js +1 -1
  139. streamlit-1.50.0/streamlit/static/static/js/createSuper.Dh9w1cs8.js → streamlit-1.51.0/streamlit/static/static/js/createSuper.CuQIogbW.js +1 -1
  140. streamlit-1.50.0/streamlit/static/static/js/data-grid-overlay-editor.DcuHuCyW.js → streamlit-1.51.0/streamlit/static/static/js/data-grid-overlay-editor.2Ufgxc6y.js +1 -1
  141. streamlit-1.50.0/streamlit/static/static/js/downloader.MeHtkq8r.js → streamlit-1.51.0/streamlit/static/static/js/downloader.CN0K7xlu.js +1 -1
  142. streamlit-1.50.0/streamlit/static/static/js/es6.VpBPGCnM.js → streamlit-1.51.0/streamlit/static/static/js/es6.BJcsVXQ0.js +2 -2
  143. streamlit-1.50.0/streamlit/static/static/js/iframeResizer.contentWindow.yMw_ARIL.js → streamlit-1.51.0/streamlit/static/static/js/iframeResizer.contentWindow.XzUvQqcZ.js +1 -1
  144. streamlit-1.51.0/streamlit/static/static/js/index.B1ZQh4P1.js +1 -0
  145. streamlit-1.51.0/streamlit/static/static/js/index.BKstZk0M.js +27 -0
  146. streamlit-1.50.0/streamlit/static/static/js/index.Cnpi3o3E.js → streamlit-1.51.0/streamlit/static/static/js/index.BMcFsUee.js +1 -1
  147. streamlit-1.50.0/streamlit/static/static/js/index.DKv_lNO7.js → streamlit-1.51.0/streamlit/static/static/js/index.BR-IdcTb.js +1 -1
  148. streamlit-1.50.0/streamlit/static/static/js/index.FFOzOWzC.js → streamlit-1.51.0/streamlit/static/static/js/index.B_dWA3vd.js +1 -1
  149. streamlit-1.50.0/streamlit/static/static/js/index.Bj9JgOEC.js → streamlit-1.51.0/streamlit/static/static/js/index.BgnZEMVh.js +1 -1
  150. streamlit-1.50.0/streamlit/static/static/js/index.Bxz2yX3P.js → streamlit-1.51.0/streamlit/static/static/js/index.BohqXifI.js +1 -1
  151. streamlit-1.50.0/streamlit/static/static/js/index.Dbe-Q3C-.js → streamlit-1.51.0/streamlit/static/static/js/index.Br5nxKNj.js +1 -1
  152. streamlit-1.50.0/streamlit/static/static/js/index.BjCwMzj4.js → streamlit-1.51.0/streamlit/static/static/js/index.BrIKVbNc.js +2 -2
  153. streamlit-1.51.0/streamlit/static/static/js/index.BtWUPzle.js +1 -0
  154. streamlit-1.50.0/streamlit/static/static/js/index.CGYqqs6j.js → streamlit-1.51.0/streamlit/static/static/js/index.C0RLraek.js +1 -1
  155. streamlit-1.50.0/streamlit/static/static/js/index.D2QEXQq_.js → streamlit-1.51.0/streamlit/static/static/js/index.CAIjskgG.js +1 -1
  156. streamlit-1.50.0/streamlit/static/static/js/index.6xX1278W.js → streamlit-1.51.0/streamlit/static/static/js/index.CAj-7vWz.js +131 -157
  157. streamlit-1.50.0/streamlit/static/static/js/index.DK7hD7_w.js → streamlit-1.51.0/streamlit/static/static/js/index.CMtEit2O.js +1 -1
  158. streamlit-1.50.0/streamlit/static/static/js/index.DNLrMXgm.js → streamlit-1.51.0/streamlit/static/static/js/index.CkRlykEE.js +1 -1
  159. streamlit-1.50.0/streamlit/static/static/js/index.ClELlchS.js → streamlit-1.51.0/streamlit/static/static/js/index.CmN3FXfI.js +1 -1
  160. streamlit-1.50.0/streamlit/static/static/js/index.GRUzrudl.js → streamlit-1.51.0/streamlit/static/static/js/index.CwbFI1_-.js +1 -1
  161. streamlit-1.50.0/streamlit/static/static/js/index.Ctn27_AE.js → streamlit-1.51.0/streamlit/static/static/js/index.CxIUUfab.js +27 -27
  162. streamlit-1.51.0/streamlit/static/static/js/index.D2KPNy7e.js +1 -0
  163. streamlit-1.50.0/streamlit/static/static/js/index.B0H9IXUJ.js → streamlit-1.51.0/streamlit/static/static/js/index.D3GPA5k4.js +3 -3
  164. streamlit-1.50.0/streamlit/static/static/js/index.BycLveZ4.js → streamlit-1.51.0/streamlit/static/static/js/index.DGAh7DMq.js +1 -1
  165. streamlit-1.51.0/streamlit/static/static/js/index.DKb_NvmG.js +197 -0
  166. streamlit-1.50.0/streamlit/static/static/js/index.BPQo7BKk.js → streamlit-1.51.0/streamlit/static/static/js/index.DMqgUYKq.js +1 -1
  167. streamlit-1.50.0/streamlit/static/static/js/index.CH1tqnSs.js → streamlit-1.51.0/streamlit/static/static/js/index.DOFlg3dS.js +1 -1
  168. streamlit-1.50.0/streamlit/static/static/js/index.64ejlaaT.js → streamlit-1.51.0/streamlit/static/static/js/index.DPUXkcQL.js +1 -1
  169. streamlit-1.50.0/streamlit/static/static/js/index.B-hiXRzw.js → streamlit-1.51.0/streamlit/static/static/js/index.DX1xY89g.js +1 -1
  170. streamlit-1.51.0/streamlit/static/static/js/index.DYATBCsq.js +2 -0
  171. streamlit-1.50.0/streamlit/static/static/js/index.DHh-U0dK.js → streamlit-1.51.0/streamlit/static/static/js/index.DaSmGJ76.js +3 -3
  172. streamlit-1.50.0/streamlit/static/static/js/index.DuxqVQpd.js → streamlit-1.51.0/streamlit/static/static/js/index.Dd7bMeLP.js +1 -1
  173. streamlit-1.50.0/streamlit/static/static/js/index.B4cAbHP6.js → streamlit-1.51.0/streamlit/static/static/js/index.DjmmgI5U.js +1 -1
  174. streamlit-1.50.0/streamlit/static/static/js/index.DcPNYEUo.js → streamlit-1.51.0/streamlit/static/static/js/index.Dq56CyM2.js +1 -1
  175. streamlit-1.50.0/streamlit/static/static/js/index.CiAQIz1H.js → streamlit-1.51.0/streamlit/static/static/js/index.DuiXaS5_.js +1 -1
  176. streamlit-1.51.0/streamlit/static/static/js/index.DvFidMLe.js +2 -0
  177. streamlit-1.50.0/streamlit/static/static/js/index.C9BdUqTi.js → streamlit-1.51.0/streamlit/static/static/js/index.DwkhC5Pc.js +1 -1
  178. streamlit-1.50.0/streamlit/static/static/js/index.B4dUQfni.js → streamlit-1.51.0/streamlit/static/static/js/index.Q-3sFn1v.js +1 -1
  179. streamlit-1.50.0/streamlit/static/static/js/index.CMItVsFA.js → streamlit-1.51.0/streamlit/static/static/js/index.QJ5QO9sJ.js +1 -1
  180. streamlit-1.50.0/streamlit/static/static/js/index.CTBk8Vk2.js → streamlit-1.51.0/streamlit/static/static/js/index.VwTaeety.js +1 -1
  181. streamlit-1.50.0/streamlit/static/static/js/index.Ck8rQ9OL.js → streamlit-1.51.0/streamlit/static/static/js/index.YOqQbeX8.js +1 -1
  182. streamlit-1.50.0/streamlit/static/static/js/input.s6pjQ49A.js → streamlit-1.51.0/streamlit/static/static/js/input.D4MN_FzN.js +1 -1
  183. streamlit-1.50.0/streamlit/static/static/js/memory.Cuvsdfrl.js → streamlit-1.51.0/streamlit/static/static/js/memory.DrZjtdGT.js +1 -1
  184. streamlit-1.50.0/streamlit/static/static/js/number-overlay-editor.DdgVR5m3.js → streamlit-1.51.0/streamlit/static/static/js/number-overlay-editor.DRwAw1In.js +1 -1
  185. streamlit-1.50.0/streamlit/static/static/js/possibleConstructorReturn.CqidKeei.js → streamlit-1.51.0/streamlit/static/static/js/possibleConstructorReturn.exeeJQEP.js +1 -1
  186. streamlit-1.51.0/streamlit/static/static/js/record.B-tDciZb.js +1 -0
  187. streamlit-1.50.0/streamlit/static/static/js/sandbox.CCQREcJx.js → streamlit-1.51.0/streamlit/static/static/js/sandbox.ClO3IuUr.js +1 -1
  188. streamlit-1.50.0/streamlit/static/static/js/timepicker.mkJF97Bb.js → streamlit-1.51.0/streamlit/static/static/js/timepicker.DAhu-vcF.js +1 -1
  189. streamlit-1.50.0/streamlit/static/static/js/toConsumableArray.De7I7KVR.js → streamlit-1.51.0/streamlit/static/static/js/toConsumableArray.DNbljYEC.js +1 -1
  190. streamlit-1.50.0/streamlit/static/static/js/uniqueId.RI1LJdtz.js → streamlit-1.51.0/streamlit/static/static/js/uniqueId.oG4Gvj1v.js +1 -1
  191. streamlit-1.50.0/streamlit/static/static/js/useBasicWidgetState.CedkNjUW.js → streamlit-1.51.0/streamlit/static/static/js/useBasicWidgetState.D6sOH6oI.js +1 -1
  192. streamlit-1.50.0/streamlit/static/static/js/useTextInputAutoExpand.Ca7w8dVs.js → streamlit-1.51.0/streamlit/static/static/js/useTextInputAutoExpand.4u3_GcuN.js +1 -1
  193. streamlit-1.50.0/streamlit/static/static/js/useUpdateUiValue.DeXelfRH.js → streamlit-1.51.0/streamlit/static/static/js/useUpdateUiValue.F2R3eTeR.js +1 -1
  194. streamlit-1.51.0/streamlit/static/static/js/wavesurfer.esm.vI8Eid4k.js +73 -0
  195. streamlit-1.50.0/streamlit/static/static/js/withFullScreenWrapper.C3561XxJ.js → streamlit-1.51.0/streamlit/static/static/js/withFullScreenWrapper.zothJIsI.js +1 -1
  196. streamlit-1.51.0/streamlit/static/static/media/MaterialSymbols-Rounded.C7IFxh57.woff2 +0 -0
  197. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/string_util.py +1 -3
  198. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/testing/v1/app_test.py +2 -2
  199. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/testing/v1/element_tree.py +23 -9
  200. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/testing/v1/util.py +2 -2
  201. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/type_util.py +3 -4
  202. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/url_util.py +1 -3
  203. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/user_info.py +1 -2
  204. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/util.py +3 -1
  205. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/watcher/event_based_path_watcher.py +23 -12
  206. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/watcher/local_sources_watcher.py +11 -1
  207. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/watcher/path_watcher.py +9 -6
  208. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/watcher/polling_path_watcher.py +4 -1
  209. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/watcher/util.py +2 -2
  210. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/cli.py +51 -22
  211. streamlit-1.51.0/streamlit/web/server/bidi_component_request_handler.py +193 -0
  212. streamlit-1.51.0/streamlit/web/server/component_file_utils.py +97 -0
  213. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/component_request_handler.py +8 -21
  214. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/oidc_mixin.py +3 -1
  215. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/routes.py +2 -2
  216. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/server.py +9 -0
  217. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/server_util.py +3 -1
  218. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/upload_file_request_handler.py +3 -1
  219. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit.egg-info/PKG-INFO +4 -5
  220. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit.egg-info/SOURCES.txt +96 -68
  221. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit.egg-info/requires.txt +2 -2
  222. streamlit-1.50.0/streamlit/config_util.py +0 -183
  223. streamlit-1.50.0/streamlit/emojis.py +0 -34
  224. streamlit-1.50.0/streamlit/material_icon_names.py +0 -25
  225. streamlit-1.50.0/streamlit/proto/DeckGlJsonChart_pb2.py +0 -29
  226. streamlit-1.50.0/streamlit/proto/NewSession_pb2.py +0 -55
  227. streamlit-1.50.0/streamlit/proto/PlotlyChart_pb2.py +0 -31
  228. streamlit-1.50.0/streamlit/static/static/css/index.CHEnSPGk.css +0 -1
  229. streamlit-1.50.0/streamlit/static/static/js/Hooks.BRba_Own.js +0 -1
  230. streamlit-1.50.0/streamlit/static/static/js/InputInstructions.xnSDuYeQ.js +0 -1
  231. streamlit-1.50.0/streamlit/static/static/js/index.Baqa90pe.js +0 -2
  232. streamlit-1.50.0/streamlit/static/static/js/index.Bm3VbPB5.js +0 -1
  233. streamlit-1.50.0/streamlit/static/static/js/index.CFMf5_ez.js +0 -197
  234. streamlit-1.50.0/streamlit/static/static/js/index.Cj7DSzVR.js +0 -73
  235. streamlit-1.50.0/streamlit/static/static/js/index.DH71Ezyj.js +0 -1
  236. streamlit-1.50.0/streamlit/static/static/js/index.DW0Grddz.js +0 -1
  237. streamlit-1.50.0/streamlit/static/static/media/MaterialSymbols-Rounded.DeCZgS-4.woff2 +0 -0
  238. {streamlit-1.50.0 → streamlit-1.51.0}/MANIFEST.in +0 -0
  239. {streamlit-1.50.0 → streamlit-1.51.0}/bin/streamlit.cmd +0 -0
  240. {streamlit-1.50.0 → streamlit-1.51.0}/setup.cfg +0 -0
  241. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/__main__.py +0 -0
  242. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/auth_util.py +0 -0
  243. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/cli_util.py +0 -0
  244. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/column_config.py +0 -0
  245. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/commands/__init__.py +0 -0
  246. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/commands/echo.py +0 -0
  247. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/commands/execution_control.py +0 -0
  248. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/commands/experimental_query_params.py +0 -0
  249. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/commands/logo.py +0 -0
  250. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/components/__init__.py +0 -0
  251. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/components/lib/__init__.py +0 -0
  252. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/components/lib/local_component_registry.py +0 -0
  253. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/components/types/__init__.py +0 -0
  254. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/components/types/base_component_registry.py +0 -0
  255. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/components/types/base_custom_component.py +0 -0
  256. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/components/v1/__init__.py +0 -0
  257. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/components/v1/component_arrow.py +0 -0
  258. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/components/v1/component_registry.py +0 -0
  259. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/components/v1/components.py +0 -0
  260. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/components/v1/custom_component.py +0 -0
  261. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/connections/__init__.py +0 -0
  262. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/connections/base_connection.py +0 -0
  263. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/connections/snowflake_connection.py +0 -0
  264. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/connections/snowpark_connection.py +0 -0
  265. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/connections/sql_connection.py +0 -0
  266. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/connections/util.py +0 -0
  267. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/cursor.py +0 -0
  268. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/development.py +0 -0
  269. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/__init__.py +0 -0
  270. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/alert.py +0 -0
  271. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/balloons.py +0 -0
  272. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/bokeh_chart.py +0 -0
  273. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/code.py +0 -0
  274. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/doc_string.py +0 -0
  275. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/empty.py +0 -0
  276. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/form.py +0 -0
  277. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/html.py +0 -0
  278. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/iframe.py +0 -0
  279. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/json.py +0 -0
  280. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/__init__.py +0 -0
  281. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/dicttools.py +0 -0
  282. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/file_uploader_utils.py +0 -0
  283. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/form_utils.py +0 -0
  284. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/js_number.py +0 -0
  285. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/pandas_styler_utils.py +0 -0
  286. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/policies.py +0 -0
  287. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/streamlit_plotly_theme.py +0 -0
  288. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/lib/subtitle_utils.py +0 -0
  289. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/markdown.py +0 -0
  290. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/pyplot.py +0 -0
  291. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/snow.py +0 -0
  292. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/spinner.py +0 -0
  293. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/text.py +0 -0
  294. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/toast.py +0 -0
  295. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/__init__.py +0 -0
  296. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/checkbox.py +0 -0
  297. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/elements/widgets/text_widgets.py +0 -0
  298. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/env_util.py +0 -0
  299. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/error_util.py +0 -0
  300. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/external/__init__.py +0 -0
  301. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/external/langchain/__init__.py +0 -0
  302. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/external/langchain/streamlit_callback_handler.py +0 -0
  303. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/file_util.py +0 -0
  304. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/git_util.py +0 -0
  305. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/hello/__init__.py +0 -0
  306. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/hello/animation_demo.py +0 -0
  307. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/hello/dataframe_demo.py +0 -0
  308. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/hello/mapping_demo.py +0 -0
  309. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/hello/plotting_demo.py +0 -0
  310. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/hello/streamlit_app.py +0 -0
  311. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/logger.py +0 -0
  312. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/navigation/__init__.py +0 -0
  313. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/net_util.py +0 -0
  314. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/platform.py +0 -0
  315. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Alert_pb2.py +0 -0
  316. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Alert_pb2.pyi +0 -0
  317. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/AppPage_pb2.py +0 -0
  318. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/AppPage_pb2.pyi +0 -0
  319. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ArrowNamedDataSet_pb2.py +0 -0
  320. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ArrowNamedDataSet_pb2.pyi +0 -0
  321. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ArrowVegaLiteChart_pb2.py +0 -0
  322. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ArrowVegaLiteChart_pb2.pyi +0 -0
  323. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Arrow_pb2.py +0 -0
  324. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Arrow_pb2.pyi +0 -0
  325. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/AudioInput_pb2.py +0 -0
  326. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/AudioInput_pb2.pyi +0 -0
  327. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Audio_pb2.py +0 -0
  328. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Audio_pb2.pyi +0 -0
  329. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/AuthRedirect_pb2.py +0 -0
  330. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/AuthRedirect_pb2.pyi +0 -0
  331. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/AutoRerun_pb2.py +0 -0
  332. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/AutoRerun_pb2.pyi +0 -0
  333. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/BackMsg_pb2.py +0 -0
  334. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/BackMsg_pb2.pyi +0 -0
  335. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Balloons_pb2.py +0 -0
  336. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Balloons_pb2.pyi +0 -0
  337. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/BokehChart_pb2.py +0 -0
  338. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/BokehChart_pb2.pyi +0 -0
  339. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ButtonGroup_pb2.py +0 -0
  340. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ButtonGroup_pb2.pyi +0 -0
  341. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Button_pb2.py +0 -0
  342. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Button_pb2.pyi +0 -0
  343. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/CameraInput_pb2.py +0 -0
  344. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/CameraInput_pb2.pyi +0 -0
  345. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ChatInput_pb2.py +0 -0
  346. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ChatInput_pb2.pyi +0 -0
  347. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Checkbox_pb2.py +0 -0
  348. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Checkbox_pb2.pyi +0 -0
  349. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ClientState_pb2.py +0 -0
  350. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ClientState_pb2.pyi +0 -0
  351. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Code_pb2.py +0 -0
  352. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Code_pb2.pyi +0 -0
  353. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ColorPicker_pb2.py +0 -0
  354. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ColorPicker_pb2.pyi +0 -0
  355. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Common_pb2.py +0 -0
  356. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Common_pb2.pyi +0 -0
  357. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Components_pb2.py +0 -0
  358. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Components_pb2.pyi +0 -0
  359. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/DataFrame_pb2.py +0 -0
  360. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/DataFrame_pb2.pyi +0 -0
  361. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/DateInput_pb2.py +0 -0
  362. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/DateInput_pb2.pyi +0 -0
  363. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Delta_pb2.py +0 -0
  364. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Delta_pb2.pyi +0 -0
  365. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/DocString_pb2.py +0 -0
  366. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/DocString_pb2.pyi +0 -0
  367. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/DownloadButton_pb2.py +0 -0
  368. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/DownloadButton_pb2.pyi +0 -0
  369. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Empty_pb2.py +0 -0
  370. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Empty_pb2.pyi +0 -0
  371. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Exception_pb2.py +0 -0
  372. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Exception_pb2.pyi +0 -0
  373. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Favicon_pb2.py +0 -0
  374. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Favicon_pb2.pyi +0 -0
  375. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/FileUploader_pb2.py +0 -0
  376. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/FileUploader_pb2.pyi +0 -0
  377. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ForwardMsg_pb2.py +0 -0
  378. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ForwardMsg_pb2.pyi +0 -0
  379. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/GapSize_pb2.py +0 -0
  380. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/GapSize_pb2.pyi +0 -0
  381. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/GitInfo_pb2.py +0 -0
  382. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/GitInfo_pb2.pyi +0 -0
  383. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/GraphVizChart_pb2.py +0 -0
  384. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/GraphVizChart_pb2.pyi +0 -0
  385. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Heading_pb2.py +0 -0
  386. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Heading_pb2.pyi +0 -0
  387. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Html_pb2.py +0 -0
  388. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Html_pb2.pyi +0 -0
  389. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/IFrame_pb2.py +0 -0
  390. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/IFrame_pb2.pyi +0 -0
  391. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Image_pb2.py +0 -0
  392. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Image_pb2.pyi +0 -0
  393. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Json_pb2.py +0 -0
  394. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Json_pb2.pyi +0 -0
  395. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/LabelVisibilityMessage_pb2.py +0 -0
  396. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/LabelVisibilityMessage_pb2.pyi +0 -0
  397. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/LinkButton_pb2.py +0 -0
  398. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/LinkButton_pb2.pyi +0 -0
  399. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Logo_pb2.py +0 -0
  400. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Logo_pb2.pyi +0 -0
  401. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Markdown_pb2.py +0 -0
  402. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Markdown_pb2.pyi +0 -0
  403. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Metric_pb2.py +0 -0
  404. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Metric_pb2.pyi +0 -0
  405. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/MetricsEvent_pb2.py +0 -0
  406. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/MetricsEvent_pb2.pyi +0 -0
  407. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/MultiSelect_pb2.py +0 -0
  408. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/MultiSelect_pb2.pyi +0 -0
  409. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/NamedDataSet_pb2.py +0 -0
  410. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/NamedDataSet_pb2.pyi +0 -0
  411. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Navigation_pb2.py +0 -0
  412. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Navigation_pb2.pyi +0 -0
  413. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/NumberInput_pb2.py +0 -0
  414. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/NumberInput_pb2.pyi +0 -0
  415. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PageConfig_pb2.py +0 -0
  416. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PageConfig_pb2.pyi +0 -0
  417. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PageInfo_pb2.py +0 -0
  418. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PageInfo_pb2.pyi +0 -0
  419. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PageLink_pb2.py +0 -0
  420. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PageLink_pb2.pyi +0 -0
  421. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PageNotFound_pb2.py +0 -0
  422. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PageNotFound_pb2.pyi +0 -0
  423. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PageProfile_pb2.py +0 -0
  424. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PageProfile_pb2.pyi +0 -0
  425. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PagesChanged_pb2.py +0 -0
  426. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/PagesChanged_pb2.pyi +0 -0
  427. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ParentMessage_pb2.py +0 -0
  428. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/ParentMessage_pb2.pyi +0 -0
  429. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Progress_pb2.py +0 -0
  430. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Progress_pb2.pyi +0 -0
  431. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Radio_pb2.py +0 -0
  432. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Radio_pb2.pyi +0 -0
  433. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/RootContainer_pb2.py +0 -0
  434. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/RootContainer_pb2.pyi +0 -0
  435. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Selectbox_pb2.py +0 -0
  436. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Selectbox_pb2.pyi +0 -0
  437. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/SessionEvent_pb2.py +0 -0
  438. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/SessionEvent_pb2.pyi +0 -0
  439. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/SessionStatus_pb2.py +0 -0
  440. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/SessionStatus_pb2.pyi +0 -0
  441. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Skeleton_pb2.py +0 -0
  442. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Skeleton_pb2.pyi +0 -0
  443. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Slider_pb2.py +0 -0
  444. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Slider_pb2.pyi +0 -0
  445. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Snow_pb2.py +0 -0
  446. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Snow_pb2.pyi +0 -0
  447. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Spinner_pb2.py +0 -0
  448. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Spinner_pb2.pyi +0 -0
  449. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/TextArea_pb2.py +0 -0
  450. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/TextArea_pb2.pyi +0 -0
  451. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/TextInput_pb2.py +0 -0
  452. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/TextInput_pb2.pyi +0 -0
  453. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Text_pb2.py +0 -0
  454. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Text_pb2.pyi +0 -0
  455. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/TimeInput_pb2.py +0 -0
  456. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/TimeInput_pb2.pyi +0 -0
  457. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Toast_pb2.py +0 -0
  458. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Toast_pb2.pyi +0 -0
  459. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/VegaLiteChart_pb2.py +0 -0
  460. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/VegaLiteChart_pb2.pyi +0 -0
  461. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Video_pb2.py +0 -0
  462. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/Video_pb2.pyi +0 -0
  463. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/__init__.py +0 -0
  464. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/openmetrics_data_model_pb2.py +0 -0
  465. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/proto/openmetrics_data_model_pb2.pyi +0 -0
  466. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/py.typed +0 -0
  467. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/__init__.py +0 -0
  468. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/__init__.py +0 -0
  469. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/cache_type.py +0 -0
  470. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/storage/__init__.py +0 -0
  471. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/storage/cache_storage_protocol.py +0 -0
  472. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/storage/dummy_cache_storage.py +0 -0
  473. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/storage/in_memory_cache_storage_wrapper.py +0 -0
  474. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/caching/storage/local_disk_cache_storage.py +0 -0
  475. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/context.py +0 -0
  476. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/context_util.py +0 -0
  477. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/credentials.py +0 -0
  478. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/forward_msg_cache.py +0 -0
  479. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/media_file_manager.py +0 -0
  480. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/media_file_storage.py +0 -0
  481. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/memory_session_storage.py +0 -0
  482. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/memory_uploaded_file_manager.py +0 -0
  483. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/pages_manager.py +0 -0
  484. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/runtime_util.py +0 -0
  485. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/script_data.py +0 -0
  486. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/scriptrunner/__init__.py +0 -0
  487. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/scriptrunner/magic.py +0 -0
  488. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/scriptrunner/magic_funcs.py +0 -0
  489. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/scriptrunner/script_cache.py +0 -0
  490. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/scriptrunner_utils/__init__.py +0 -0
  491. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/scriptrunner_utils/exceptions.py +0 -0
  492. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/scriptrunner_utils/script_requests.py +0 -0
  493. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/state/__init__.py +0 -0
  494. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/state/query_params.py +0 -0
  495. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/state/query_params_proxy.py +0 -0
  496. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/state/session_state_proxy.py +0 -0
  497. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/stats.py +0 -0
  498. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/theme_util.py +0 -0
  499. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/runtime/uploaded_file_manager.py +0 -0
  500. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/favicon.png +0 -0
  501. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/css/index.DzuxGC_t.css +0 -0
  502. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/js/UploadFileInfo.C-jY39rj.js +0 -0
  503. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/js/createDownloadLinkElement.ZaXNnPK4.js +0 -0
  504. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/js/inputUtils.CptNuJwn.js +0 -0
  505. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/js/sprintf.D7DtBTRn.js +0 -0
  506. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_AMS-Regular.BQhdFMY1.woff2 +0 -0
  507. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_AMS-Regular.DMm9YOAa.woff +0 -0
  508. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_AMS-Regular.DRggAlZN.ttf +0 -0
  509. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf +0 -0
  510. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.BEiXGLvX.woff +0 -0
  511. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 +0 -0
  512. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.CTRA-rTL.woff +0 -0
  513. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 +0 -0
  514. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Caligraphic-Regular.wX97UBjC.ttf +0 -0
  515. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Fraktur-Bold.BdnERNNW.ttf +0 -0
  516. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Fraktur-Bold.BsDP51OF.woff +0 -0
  517. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 +0 -0
  518. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Fraktur-Regular.CB_wures.ttf +0 -0
  519. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 +0 -0
  520. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Fraktur-Regular.Dxdc4cR9.woff +0 -0
  521. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-Bold.Cx986IdX.woff2 +0 -0
  522. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-Bold.Jm3AIy58.woff +0 -0
  523. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-Bold.waoOVXN0.ttf +0 -0
  524. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 +0 -0
  525. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-BoldItalic.DzxPMmG6.ttf +0 -0
  526. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-BoldItalic.SpSLRI95.woff +0 -0
  527. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-Italic.3WenGoN9.ttf +0 -0
  528. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-Italic.BMLOBm91.woff +0 -0
  529. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-Italic.NWA7e6Wa.woff2 +0 -0
  530. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-Regular.B22Nviop.woff2 +0 -0
  531. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-Regular.Dr94JaBh.woff +0 -0
  532. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Main-Regular.ypZvNtVU.ttf +0 -0
  533. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Math-BoldItalic.B3XSjfu4.ttf +0 -0
  534. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 +0 -0
  535. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Math-BoldItalic.iY-2wyZ7.woff +0 -0
  536. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Math-Italic.DA0__PXp.woff +0 -0
  537. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Math-Italic.flOr_0UB.ttf +0 -0
  538. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Math-Italic.t53AETM-.woff2 +0 -0
  539. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_SansSerif-Bold.CFMepnvq.ttf +0 -0
  540. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 +0 -0
  541. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_SansSerif-Bold.DbIhKOiC.woff +0 -0
  542. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 +0 -0
  543. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_SansSerif-Italic.DN2j7dab.woff +0 -0
  544. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf +0 -0
  545. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_SansSerif-Regular.BNo7hRIc.ttf +0 -0
  546. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_SansSerif-Regular.CS6fqUqJ.woff +0 -0
  547. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 +0 -0
  548. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Script-Regular.C5JkGWo-.ttf +0 -0
  549. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Script-Regular.D3wIWfF6.woff2 +0 -0
  550. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Script-Regular.D5yQViql.woff +0 -0
  551. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Size1-Regular.C195tn64.woff +0 -0
  552. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Size1-Regular.Dbsnue_I.ttf +0 -0
  553. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Size1-Regular.mCD8mA8B.woff2 +0 -0
  554. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Size2-Regular.B7gKUWhC.ttf +0 -0
  555. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Size2-Regular.Dy4dx90m.woff2 +0 -0
  556. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Size2-Regular.oD1tc_U0.woff +0 -0
  557. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Size3-Regular.CTq5MqoE.woff +0 -0
  558. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Size3-Regular.DgpXs0kz.ttf +0 -0
  559. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Size4-Regular.BF-4gkZK.woff +0 -0
  560. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Size4-Regular.DWFBv043.ttf +0 -0
  561. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Size4-Regular.Dl5lxZxV.woff2 +0 -0
  562. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Typewriter-Regular.C0xS9mPB.woff +0 -0
  563. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 +0 -0
  564. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf +0 -0
  565. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/SourceCodeVF-Italic.ttf.Ba1oaZG1.woff2 +0 -0
  566. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/SourceCodeVF-Upright.ttf.BjWn63N-.woff2 +0 -0
  567. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/SourceSansVF-Italic.ttf.Bt9VkdQ3.woff2 +0 -0
  568. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/SourceSansVF-Upright.ttf.BsWL4Kly.woff2 +0 -0
  569. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/SourceSerifVariable-Italic.ttf.CVdzAtxO.woff2 +0 -0
  570. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/SourceSerifVariable-Roman.ttf.mdpVL9bi.woff2 +0 -0
  571. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/balloon-0.Czj7AKwE.png +0 -0
  572. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/balloon-1.CNvFFrND.png +0 -0
  573. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/balloon-2.DTvC6B1t.png +0 -0
  574. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/balloon-3.CgSk4tbL.png +0 -0
  575. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/balloon-4.mbtFrzxf.png +0 -0
  576. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/balloon-5.CSwkUfRA.png +0 -0
  577. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/fireworks.B4d-_KUe.gif +0 -0
  578. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/flake-0.DgWaVvm5.png +0 -0
  579. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/flake-1.B2r5AHMK.png +0 -0
  580. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/flake-2.BnWSExPC.png +0 -0
  581. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/static/static/media/snowflake.JU2jBHL8.svg +0 -0
  582. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/temporary_directory.py +0 -0
  583. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/testing/__init__.py +0 -0
  584. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/testing/v1/__init__.py +0 -0
  585. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/testing/v1/local_script_runner.py +0 -0
  586. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/time_util.py +0 -0
  587. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/vendor/__init__.py +0 -0
  588. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/vendor/pympler/__init__.py +0 -0
  589. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/vendor/pympler/asizeof.py +0 -0
  590. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/version.py +0 -0
  591. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/watcher/__init__.py +0 -0
  592. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/watcher/folder_black_list.py +0 -0
  593. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/__init__.py +0 -0
  594. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/bootstrap.py +0 -0
  595. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/cache_storage_manager_config.py +0 -0
  596. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/__init__.py +0 -0
  597. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/app_static_file_handler.py +0 -0
  598. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/authlib_tornado_integration.py +0 -0
  599. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/browser_websocket_handler.py +0 -0
  600. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/media_file_handler.py +0 -0
  601. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/oauth_authlib_routes.py +0 -0
  602. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/stats_request_handler.py +0 -0
  603. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit/web/server/websocket_headers.py +0 -0
  604. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit.egg-info/dependency_links.txt +0 -0
  605. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit.egg-info/entry_points.txt +0 -0
  606. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit.egg-info/not-zip-safe +0 -0
  607. {streamlit-1.50.0 → streamlit-1.51.0}/streamlit.egg-info/top_level.txt +0 -0
  608. {streamlit-1.50.0 → streamlit-1.51.0}/tests/testutil.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: streamlit
3
- Version: 1.50.0
3
+ Version: 1.51.0
4
4
  Summary: A faster way to build and share data apps
5
5
  Home-page: https://streamlit.io
6
6
  Author: Snowflake Inc
@@ -18,7 +18,6 @@ Classifier: Environment :: Web Environment
18
18
  Classifier: Intended Audience :: Developers
19
19
  Classifier: Intended Audience :: Science/Research
20
20
  Classifier: License :: OSI Approved :: Apache Software License
21
- Classifier: Programming Language :: Python :: 3.9
22
21
  Classifier: Programming Language :: Python :: 3.10
23
22
  Classifier: Programming Language :: Python :: 3.11
24
23
  Classifier: Programming Language :: Python :: 3.12
@@ -29,7 +28,7 @@ Classifier: Topic :: Scientific/Engineering :: Information Analysis
29
28
  Classifier: Topic :: Scientific/Engineering :: Visualization
30
29
  Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
31
30
  Classifier: Topic :: Software Development :: Widget Sets
32
- Requires-Python: >=3.9, !=3.9.7
31
+ Requires-Python: >=3.10
33
32
  Description-Content-Type: text/markdown
34
33
  Requires-Dist: altair!=5.4.0,!=5.4.1,<6,>=4.0
35
34
  Requires-Dist: blinker<2,>=1.5.0
@@ -38,9 +37,9 @@ Requires-Dist: click<9,>=7.0
38
37
  Requires-Dist: numpy<3,>=1.23
39
38
  Requires-Dist: packaging<26,>=20
40
39
  Requires-Dist: pandas<3,>=1.4.0
41
- Requires-Dist: pillow<12,>=7.1.0
40
+ Requires-Dist: pillow<13,>=7.1.0
42
41
  Requires-Dist: protobuf<7,>=3.20
43
- Requires-Dist: pyarrow>=7.0
42
+ Requires-Dist: pyarrow<22,>=7.0
44
43
  Requires-Dist: requests<3,>=2.27
45
44
  Requires-Dist: tenacity<10,>=8.1.0
46
45
  Requires-Dist: toml<2,>=0.10.1
@@ -23,7 +23,7 @@ from setuptools.command.install import install
23
23
 
24
24
  THIS_DIRECTORY = Path(__file__).parent
25
25
 
26
- VERSION = "1.50.0" # PEP-440
26
+ VERSION = "1.51.0" # PEP-440
27
27
 
28
28
  # IMPORTANT: We should try very hard *not* to add dependencies to Streamlit.
29
29
  # And if you do add one, make the required version as general as possible:
@@ -43,13 +43,12 @@ INSTALL_REQUIRES = [
43
43
  # Pandas <1.4 has a bug related to deleting columns in a DataFrame changing
44
44
  # the index dtype.
45
45
  "pandas>=1.4.0, <3",
46
- "pillow>=7.1.0, <12",
46
+ "pillow>=7.1.0, <13",
47
47
  # `protoc` < 3.20 is not able to generate protobuf code compatible with protobuf >= 3.20.
48
48
  "protobuf>=3.20, <7",
49
- # pyarrow is not semantically versioned, gets new major versions frequently, and
50
- # doesn't tend to break the API on major version upgrades, so we don't put an
51
- # upper bound on it.
52
- "pyarrow>=7.0",
49
+ # pyarrow v22 is causing 2 test failures in dataframe_util_test.py and arrow_dataframe_test.py.
50
+ # temporarily restrict to <22 to avoid breaking changes.
51
+ "pyarrow>=7.0, <22",
53
52
  "requests>=2.27, <3",
54
53
  "tenacity>=8.1.0, <10",
55
54
  # Starting from Python 3.11, Python has built in support for reading TOML files.
@@ -160,7 +159,6 @@ setup(
160
159
  "Intended Audience :: Developers",
161
160
  "Intended Audience :: Science/Research",
162
161
  "License :: OSI Approved :: Apache Software License",
163
- "Programming Language :: Python :: 3.9",
164
162
  "Programming Language :: Python :: 3.10",
165
163
  "Programming Language :: Python :: 3.11",
166
164
  "Programming Language :: Python :: 3.12",
@@ -172,10 +170,7 @@ setup(
172
170
  "Topic :: Software Development :: Libraries :: Application Frameworks",
173
171
  "Topic :: Software Development :: Widget Sets",
174
172
  ],
175
- # We exclude Python 3.9.7 from our compatible versions due to a bug in that version
176
- # with typing.Protocol. See https://github.com/streamlit/streamlit/issues/5140 and
177
- # https://bugs.python.org/issue45121
178
- python_requires=">=3.9, !=3.9.7",
173
+ python_requires=">=3.10",
179
174
  # PEP 561: https://mypy.readthedocs.io/en/stable/installed_packages.html
180
175
  package_data={"streamlit": ["py.typed", "hello/**/*.py"]},
181
176
  packages=find_packages(exclude=["tests", "tests.*"]),
@@ -165,6 +165,7 @@ audio_input = _main.audio_input
165
165
  badge = _main.badge
166
166
  balloons = _main.balloons
167
167
  bar_chart = _main.bar_chart
168
+ _bidi_component = _main._bidi_component
168
169
  bokeh_chart = _main.bokeh_chart
169
170
  button = _main.button
170
171
  caption = _main.caption
@@ -219,6 +220,7 @@ select_slider = _main.select_slider
219
220
  segmented_control = _main.segmented_control
220
221
  slider = _main.slider
221
222
  snow = _main.snow
223
+ space = _main.space
222
224
  subheader = _main.subheader
223
225
  success = _main.success
224
226
  table = _main.table
@@ -304,4 +306,5 @@ experimental_set_query_params = _deprecate_func_name(
304
306
  # make it possible to call streamlit.components.v1.html etc. by importing it here
305
307
  # import in the very end to avoid partially-initialized module import errors, because
306
308
  # streamlit.components.v1 also uses some streamlit imports
307
- import streamlit.components.v1 # noqa: F401
309
+ import streamlit.components.v1
310
+ import streamlit.components.v2 # noqa: F401
@@ -14,11 +14,9 @@
14
14
 
15
15
  from __future__ import annotations
16
16
 
17
- from collections.abc import Mapping, Sequence
17
+ from collections.abc import Callable, Mapping, Sequence
18
18
  from pathlib import Path
19
- from typing import TYPE_CHECKING, Callable, Literal, Union
20
-
21
- from typing_extensions import TypeAlias
19
+ from typing import TYPE_CHECKING, Literal, TypeAlias
22
20
 
23
21
  from streamlit import config
24
22
  from streamlit.errors import StreamlitAPIException
@@ -37,7 +35,7 @@ if TYPE_CHECKING:
37
35
  from streamlit.source_util import PageHash, PageInfo
38
36
 
39
37
  SectionHeader: TypeAlias = str
40
- PageType: TypeAlias = Union[str, Path, Callable[[], None], StreamlitPage]
38
+ PageType: TypeAlias = str | Path | Callable[[], None] | StreamlitPage
41
39
 
42
40
 
43
41
  def convert_to_streamlit_page(
@@ -318,7 +316,7 @@ def _navigation(
318
316
  else:
319
317
  nav_sections = {
320
318
  section: [convert_to_streamlit_page(p) for p in section_pages]
321
- for section, section_pages in pages.items() # ty: ignore[possibly-unbound-attribute]
319
+ for section, section_pages in pages.items()
322
320
  }
323
321
  page_list = pages_from_nav_sections(nav_sections)
324
322
 
@@ -18,9 +18,7 @@ import random
18
18
  from collections.abc import Mapping
19
19
  from pathlib import Path
20
20
  from textwrap import dedent
21
- from typing import TYPE_CHECKING, Any, Final, Literal, Union, cast
22
-
23
- from typing_extensions import TypeAlias
21
+ from typing import TYPE_CHECKING, Any, Final, Literal, TypeAlias, cast
24
22
 
25
23
  from streamlit.elements.lib.image_utils import AtomicImage, image_to_url
26
24
  from streamlit.elements.lib.layout_utils import LayoutConfig
@@ -38,20 +36,20 @@ from streamlit.string_util import is_emoji, validate_material_icon
38
36
  from streamlit.url_util import is_url
39
37
 
40
38
  if TYPE_CHECKING:
41
- from typing_extensions import TypeGuard
39
+ from typing import TypeGuard
42
40
 
43
41
  GET_HELP_KEY: Final = "get help"
44
42
  REPORT_A_BUG_KEY: Final = "report a bug"
45
43
  ABOUT_KEY: Final = "about"
46
44
 
47
- PageIcon: TypeAlias = Union[AtomicImage, str]
45
+ PageIcon: TypeAlias = AtomicImage | str
48
46
  Layout: TypeAlias = Literal["centered", "wide"]
49
47
  InitialSideBarState: TypeAlias = Literal["auto", "expanded", "collapsed"]
50
48
  _GetHelp: TypeAlias = Literal["Get help", "Get Help", "get help"]
51
49
  _ReportABug: TypeAlias = Literal["Report a bug", "report a bug"]
52
50
  _About: TypeAlias = Literal["About", "about"]
53
51
  MenuKey: TypeAlias = Literal[_GetHelp, _ReportABug, _About]
54
- MenuItems: TypeAlias = Mapping[MenuKey, Union[str, None]]
52
+ MenuItems: TypeAlias = Mapping[MenuKey, str | None]
55
53
 
56
54
  RANDOM_EMOJIS: Final = list(
57
55
  "🔥™🎉🚀🌌💣✨🌙🎆🎇💥🤩🤙🌛🤘⬆💡🤪🥂⚡💨🌠🎊🍿😛🔮🤟🌃🍃🍾💫▪🌴🎈🎬🌀🎄😝☔⛽🍂💃😎🍸🎨🥳☀😍🅱🌞😻🌟😜💦💅🦄😋😉👻🍁🤤👯🌻‼🌈👌🎃💛😚🔫🙌👽🍬🌅☁🍷👭☕🌚💁👅🥰🍜😌🎥🕺❕🧡☄💕🍻✅🌸🚬🤓🍹®☺💪😙☘🤠✊🤗🍵🤞😂💯😏📻🎂💗💜🌊❣🌝😘💆🤑🌿🦋😈⛄🚿😊🌹🥴😽💋😭🖤🙆👐⚪💟☃🙈🍭💻🥀🚗🤧🍝💎💓🤝💄💖🔞⁉⏰🕊🎧☠♥🌳🏾🙉⭐💊🍳🌎🙊💸❤🔪😆🌾✈📚💀🏠✌🏃🌵🚨💂🤫🤭😗😄🍒👏🙃🖖💞😅🎅🍄🆓👉💩🔊🤷⌚👸😇🚮💏👳🏽💘💿💉👠🎼🎶🎤👗❄🔐🎵🤒🍰👓🏄🌲🎮🙂📈🚙📍😵🗣❗🌺🙄👄🚘🥺🌍🏡♦💍🌱👑👙☑👾🍩🥶📣🏼🤣☯👵🍫➡🎀😃✋🍞🙇😹🙏👼🐝⚫🎁🍪🔨🌼👆👀😳🌏📖👃🎸👧💇🔒💙😞⛅🏻🍴😼🗿🍗♠🦁✔🤖☮🐢🐎💤😀🍺😁😴📺☹😲👍🎭💚🍆🍋🔵🏁🔴🔔🧐👰☎🏆🤡🐠📲🙋📌🐬✍🔑📱💰🐱💧🎓🍕👟🐣👫🍑😸🍦👁🆗🎯📢🚶🦅🐧💢🏀🚫💑🐟🌽🏊🍟💝💲🐍🍥🐸☝♣👊⚓❌🐯🏈📰🌧👿🐳💷🐺📞🆒🍀🤐🚲🍔👹🙍🌷🙎🐥💵🔝📸⚠❓🎩✂🍼😑⬇⚾🍎💔🐔⚽💭🏌🐷🍍✖🍇📝🍊🐙👋🤔🥊🗽🐑🐘🐰💐🐴♀🐦🍓✏👂🏴👇🆘😡🏉👩💌😺✝🐼🐒🐶👺🖕👬🍉🐻🐾⬅⏬▶👮🍌♂🔸👶🐮👪⛳🐐🎾🐕👴🐨🐊🔹©🎣👦👣👨👈💬⭕📹📷"
@@ -0,0 +1,458 @@
1
+ # Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ """Register the st.components.v2 API namespace."""
16
+
17
+ from __future__ import annotations
18
+
19
+ from typing import TYPE_CHECKING, Any
20
+
21
+ from streamlit.components.v2.component_definition_resolver import (
22
+ build_definition_with_validation,
23
+ )
24
+ from streamlit.components.v2.get_bidi_component_manager import (
25
+ get_bidi_component_manager,
26
+ )
27
+ from streamlit.errors import StreamlitAPIException
28
+
29
+ if TYPE_CHECKING:
30
+ from streamlit.components.v2.types import BidiComponentCallable
31
+
32
+ if TYPE_CHECKING:
33
+ from collections.abc import Callable
34
+
35
+ from streamlit.components.v2.bidi_component import BidiComponentResult
36
+ from streamlit.elements.lib.layout_utils import Height, Width
37
+ from streamlit.runtime.state.common import WidgetCallback
38
+
39
+
40
+ def _register_component(
41
+ name: str,
42
+ html: str | None = None,
43
+ css: str | None = None,
44
+ js: str | None = None,
45
+ ) -> str:
46
+ """Register a component and return its fully qualified key.
47
+
48
+ This shared function handles the component registration and constructing a
49
+ validated definition against any pre-registered components from
50
+ ``pyproject.toml``.
51
+
52
+ Parameters
53
+ ----------
54
+ name : str
55
+ A short, descriptive identifier for the component.
56
+ html : str or None
57
+ Inline HTML markup for the component root.
58
+ css : str | None
59
+ Either inline CSS (string) or an asset-dir-relative path/glob to a
60
+ ``.css`` file declared in the component's ``asset_dir``. Globs are
61
+ allowed and must resolve to exactly one file within ``asset_dir``.
62
+ js : str | None
63
+ Either inline JavaScript (string) or an asset-dir-relative path/glob to
64
+ a ``.js`` file declared in the component's ``asset_dir``. Globs are
65
+ allowed and must resolve to exactly one file within ``asset_dir``.
66
+
67
+ Returns
68
+ -------
69
+ str
70
+ The fully qualified component key in the form ``<module_name>.<n>``.
71
+
72
+ Raises
73
+ ------
74
+ StreamlitAPIException
75
+ If ``css`` or ``js`` parameters are not strings or None.
76
+ """
77
+ # Parameter type guards: only strings or None are supported for js/css
78
+ for _param_name, _param_value in (("css", css), ("js", js)):
79
+ if _param_value is not None and not isinstance(_param_value, str):
80
+ raise StreamlitAPIException(
81
+ f"{_param_name} parameter must be a string or None. Pass a string path or glob."
82
+ )
83
+
84
+ component_key = name
85
+
86
+ manager = get_bidi_component_manager()
87
+ manager.register(
88
+ build_definition_with_validation(
89
+ manager=manager,
90
+ component_key=component_key,
91
+ html=html,
92
+ css=css,
93
+ js=js,
94
+ )
95
+ )
96
+
97
+ # Record API inputs for future re-resolution on file changes
98
+ manager.record_api_inputs(component_key, css, js)
99
+
100
+ return component_key
101
+
102
+
103
+ def _create_component_callable(
104
+ name: str,
105
+ *,
106
+ html: str | None = None,
107
+ css: str | None = None,
108
+ js: str | None = None,
109
+ ) -> Callable[..., Any]:
110
+ """Create a component callable, handling both lookup and registration cases.
111
+
112
+ Parameters
113
+ ----------
114
+ name : str
115
+ A short, descriptive identifier for the component.
116
+ html : str | None
117
+ Inline HTML markup for the component root.
118
+ css : str | None
119
+ Inline CSS (string) or a string path/glob to a file under ``asset_dir``;
120
+ see :func:`_register_component` for path validation semantics.
121
+ js : str | None
122
+ Inline JavaScript (string) or a string path/glob to a file under
123
+ ``asset_dir``; see :func:`_register_component` for path validation semantics.
124
+
125
+ Returns
126
+ -------
127
+ Callable[..., Any]
128
+ A function that, when called inside a Streamlit script, mounts the
129
+ component and returns its state.
130
+
131
+ Raises
132
+ ------
133
+ StreamlitAPIException
134
+ If a component is not found in the registry.
135
+ """
136
+ component_key = _register_component(name=name, html=html, css=css, js=js)
137
+
138
+ # The inner callable that mounts the component.
139
+ def _mount_component(
140
+ *,
141
+ key: str | None = None,
142
+ data: Any | None = None,
143
+ default: dict[str, Any] | None = None,
144
+ width: Width = "stretch",
145
+ height: Height = "content",
146
+ isolate_styles: bool = True,
147
+ **on_callbacks: WidgetCallback | None,
148
+ ) -> BidiComponentResult:
149
+ """Mount the component.
150
+
151
+ Parameters
152
+ ----------
153
+ key : str or None
154
+ An optional string to use as the unique key for the component.
155
+ data : Any or None
156
+ Data to pass to the component (JSON-serializable).
157
+ default : dict[str, Any] or None
158
+ A dictionary of default values for state properties. Keys must
159
+ correspond to valid state names (those with on_*_change callbacks).
160
+ width : Width
161
+ The width of the component.
162
+ height : Height
163
+ The height of the component.
164
+ isolate_styles : bool
165
+ Whether to sandbox the component styles in a shadow-root. Defaults to
166
+ True.
167
+ **on_callbacks : WidgetCallback
168
+ Callback functions for handling component events. Use pattern
169
+ on_{state_name}_change (e.g., on_click_change, on_value_change).
170
+
171
+ Returns
172
+ -------
173
+ BidiComponentResult
174
+ Component state.
175
+ """
176
+ import streamlit as st
177
+
178
+ return st._bidi_component(
179
+ component_key,
180
+ key=key,
181
+ isolate_styles=isolate_styles,
182
+ data=data,
183
+ default=default,
184
+ width=width,
185
+ height=height,
186
+ **on_callbacks,
187
+ )
188
+
189
+ # Ensure the function remains compatible with the shared public callable type.
190
+ # Static type assertion to ensure the callable matches the shared signature
191
+ _typed_check_mount_component: BidiComponentCallable = _mount_component
192
+
193
+ return _mount_component
194
+
195
+
196
+ def component(
197
+ name: str,
198
+ *,
199
+ html: str | None = None,
200
+ css: str | None = None,
201
+ js: str | None = None,
202
+ ) -> BidiComponentCallable:
203
+ '''Register an ``st.components.v2`` component and return a callable to mount it.
204
+
205
+ A component must have HTML, JavaScript, or both. If you want a component
206
+ with only CSS, use ``st.html`` instead.
207
+
208
+ If your component is defined in an installed package, you can declare an
209
+ asset directory (``asset_dir``) through ``pyproject.toml`` files in the
210
+ package. This allows you to serve component assets and reference them by
211
+ path or glob in the ``html``, ``css``, and ``js`` parameters. Otherwise,
212
+ you must provide raw HTML, CSS, and/or JavaScript strings directly to these
213
+ parameters.
214
+
215
+ .. important::
216
+ When using paths or globs to define one or more component assets, the
217
+ paths must be relative to the component's ``asset_dir`` as declared in
218
+ the component manifest. This is only possible for installed components.
219
+
220
+ For security reasons, absolute paths and path traversals are rejected.
221
+ Because of runtime constraints, paths and globs must be provided as
222
+ strings and not ``Path`` objects.
223
+
224
+ Parameters
225
+ ----------
226
+ name : str
227
+ A short, descriptive identifier for the component. This is used
228
+ internally by Streamlit to manage instances of the component.
229
+
230
+ Component names must be unique across an app. The names of imported
231
+ components are prefixed by their module name to avoid collisions.
232
+
233
+ If you register multiple components with the same name, a warning is
234
+ logged and the last-registered component is used. Because this can lead
235
+ to unexpected behavior, ensure that component names are unique. If you
236
+ intend to have multiple instances of a component in one app, avoid
237
+ wrapping a component definition together with its mounting command so
238
+ you don't re-register your component with each instance.
239
+
240
+ html : str or None
241
+ Inline HTML markup for the component root. This can be one of the
242
+ following strings:
243
+
244
+ - Raw HTML. This doesn't require any ``<html>``, ``<head>``, or
245
+ ``<body>`` tags; just provide the inner HTML.
246
+ - A path or glob to an HTML file, relative to the component's
247
+ asset directory.
248
+
249
+ If any HTML depends on data passed at mount time, use a placeholder
250
+ element and populate it via JavaScript. Alternatively, you can append
251
+ a new element to the parent. For more information, see Example 2.
252
+
253
+ ``html`` and ``js`` can't both be ``None``. At least one of them must
254
+ be provided.
255
+
256
+ css : str or None
257
+ Inline CSS. This can be one of the following strings:
258
+
259
+ - Raw CSS (without a ``<style>`` block).
260
+ - A path or glob to a CSS file, relative to the component's
261
+ asset directory.
262
+
263
+ js : str or None
264
+ Inline JavaScript. This can be one of the following strings:
265
+
266
+ - Raw JavaScript (without a ``<script>`` block).
267
+ - A path or glob to a JS file, relative to the component's
268
+ asset directory.
269
+
270
+ ``html`` and ``js`` can't both be ``None``. At least one of them must
271
+ be provided.
272
+
273
+ Returns
274
+ -------
275
+ BidiComponentCallable
276
+ The component's mounting command.
277
+
278
+ This callable accepts the component parameters like ``key`` and
279
+ ``data`` and returns a ``BidiComponentResult`` object with the
280
+ component's state. The mounting command can be included in a
281
+ user-friendly wrapper function to provide a simpler API. A mounting
282
+ command can be called multiple times in an app to create multiple
283
+ instances of the component.
284
+
285
+ Examples
286
+ --------
287
+ **Example 1: Create a JavaScript-only component that captures link clicks**
288
+
289
+ You can create a simple component that allows inline links to communicate
290
+ with Python. Normally, clicking links in a Streamlit app would start a new
291
+ session. This component captures link clicks and sends them to Python as
292
+ trigger values.
293
+
294
+ .. code-block:: python
295
+
296
+ import streamlit as st
297
+
298
+ JS = """
299
+ export default function(component) {
300
+ const { setTriggerValue } = component;
301
+ const links = document.querySelectorAll('a[href="#"]');
302
+
303
+ links.forEach((link) => {
304
+ link.onclick = (e) => {
305
+ setTriggerValue('clicked', link.innerHTML);
306
+ };
307
+ });
308
+ }
309
+ """
310
+
311
+ my_component = st.components.v2.component(
312
+ "inline_links",
313
+ js=JS,
314
+ )
315
+
316
+ result = my_component(on_clicked_change=lambda: None)
317
+
318
+ st.markdown(
319
+ "Components aren't [sandboxed](#), so you can write JS that [interacts](#) with the main [document](#)."
320
+ )
321
+
322
+ if result.clicked:
323
+ st.write(f"You clicked {result.clicked}!")
324
+
325
+ .. output ::
326
+ https://doc-components-markdown-links.streamlit.app/
327
+ height: 250px
328
+
329
+ **Example 2: Display a paragraph with custom inline links**
330
+
331
+ If you want to dynamically pass custom data from inline links, you can pass
332
+ HTML to the ``data`` parameter of the component's mount command. When a
333
+ link is clicked, the component sets a trigger value from the link's
334
+ ``data-link`` HTML attribute.
335
+
336
+ .. warning::
337
+
338
+ If you directly modify the inner HTML of the parent element, you will
339
+ overwrite the HTML and CSS passed to the component. Instead, create a
340
+ new child element and set its inner HTML. You can create the
341
+ placeholder dynamically in JavaScript or include it in the ``html``
342
+ parameter.
343
+
344
+ .. code-block:: python
345
+
346
+ import streamlit as st
347
+
348
+ CSS = """
349
+ a {
350
+ color: var(--st-link-color);
351
+ }
352
+ """
353
+
354
+ JS = """
355
+ export default function(component) {
356
+ const { data, setTriggerValue, parentElement } = component;
357
+ const newElement = document.createElement('div');
358
+ parentElement.appendChild(newElement);
359
+ newElement.innerHTML = data;
360
+
361
+ const links = newElement.querySelectorAll('a');
362
+
363
+ links.forEach((link) => {
364
+ link.onclick = (e) => {
365
+ setTriggerValue('clicked', link.getAttribute('data-link'));
366
+ };
367
+ });
368
+ }
369
+ """
370
+
371
+ my_component = st.components.v2.component(
372
+ "inline_links",
373
+ css=CSS,
374
+ js=JS,
375
+ )
376
+
377
+ paragraph_html = """
378
+ <p>This is an example paragraph with inline links. To see the response in
379
+ Python, click on the <a href="#" data-link="link_1">first link</a> or
380
+ <a href="#" data-link="link_2">second link</a>.</p>
381
+ """
382
+
383
+ result = my_component(data=paragraph_html, on_clicked_change=lambda: None)
384
+ if result.clicked == "link_1":
385
+ st.write("You clicked the first link!")
386
+ elif result.clicked == "link_2":
387
+ st.write("You clicked the second link!")
388
+
389
+ .. output ::
390
+ https://doc-components-custom-anchors.streamlit.app/
391
+ height: 250px
392
+
393
+ **Example 3: Display an interactive SVG image**
394
+
395
+ You can create a component that displays an SVG image with clickable
396
+ shapes. When a shape is clicked, the component sends the shape type to
397
+ Python as a trigger value.
398
+
399
+ .. code-block:: python
400
+
401
+ import streamlit as st
402
+
403
+ HTML = """
404
+ <p>Click on the triangle, square, or circle to interact with the shapes:</p>
405
+
406
+ <svg width="400" height="300">
407
+ <polygon points="100,50 50,150 150,150" data-shape="triangle"></polygon>
408
+ <rect x="200" y="75" width="100" height="100" data-shape="square"></rect>
409
+ <circle cx="125" cy="225" r="40" data-shape="circle"></circle>
410
+ </svg>
411
+ """
412
+
413
+ JS = """
414
+ export default function(component) {
415
+ const { setTriggerValue, parentElement } = component;
416
+ const shapes = parentElement.querySelectorAll('[data-shape]');
417
+
418
+ shapes.forEach((shape) => {
419
+ shape.onclick = (e) => {
420
+ setTriggerValue('clicked', shape.getAttribute('data-shape'));
421
+ };
422
+ });
423
+ }
424
+ """
425
+
426
+ CSS = """
427
+ polygon, rect, circle {
428
+ stroke: var(--st-primary-color);
429
+ stroke-width: 2;
430
+ fill: transparent;
431
+ cursor: pointer;
432
+ }
433
+ polygon:hover, rect:hover, circle:hover {
434
+ fill: var(--st-secondary-background-color);
435
+ }
436
+ """
437
+
438
+ my_component = st.components.v2.component(
439
+ "clickable_svg",
440
+ html=HTML,
441
+ css=CSS,
442
+ js=JS,
443
+ )
444
+
445
+ result = my_component(on_clicked_change=lambda: None)
446
+ result
447
+
448
+ .. output ::
449
+ https://doc-components-interactive-svg.streamlit.app/
450
+ height: 550px
451
+
452
+ '''
453
+ return _create_component_callable(name, html=html, css=css, js=js)
454
+
455
+
456
+ __all__ = [
457
+ "component",
458
+ ]
@@ -0,0 +1,20 @@
1
+ # Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from __future__ import annotations
16
+
17
+ from streamlit.components.v2.bidi_component.main import BidiComponentMixin
18
+ from streamlit.components.v2.bidi_component.state import BidiComponentResult
19
+
20
+ __all__ = ["BidiComponentMixin", "BidiComponentResult"]
@@ -0,0 +1,29 @@
1
+ # Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2025)
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from __future__ import annotations
16
+
17
+ from typing import Final
18
+
19
+ INTERNAL_COMPONENT_NAME: Final[str] = "bidi_component"
20
+
21
+ # Shared constant that delimits the base widget id from the event suffix.
22
+ # This value **must** stay in sync with its TypeScript counterpart defined in
23
+ # `frontend/lib/src/components/widgets/BidiComponent/constants.ts`.
24
+ EVENT_DELIM: Final[str] = "__"
25
+
26
+ # Shared constant that is used to identify ArrowReference objects in the data structure.
27
+ # This value **must** stay in sync with its TypeScript counterpart defined in
28
+ # `frontend/lib/src/components/widgets/BidiComponent/constants.ts`.
29
+ ARROW_REF_KEY: Final[str] = "__streamlit_arrow_ref__"