Releases: streamlit/streamlit
Releases · streamlit/streamlit
1.56.0
What's Changed
New Features 🎉
- [feat] Allow specifying number of visible items via
expandedinst.navigationby @lukasmasuch in #14051 - [feat] Add
on_clickrerun support tost.link_buttonby @lukasmasuch in #14116 - [feature] Add file type shortcuts for
st.file_uploaderandst.chat_inputby @lukasmasuch in #14140 - Allow programmatically setting
st.dataframeselections by @lukasmasuch in #13594 - [feat] Extract leading icon from alert body by @lukasmasuch in #14173
- [feat] Serve static files with native content types by @lukasmasuch in #14090
- feat: allow external URLs in st.Page for navigation sidebar by @t0k0shi in #13691
- [feat] Add
AudioColumnandVideoColumntost.column_configby @lukasmasuch in #14032 - [feat] Add
st.menu_buttonwidget by @lukasmasuch in #13981 - [feature] Add
hide_indexandhide_headertost.tableby @lukasmasuch in #14113 - [feature] Add
heightparameter tost.chat_inputby @lukasmasuch in #14165 - [feature] Add
st.file_uploadersupport to AppTest by @lukasmasuch in #14341 - [feature] Always show the dataframe column visibility menu by @lukasmasuch in #14336
- [feature] Add support for relative static file serving URLs in media elements by @lukasmasuch in #14317
- [feature] Add
alignmentparameter tocolumn_configcolumns by @lukasmasuch in #14333 - [feat] Complete incomplete markdown syntax during streaming by @lukasmasuch in #13939
- [feature] Stable Block.id for passive keyed layout containers by @sfc-gh-lwilby in #14330
- [feature]
st.tabsstate persistence and CSS key class by @sfc-gh-lwilby in #14332 - [feature]
st.expander&st.popoverstate persistence and CSS key class by @sfc-gh-lwilby in #14356 - [feature] Add
requiredparameter tost.pillsandst.segmented_controlby @lukasmasuch in #14414 - Add support for pandas 3.x by @lukasmasuch in #13812
- [feature] Add
single-row-requiredselection mode tost.dataframeby @lukasmasuch in #14288 - [feature] Add
autoscrollparameter tost.containerby @lukasmasuch in #14502 - [feature] Add filter mode to select widgets by @lukasmasuch in #14537
- [feature] Add
st.iframecommand by @lukasmasuch in #14433
Bug Fixes 🐛
- [fix] Allow running streamlit with python optimization by @lukasmasuch in #14171
- [Fix] Fix
st.text_areaheight="content"not working by @lukasmasuch in #14228 - Fix stale anchor preserved when clearing transient nodes by @lukasmasuch in #14251
- fix(testing): initialize BidiComponentManager in AppTest mock runtime by @tysoncung in #14301
- [fix] Python 3.14 PEP 649 annotation compatibility across
inspect.signature()calls by @lukasmasuch in #14327 - [fix] Restore tooltip on st.multiselect selected options by @lukasmasuch in #14353
- [fix] Restore reactJsonViewCompat shim for local dev server by @lukasmasuch in #14391
- [Fix] Restore bound query params in URL with MPA by @mayagbarnes in #14374
- [fix] st.exception links overflow at small widths by @sfc-gh-lwilby in #14417
- [fix] Remove heading padding in horizontal containers for proper alignment by @sfc-gh-lwilby in #14419
- [fix] Streaming markdown with color directives shows artifact by @lukasmasuch in #14468
- [fix] Add Windows stability check to file watcher to reduce false positives by @lukasmasuch in #14174
- Fix #11308: update server.port after binding to port 0 by @joanaarnauth in #14372
- [fix] Add border to main menu in dark mode by @lukasmasuch in #14529
- [Fix] OpenMetrics compliance for
session_durationmetric by @mayagbarnes in #14476 - Fix programmatic dataframe selections to return AttributeDictionary by @lukasmasuch in #14455
Other Changes
- [refactor] Log widget state duplication warning to console instead of UI by @lukasmasuch in #14141
- [chore] Update emojis/material icons by @github-actions[bot] in #14186
- Update protobuf requirement from <7,>=3.20 to >=3.20,<8 in /lib by @dependabot[bot] in #14213
- [chore] Release v1.55.0 by @github-actions[bot] in #14203
- refactor(ccv2): rename BidiComponentResult to ComponentResult by @sfc-gh-bnisco in #14253
- [chore] Update emojis/material icons by @github-actions[bot] in #14282
- [chore] Update emojis/material icons by @github-actions[bot] in #14395
- Docs for
st.navigationexpandedparameter by @MathCatsAnd in #14451 - Docs for new file uploader types by @MathCatsAnd in #14453
- Docs for
st.link_buttonby @MathCatsAnd in #14452 - Docs for auto-extracting icons by @MathCatsAnd in #14458
- [chore] Update emojis/material icons by @github-actions[bot] in #14482
- Docs for menu button by @MathCatsAnd in #14495
- Docs for table hide options by @MathCatsAnd in #14497
- Docs for URL pages and navigation by @MathCatsAnd in #14480
- Docs for chat input height by @MathCatsAnd in #14499
- Add key-value list example for
st.tableby @lukasmasuch in #14474 - [Fix] Make
_stcore/metricsOpenMetrics-compliant by @mayagbarnes in #14538
New Contributors
- @Rohan5commit made their first contribution in #14154
- @t0k0shi made their first contribution in #13691
- @tysoncung made their first contribution in #14301
- @ianjch314 made their first contribution in #14354
- @joanaarnauth made their first contribution in #14372
Full Changelog: 1.55.0...1.56.0
1.55.0
What's Changed
Breaking Changes 🛠
- Add deprecation warning to SnowparkConnection by @lukasmasuch in #14125
New Features 🎉
- Extend sprintf to support thousand separator by @lukasmasuch in #13284
- Refactor
SettingsDialog& add copyable version by @mayagbarnes in #13791 - Exclude collapsed expander content from browser find-in-page (Cmd+F) by @lukasmasuch in #13818
- Allow dynamic changes to
st.pillsandst.segmented_controloptions when key is provided by @lukasmasuch in #13684 - Add support for cachetools 7.x by @lukasmasuch in #13839
- Add support for selections on multi-view vega charts by @lukasmasuch in #13591
- Add
client.allowedOriginsconfig option by @lukasmasuch in #13829 - Have server ack app_heartbeat messages received from client by @vdonato in #13810
- feat: add metricValueFontSize and metricValueFontWeight theme options by @kagawa0710 in #13550
- [feature] add width auto parameter to st.markdown by @sfc-gh-lwilby in #13841
- Bind widgets to query params - FE hooks &
color_pickersupport by @mayagbarnes in #13845 - Bind widgets to query params -
st.checkbox&st.toggleby @mayagbarnes in #13900 - Auto-escape some markdown syntax in markdown labels by @lukasmasuch in #13887
- Bind widgets to query params -
st.text_input&st.text_areaby @mayagbarnes in #13901 - Add page visibility parameter to
st.Pageby @lukasmasuch in #13905 - Add
widthandheightconfiguration tost.tableby @lukasmasuch in #13850 - Bind widgets to query params -
st.radio&st.selectboxby @mayagbarnes in #13922 - Bind widgets to query params -
st.number_inputby @mayagbarnes in #13917 - Bind widgets to query params -
st.multiselectby @mayagbarnes in #13951 - [DynamicContainers] Dynamic Popovers by @sfc-gh-lwilby in #13914
- Add select all and select x matches (select all 2) by @sfc-gh-dmatthews in #13795
- New styling for selectbox and multiselect (select all 3) by @sfc-gh-dmatthews in #13796
- New styling for date and time widgets (select all 4) by @sfc-gh-dmatthews in #13797
- New styling for remaining dropdowns (select all 5) by @sfc-gh-dmatthews in #13798
- Add
delta_descriptiontost.metricby @lukasmasuch in #13848 - [DynamicContainers] Dynamic Tabs by @sfc-gh-lwilby in #13910
- [feat] Add scroll arrows for overflowing tabs in
st.tabsby @lukasmasuch in #13987 - [DynamicContainers] Dynamic Expanders by @sfc-gh-lwilby in #13888
- Bind widgets to query params -
st.slider&st.select_sliderby @mayagbarnes in #13979 - [feat] Add custom hex color support for markdown rendering by @lukasmasuch in #14041
- [feat] Add markdown support to page titles in
st.Pageby @lukasmasuch in #14010 - Bind widgets to query params -
st.pills&st.segmented_controlby @mayagbarnes in #14006 - Bind widgets to query params -
st.date_inputby @mayagbarnes in #14034 - [DynamicContainers] Callback support for expanders by @sfc-gh-lwilby in #14008
- [Feat] Updated
MainMenuby @mayagbarnes in #14101 - Add logger.hideWelcomeMessage config option by @vdonato in #14118
- Bind widgets to query params -
st.datetime_input&st.time_inputby @mayagbarnes in #14103 - [DynamicContainers] Callback support for popovers by @sfc-gh-lwilby in #14075
- [DynamicContainers] Callback support for tabs by @sfc-gh-lwilby in #14007
- [feature] Add
linkparameter tost.imageby @lukasmasuch in #14139 - [feat] Add markdown support for navigation section headers by @lukasmasuch in #14053
Bug Fixes 🐛
- [security] Prevent SSRF attacks via path traversal in component file handling by @sfc-gh-nbellante in #13733
- [fix] Support boolean values for client.showErrorLinks config option by @sfc-gh-nbellante in #13806
- Fix
st.select_sliderformat_funcregression in AppTest by @lukasmasuch in #13837 - Initialize all columns when appending rows to
data_editorby @lukasmasuch in #13916 - Don't accept 0 max selections in
st.multiselectby @sfc-gh-dmatthews in #13966 - [fix] Restore layered vconcat width propagation and add #13974 regression tests by @sfc-gh-bnisco in #13980
- [fix] Add selection support for treemap and sunburst in
st.plotly_chartby @lukasmasuch in #13935 - fix: preserve active tab selection after spinner reruns by @sfc-gh-bnisco in #14023
- fix(code-block): move copy action into toolbar and preserve keyboard accessibility by @sfc-gh-bnisco in #14024
- Fix st.Page accepting slash-only url_path without raising exception by @nileshhadalgi016 in #14005
- fix(vega-lite): render vconcat charts with faceted/repeated children by @sfc-gh-bnisco in #14065
- fix(widgets): clear stale date validation UI on form clear by @sfc-gh-bnisco in #14066
- fix(button-group): keep segmented control hover borders visually consistent by @sfc-gh-bnisco in #14067
- Cache SqlConnection.query results per-instance. by @sfc-gh-jkinkead in #14094
- [fix] st.metric with chart_data wrapping in horizontal containers by @sfc-gh-lwilby in #14110
- [fix] Normalize all
date_inputsession state values to date by @lukasmasuch in #14123 - Fix spinner clear_transient race condition during rapid reruns by @kmcgrady in #13849
Other Changes
- Improve
streamlit config showoutput for theme sourcing by @mayagbarnes in #13761 - [chore] Update emojis/material icons by @github-actions[bot] in #13789
- [chore] Release v1.54.0 by @github-actions[bot] in #13807
- [refactor] remove loading skeleton for dynamic popover by @sfc-gh-lwilby in #14043
- [chore] Update emojis/material icons by @github-actions[bot] in #14099
- Improve version copy accessibility by @mayagbarnes in #14131
- [chore] Wire up check_widget_policies correctly in dynamic containers by @sfc-gh-lwilby in #14143
- Format date/time slider URL query params as ISO strings by @mayagbarnes in #14120
New Contributors
- @nileshhadalgi016 made their first contribution in #14005
Full Changelog: 1.54.0...1.55.0
1.54.0
What's Changed
Breaking Changes 🛠
- Remove experimental query params by @lukasmasuch in #13142
- Remove deprecated
st.experimental_usercommand by @lukasmasuch in #13626 - Set
add_rowsdeprecation warning to show in browser by @lukasmasuch in #13628
New Features 🎉
- Use
keyas main identity forst.dataframewith selections by @lukasmasuch in #13558 - Use
keyas main identity for vega charts with selections by @lukasmasuch in #13559 - Add
chartDivergingColorstheming config option by @mayagbarnes in #13581 - Allow dynamically changing in min and max in
st.date_inputby @lukasmasuch in #13549 - Allow dynamically changing
min_valueandmax_valueinst.datetime_inputwhenkeyis provided by @lukasmasuch in #13620 - Prepare pandas 3.0 compatibility by @lukasmasuch in #13630
- Allow dynamic changes to
st.radiooptions whenkeyis provided by @lukasmasuch in #13611 - Support auto-rerun when
config.tomlis created by @lukasmasuch in #13625 - Allow selecting text of pills in the
MultiselectColumnandListColumnby @lukasmasuch in #13663 - Prepare for binding widgets to query params - Part 1 by @mayagbarnes in #13681
- feat(logo): add support for Material icons and emojis in st.logo by @rahuld109 in #13416
- Allow dynamic changes to
st.select_slideroptions whenkeyis provided by @lukasmasuch in #13696 - Add "client.showErrorLinks` config option (#11238)" by @karubian in #13472
- Allow dynamic changes to
st.pydeck_chartparameters whenkeyis provided by @lukasmasuch in #13703 - Support resolving to theme colors configs for charts by @mayagbarnes in #13739
Bug Fixes 🐛
- Fix bar chart error with uniform column values by @sfc-gh-kmcgrady in #13590
- [fix] Increase max width of uploaded files in
st.chat_inputby @sfc-gh-nbellante in #13589 - [fix] Add defensive check in Manifest Scanner by @sfc-gh-bnisco in #13612
- Support new auth features in Starlette by @lukasmasuch in #13571
- Hide developer options when toolbarMode="viewer" by @sfc-gh-dmatthews in #13623
- Fix SnowflakeConnection.query() cache key to include params by @sfc-gh-kmcgrady in #13652
- Fix crash with container elements in spinner context by @sfc-gh-kmcgrady in #13659
- Fix a regression with snowflake connection being closed by @lukasmasuch in #13665
- Fix TransientNode not capturing BlockNode as anchor when replacing by @kmcgrady in #13674
- Fix selectbox and multiselect clearing selections for custom objects by @lukasmasuch in #13648
- Fix
KeyErrorwhen sorting melted bar chart data by @lukasmasuch in #13695 - Fix sidebar collapsing on mobile when clicking portaled elements by @sfc-gh-kmcgrady in #13653
- [fix] Display wildcard addresses as localhost in URLs by @sfc-gh-nbellante in #13720
Other Changes
- [chore] Release v1.53.0 by @github-actions[bot] in #13588
- [chore] Release v1.53.1 by @github-actions[bot] in #13676
New Contributors
- @sfc-gh-kmcgrady made their first contribution in #13590
- @rahuld109 made their first contribution in #13416
- @rishi-kumar0612 made their first contribution in #13004
- @karubian made their first contribution in #13472
Full Changelog: 1.53.1...1.54.0
1.53.1
Full Changelog: 1.53.0...1.53.1
1.53.0
What's Changed
Breaking Changes 🛠
- [feat] Move the isolate_styles param in CCv2 by @sfc-gh-bnisco in #13518
- [feat] Rename some external CCv2 types by @sfc-gh-bnisco in #13515
New Features 🎉
- Support for markdown in the metrics value and delta parameters by @jensonjohnathon in #13094
- Make Default Sidebar Width Configurable by @jose-mindwayai in #12154
- [feat] Update chat input UI with improved layout and styling by @sfc-gh-nbellante in #13088
- Add support for setting metric delta colors from color palette by @lukasmasuch in #13153
- Support configuring the
formatinst.metricby @lukasmasuch in #13193 - Support for markdown in select_slider options by @jensonjohnathon in #12960
- Navigate to home page on logo click by @lukasmasuch in #13222
- Add max_upload_size parameter to file_uploader and chat_input by @rishabhjain1712 in #12816
- Allow only adding or deleting rows in
st.data_editorby @lukasmasuch in #13228 - Add
icon_positionsupport for button-like components by @SiddhantSadangi in #13150 - [feat] Add headingFontSize1-6 and headingFontWeight1-6 CSS Custom Properties by @sfc-gh-bnisco in #13268
- [feat] Enhance
st.chat_inputfile upload UI with improved file chips and retry functionality by @sfc-gh-nbellante in #13223 - Add icon support to dialogs by @KaranPradhan266 in #13244
- Allow dynamic changes to selectbox options when
keyis provided by @lukasmasuch in #13383 - Add path tooltip on
st.jsonvalue click by @lukasmasuch in #13113 - Support passing list of pydantic objects as dataframe-like structure by @lukasmasuch in #13348
- [feat] Update AGENTS rules for better a11y practices by @sfc-gh-bnisco in #13411
- [feat] Update eslint rules for better a11y support by @sfc-gh-bnisco in #13412
- Expose OIDC tokens by @velochy in #12044
- Support pre-defined formats in
formatofst.sliderby @lukasmasuch in #13392 - Add on_release to st.cache_resource. by @sfc-gh-jkinkead in #13439
- Add gaps and sizes for xxsmall, xsmall, xlarge, xxlarge in st.container/columns/space by @sfc-gh-tteixeira in #13345
- Add new session_duration_seconds_total stats by @vdonato in #13414
- Add session scoping to caches. by @sfc-gh-jkinkead in #13482
- [feat] Simplify chat input UI with single-row layout for basic configurations by @sfc-gh-nbellante in #13364
- Add session-scoped connection support. by @sfc-gh-jkinkead in #13506
- [feat] Allow for optional js, css, and html params in CCv2 by @sfc-gh-bnisco in #13511
- Allow dynamically changing in min, max and step in
st.number_inputby @lukasmasuch in #13512 - Add optional support for running Streamlit with Starlette by @lukasmasuch in #13375
- Add SnowflakeCallersRightsConnection. by @sfc-gh-jkinkead in #13538
- Allow dynamic changes to multiselect options when
keyis provided by @lukasmasuch in #13448 - fix(multiselect): preserve scroll position when removing items by @kagawa0710 in #13384
- Add experimental ASGI app entry point for advanced server configuration by @lukasmasuch in #13537
- Allow OAuth redirect_uri to reference current port by @velochy in #12251
- Make st.logout use end_session_endpoint if provided in OIDC config (V2) by @velochy in #12693
- [feat] Add dynamic layout switching for
st.chat_inputby @sfc-gh-nbellante in #13546
Bug Fixes 🐛
- [fix] improve width/height error message to say "positive integer" by @sfc-gh-lwilby in #13206
- Fix unexpected shrinking of logo with top nav by @lukasmasuch in #13226
- [fix] Do not render sidebar nav when top nav enabled by @sfc-gh-bnisco in #13227
- Implement transient spinners by @kmcgrady in #12826
- [fix] Include default in key for CCv2 instances by @sfc-gh-bnisco in #13266
- [fix] Ensure key down targeting works for elements in Shadow DOM by @sfc-gh-bnisco in #13264
- Fix data editor regression when starting from empty column by @lukasmasuch in #13309
- Prevent
st.dialogfrom showing elements from previous dialog by @lukasmasuch in #13297 - Fix auth-related issues caused by dependency updates by @lukasmasuch in #13333
- [Fix] Theme preference persistence across reloads by @mayagbarnes in #13306
- [fix] Handle undefined theme properties in CCv2 by @sfc-gh-bnisco in #13240
- [fix] Ensure crossOrigin attribute is properly set for CCv2 stylesheets by @sfc-gh-bnisco in #13376
- Fix the spinner time text alignment by @lukasmasuch in #13388
- [fix] tooltip text leaking with newlines in help by @sfc-gh-lwilby in #13365
- [fix] Ensure anchor links in Markdown headers are accessible from keyboard by @sfc-gh-bnisco in #13378
- [fix] Ensure help Tooltips are accessible by @sfc-gh-bnisco in #13379
- [Fix]
st.htmlhandles list indentation by @mayagbarnes in #13437 - [Fix]
st.selectboxset via session state does not restore initial value by @mayagbarnes in #13438 - [Fix] Altair charts with vconcat and hconcat by @mayagbarnes in #13423
- Fix custom theme when embedded with embed_options by @ranmocy in #13498
- Improve
st.number_inputprecision by @mayagbarnes in #13484 - Add ability to clear transient nodes when the script is run by @kmcgrady in #13166
- [fix] Correct justifyContents to justifyContent in Icon styled-components by @sfc-gh-nbellante in #13557
- [fix] Fix upload button functionality after drag-drop and delete in
st.chat_inputby @sfc-gh-nbellante in #13556
Other Changes
- [chore] Release v1.52.0 by @github-actions[bot] in #13186
- [chore] Release v1.52.1 by @github-actions[bot] in #13235
- [Fix] Theme hashing by @mayagbarnes in #13173
- Use the correct snowflake.com domains by @lukasmasuch in #13363
- [chore] Release v1.52.2 by @github-actions[bot] in #13390
- [polish] Update chat input file chip border radius to match Figma by @sfc-gh-nbellante in #13532
- [Fix] Consolidate border/hover colors by @mayagbarnes in #13536
- [feat] Replace inline error messages with tooltips in
st.chat_inputfile upload UI by @sfc-gh-nbellante in #13542 - [fix] Update ghost button colors for
st.chat_inputbuttons by @sfc-gh-nbellante in #13535 - [fix] Improve
st.chat_inputfile delete button colors by @sfc-gh-nbellante in #13554 - [polish] Replace Mic icon with MicNone icon in
st.chat_inputby @sfc-gh-nbellante in #13553 - [fix] Shorten
st.chat_inputfile chip display to adhere to designs by @sfc-gh-nbellante in #13555 - [feat] Add image thumbnails to
st.chat_inputfile uploads by @sfc-gh-nbellante in #13547
New Contributors
- @jensonjohnathon made their first contribution in #13094
- @jose-mindwayai made their first contribution in #12154
- @rishabhjain1712 made their first contribution in https://github.com/streamlit/streamlit/p...
1.52.2
Full Changelog: 1.52.1...1.52.2
1.52.1
Full Changelog: 1.52.0...1.52.1
1.52.0
What's Changed
Breaking Changes 🛠
- Remove native bokeh charts support by @lukasmasuch in #12964
- Add deprecation note to
add_rowscommand by @lukasmasuch in #13080 - Deprecate kwargs support for
st.vega_lite_chartby @lukasmasuch in #13141
New Features 🎉
- [feature] support width="content" on
st.containerby @sfc-gh-lwilby in #12848 - [AdvancedLayouts] Add
height="content"tost.dataframeandst.data_editor. by @sfc-gh-lwilby in #12875 - [AdvancedLayouts] Add height to st.plotly_chart by @sfc-gh-lwilby in #12593
- [feat] Add accept_audio parameter to enable audio recording in chat_input by @sfc-gh-nbellante in #12836
- [feat] Add help argument and tooltip to st.badge by @marcolanfranchi in #12897
- [feat] Add frontend for executing JS in st.html by @sfc-gh-bnisco in #12918
- Use key as main identity for
st.file_uploaderwidget by @lukasmasuch in #12955 - Use
keyas main identity forst.camera_inputwidget by @lukasmasuch in #12781 - [feat] Add microphone permission denied error handling to audio components by @sfc-gh-nbellante in #12914
- Implement missing placeholder for
st.dataframeby @lukasmasuch in #12968 - Show warning when hiding index in dynamic data editor by @lukasmasuch in #12978
- Add deferred download button by @sfc-gh-aamadhavan in #12942
- [feat][TextAlignment] Adds text alignment parameter to
st.textby @sfc-gh-lwilby in #13032 - Add support for setting spinner as
iconby @lukasmasuch in #13045 - Add support for Python 3.14 by @lukasmasuch in #12967
- Datetime input by @sfc-gh-aamadhavan in #13029
- Allow configuring delta arrow in
st.metricby @lukasmasuch in #12982 - [feat][TextAlignment] add text alignment for heading elements. by @sfc-gh-lwilby in #13034
- Support passing query params to
st.switch_pageby @lukasmasuch in #13027 - [feat] Add audio_sample_rate parameter to chat_input for customizable recording quality by @sfc-gh-nbellante in #13054
- Add optional uvloop support for better event loop performance by @lukasmasuch in #13047
- Allow configuring keyboard shortcuts on buttons by @lukasmasuch in #12975
- Support passing query params to
st.page_linkby @lukasmasuch in #13093 - [feat][TextAlignment] Adds text_alignment parameter to markdown elements by @sfc-gh-lwilby in #13036
Bug Fixes 🐛
- [fix] st.text_area negative height calculation by @sfc-gh-lwilby in #12891
- Fix
MultiselectColumnissue when starting with empty rows by @lukasmasuch in #12935 - Fix
MultiselectColumnshape error when adding data by @lukasmasuch in #12936 - [Fix] Font fallback & sidebar page nav font by @mayagbarnes in #12948
- [Fix] Disabled widgets show border when
showWidgetBorder=trueby @mayagbarnes in #12949 - [fix] st.pills and st.segmented_control wrapping regression by @sfc-gh-lwilby in #12969
- [fix] st.color_picker minimum width constraint by @sfc-gh-lwilby in #12962
- Improve metric sparkline hovering efficiency by @lukasmasuch in #12983
- [fix] st.dataframe date picker icon visibility in dark mode by @aritradhabal in #12994
- [fix] Fixes visual regression with
st.audio_inputwaveform by @sfc-gh-nbellante in #13010 - Bump js-yaml from 3.14.1 to 3.14.2 in /component-lib by @dependabot[bot] in #13026
- [fix] Do not print warning for placeholder CCv2 definitions by @sfc-gh-bnisco in #13043
- [fix] st.feedback icon wrapping with minimum width enforcement by @sfc-gh-lwilby in #12970
- Remove upper bound for the
packagingpackage by @tomtung in #13073 - Fix empty Markdown code blocks rendering as “undefined” by @ashm-dev in #13074
- [fix] segmented control wrapping issue by @sfc-gh-lwilby in #12879
- [fix] Ensure key is reflective of data arg in CCv2 instances by @sfc-gh-bnisco in #12950
- Fix query parameters not preserved on back navigation by @lukasmasuch in #13129
- Enable better file uploading on Android by @lukasmasuch in #13132
- [fix] Reclassify Auth Callback Error -> Warning by @sfc-gh-bnisco in #13127
- Improve
st.line_charthovering performance by @lukasmasuch in #13156
Other Changes
- Docs for Custom Components V2 by @sfc-gh-dmatthews in #12877
- [chore] Release v1.51.0 by @github-actions[bot] in #12889
- Update
FormsContextby @mayagbarnes in #12788 - Add
ScriptRunContext&ThemeContextby @mayagbarnes in #12789 - Add
NavigationContextby @mayagbarnes in #12790 - Add
SidebarConfigContextby @mayagbarnes in #12791 - Improve phrasing of st.plotly_chart **kwarg deprecation warning by @sfc-gh-tteixeira in #12989
- Add enhancement proposal process by @lukasmasuch in #12248
- Add support for altair 6 by @lukasmasuch in #13003
- [fix] Conditionally expose files/audio attributes in ChatInputValue based on accept parameters by @sfc-gh-nbellante in #13079
- Reduce entry bundle size - Part 1 by @mayagbarnes in #13071
- Reduce entry bundle size - Part 2 by @mayagbarnes in #13077
- Reduce entry bundle size - Part 3 by @mayagbarnes in #13099
- Reduce entry bundle size - Part 4 by @mayagbarnes in #13115
- Reduce entry bundle size - Part 5 by @mayagbarnes in #13128
StreamlitMarkdown- module level plugin cache by @mayagbarnes in #13152
New Contributors
- @marcolanfranchi made their first contribution in #12897
- @aritradhabal made their first contribution in #12994
- @sfc-gh-aamadhavan made their first contribution in #12942
- @tomtung made their first contribution in #13073
- @Copilot made their first contribution in #13106
Full Changelog: 1.51.0...1.52.0
1.51.0
What's Changed
New Features 🎉
- [AdvancedLayouts] Add width to
st.plotly_chartby @sfc-gh-lwilby in #12559 - Feat: Automatically hide row indices in
st.dataframewhen row selection is active by @plumol in #12448 - [AdvancedLayouts] Add width to
st.vega_lite_chartby @sfc-gh-lwilby in #12517 - Add
codeTextColorconfig & updatelinkColorby @mayagbarnes in #12562 - [AdvancedLayouts] Add height to st.vega_lite_chart by @sfc-gh-lwilby in #12577
- [AdvancedLayouts] Add width to st.pydeck_chart by @sfc-gh-lwilby in #12576
- Use
keyas main identity forst.color_pickerby @lukasmasuch in #12569 - Add
typeargument tost.popoverto matchst.buttonby @sfc-gh-tteixeira in #12598 - [AdvancedLayouts] Add width to st.altair_chart by @sfc-gh-lwilby in #12608
- Add
cursorkwarg to st.write_stream by @sfc-gh-tteixeira in #12597 - In
streamlit hello, preload Python modules that are slow to compile in a fresh venv by @sfc-gh-tteixeira in #12617 - Reusable Custom Themes via
theme.baseconfig by @mayagbarnes in #12572 - Make
streamlit runwith no args meanstreamlit run streamlit_app.pyby @sfc-gh-tteixeira in #12599 - Allow st.feedback to have a default initial value (#9469) -> #9658 by @andreasntr in #12578
- [AdvancedLayouts] Add height to st.altair_chart by @sfc-gh-lwilby in #12630
- [AdvancedLayouts] Modernize height parameter for st.pydeck_chart by @sfc-gh-lwilby in #12613
- [AdvancedLayouts] Update width and height on st.map by @sfc-gh-lwilby in #12658
- [AdvancedLayouts] Modernize width/height parameters for st.scatter_chart by @sfc-gh-lwilby in #12659
- [AdvancedLayouts] Modernize width and height for st.area_chart and st.bar_chart by @sfc-gh-lwilby in #12672
- Custom Dark Theme - add light/dark section configurations for
theme&theme.sidebarby @mayagbarnes in #12680 - Use
keyas main identity forst.segmented_controlwidget by @lukasmasuch in #12711 - Use key as main identity for
st.radiowidget by @lukasmasuch in #12705 - Use
keyas main identity forst.audio_inputwidget by @lukasmasuch in #12720 - Add
pinnedparameter toMultiselectColumnby @lukasmasuch in #12714 - Use
keyas main identity forst.sliderandst.select_sliderby @lukasmasuch in #12575 - Custom Dark Theme - support light/dark config inheritance & populate new session msg by @mayagbarnes in #12707
- Use
keyas main identity forst.chat_inputwidget by @lukasmasuch in #12725 - Add support for
autocolor toMutliselectColumnusing chart colors by @lukasmasuch in #12724 - Allow configuring
colorforProgressColumnby @lukasmasuch in #12738 - Use
keyas main identity forst.feedbackandst.pillswidgets by @lukasmasuch in #12717 - [AdvancedLayouts] Add stretch height to st.dataframe by @sfc-gh-lwilby in #12632
- Custom Dark Theme - theme & sidebar theme creation by @mayagbarnes in #12760
- Custom Dark Theme - main & settings menu updates by @mayagbarnes in #12761
- [feat] Add API for
st.spaceby @sfc-gh-lwilby in #12737 - [feat] Add st.components.v2.components namespace and classes by @sfc-gh-bnisco in #12686
Bug Fixes 🐛
- Make slider thumbs not overshoot the track by @sfc-gh-tteixeira in #12549
- Fix vega chart unrecognized dataset error by @lukasmasuch in #11911
- [fix] Add AbortController for async upload operations by @sfc-gh-nbellante in #12539
- Fix PlotlyChart flickering by adding overflow hidden by @sfc-gh-lwilby in #12594
- Pills do not show selected value(s) if disabled #12388 by @davidsjoberg1 in #12555
- Make our Python Altair code thread-safe by @sfc-gh-tteixeira in #12673
- Fix file watcher issue with common path check by @lukasmasuch in #12741
- [fix] showErrorDetails config parsing for deprecation warnings by @sfc-gh-lwilby in #12794
- Make sure error message is explicitly shown for 500 errors by @kmcgrady in #12845
- Makes fuzzy search case insensitive by @kmcgrady in #12849
- [fix] DataFrame content width horizontal alignment by @sfc-gh-lwilby in #12682
- [fix] pyplot/image width regression in fragments, containers by @sfc-gh-lwilby in #12807
Other Changes
- Update vega_lite_chart width parameter default handling for type consistency by @sfc-gh-lwilby in #12595
- [chore] Release v1.50.0 by @github-actions[bot] in #12612
- Settings menu updates by @mayagbarnes in #12648
- [chore] Update emojis/material icons by @github-actions[bot] in #12669
- Clarify dataframe data types when starting with empty columns by @sfc-gh-dmatthews in #12779
- Selection widgets return copies by @sfc-gh-dmatthews in #12778
- Fix grammar/typos in config documentation by @sfc-gh-tteixeira in #12783
- Remove Python 3.9 support by @lukasmasuch in #12773
- Custom Dark Theme - section updates & e2e tests by @mayagbarnes in #12798
New Contributors
- @andreasntr made their first contribution in #12578
- @davidsjoberg1 made their first contribution in #12555
- @ben05allen made their first contribution in #12652
Full Changelog: 1.50.0...1.51.0
1.50.0
What's Changed
Breaking Changes 🛠
- refactor: deprecate kwargs in st.plotly_chart and add config dict instead by @zyfy29 in #12291
- Use
keyas main identity forst.checkbox&st.toggleby @lukasmasuch in #12372 - Remove
**kwargssupport fromst.writeby @lukasmasuch in #12375 - Use
keyas main identity forst.number_inputby @lukasmasuch in #12437 - Use
keyas main identity forst.text_area&st.text_inputby @lukasmasuch in #12397
New Features 🎉
- Add
MultiselectColumnforst.dataframeandst.data_editorby @lukasmasuch in #9223 - Add support for source directly in theming font configs by @mayagbarnes in #12239
- [feat] Add
defaultparam tost.tabsby @sfc-gh-bnisco in #12313 - Add
borderparameter tost.tableby @jrieke in #11796 - [feat] Hover, active, focus-visible states for CopyButton by @sfc-gh-bnisco in #12348
- [AdvancedLayouts] Adds a width parameters to
st.line_chart. by @sfc-gh-lwilby in #11923 - Add main theme color config options by @mayagbarnes in #12288
- Use
keyas main identity for button widgets by @lukasmasuch in #12332 - Add
sortparameter tost.bar_chartby @jrieke in #12339 - Add theme background color config options by @mayagbarnes in #12405
- Add theme text color config options by @mayagbarnes in #12438
- Use
keyas main identity forst.time_input&st.date_inputby @lukasmasuch in #12464 - [feat] Add sample rate parameter to
st.audio_inputcomponent by @sfc-gh-nbellante in #12272 - Metric supports numerics like decimal. by @aebrahim in #12377
- Show slider tick labels on hover by @lukasmasuch in #12367
- [AdvancedLayouts] Add height param to
st.graphviz_chartby @sfc-gh-lwilby in #12297 - Use
keyas main identity forst.selectbox&st.multiselectby @lukasmasuch in #12493 - Support configuring the chart column colors by @lukasmasuch in #12292
Bug Fixes 🐛
- Fix code usage in markdown labels by @lukasmasuch in #12175
- [fix] Fullscreen behaviour for
st.imagewith use_container_width=True or width="stretch" by @sfc-gh-lwilby in #12235 - [fix] DateInput: normalize selected dates to start-of-day to honor max by @sfc-gh-bnisco in #12295
- Ensure markdown images keep the aspect ratio by @lukasmasuch in #12343
- Fix issue with typing formatted values into
st.number_inputby @lukasmasuch in #12351 - [fix]
htmlwith float height. by @sfc-gh-lwilby in #12354 - [fix] Share more code between Selectbox and Multiselect to align behavior by @sfc-gh-bnisco in #12330
- Fix logo pushing out collapse button by @lukasmasuch in #12329
- Fix long-words overflowing markdown container by @lukasmasuch in #12370
- Add MIME type for
.mjsby @geoextra in #12399 - Fix Pandas styler performance regression by @lukasmasuch in #12422
- [fix] Allow empty section pages in top navigation similar to how we do it for sidebar nav by @nico-bellante in #12247
- [fix] horizontal alignment of st.image in vertical containers by @sfc-gh-lwilby in #12495
- [fix] Setting 0 for height/width on components.html and components.iframe . by @sfc-gh-lwilby in #12479
- Fix duckdb integration test by @lukasmasuch in #12537
- Revert number input component refactoring by @lukasmasuch in #12547
Other Changes
- Add default main colors to theme by @mayagbarnes in #12334
- Release/1.49.0 by @lukasmasuch in #12328
- Release/1.49.1 by @lukasmasuch in #12376
- Add default background colors to theme by @mayagbarnes in #12341
- Make git utilities more robust by @lukasmasuch in #12393
- Update cache headers to include
max-ageandimmutableby @sfc-gh-gwatters in #12420 - Add default text colors to theme by @mayagbarnes in #12407
- [chore] Adding latest material icons by @sfc-gh-nbellante in #12473
- [chore] Updating material icons by @sfc-gh-nbellante in #12535
New Contributors
- @zyfy29 made their first contribution in #12291
- @geoextra made their first contribution in #12399
- @sfc-gh-gwatters made their first contribution in #12420
- @nico-bellante made their first contribution in #12247
- @aebrahim made their first contribution in #12377
Full Changelog: 1.49.1...1.50.0