From a903bbe5e0e97e9d755ffbf09e1398e125e027af Mon Sep 17 00:00:00 2001 From: Johannes Rieke Date: Tue, 14 Jul 2026 03:22:20 +0200 Subject: [PATCH 1/3] Fix 1.59 release notes and add st.mermaid_chart API docs - Fix bokeh_chart removal note to reference streamlit-bokeh component - Remove incorrect stcore metrics config option sentence - Update submit_mode description based on docstring - Fix column stats submenu interaction (dropdown icon, not right-click) - Add st.mermaid_chart as highlight, move submit_mode to notable changes - Add st.mermaid_chart detail page, tile, menu entry, and screenshot Co-authored-by: Cursor --- content/develop/api-reference/_index.md | 13 +++++++++++++ content/develop/api-reference/charts/_index.md | 13 +++++++++++++ .../api-reference/charts/mermaid_chart.md | 8 ++++++++ content/develop/api-reference/text/_index.md | 3 +-- .../quick-references/release-notes/2026.md | 10 +++++----- .../quick-references/release-notes/_index.md | 10 +++++----- content/menu.md | 2 ++ public/images/api/mermaid_chart.jpg | Bin 0 -> 21631 bytes 8 files changed, 47 insertions(+), 12 deletions(-) create mode 100644 content/develop/api-reference/charts/mermaid_chart.md create mode 100644 public/images/api/mermaid_chart.jpg diff --git a/content/develop/api-reference/_index.md b/content/develop/api-reference/_index.md index 5b0405fa1..f84acf17a 100644 --- a/content/develop/api-reference/_index.md +++ b/content/develop/api-reference/_index.md @@ -646,6 +646,19 @@ Display a graph using the dagre-d3 library. st.graphviz_chart(my_graphviz_spec) ``` + + + +screenshot + +

Mermaid chart

+ +Display a Mermaid diagram. + +```python +st.mermaid_chart("graph LR\n A --> B") +``` +
diff --git a/content/develop/api-reference/charts/_index.md b/content/develop/api-reference/charts/_index.md index b87b4b57c..b106d41d4 100644 --- a/content/develop/api-reference/charts/_index.md +++ b/content/develop/api-reference/charts/_index.md @@ -155,6 +155,19 @@ Display a graph using the dagre-d3 library. st.graphviz_chart(my_graphviz_spec) ``` + + + +screenshot + +

Mermaid chart

+ +Display a Mermaid diagram. + +```python +st.mermaid_chart("graph LR\n A --> B") +``` +
diff --git a/content/develop/api-reference/charts/mermaid_chart.md b/content/develop/api-reference/charts/mermaid_chart.md new file mode 100644 index 000000000..1f2c26f41 --- /dev/null +++ b/content/develop/api-reference/charts/mermaid_chart.md @@ -0,0 +1,8 @@ +--- +title: st.mermaid_chart +slug: /develop/api-reference/charts/st.mermaid_chart +description: st.mermaid_chart renders a Mermaid diagram in your app, letting you embed flowcharts, sequence diagrams, and more. +keywords: st.mermaid_chart, mermaid, diagram, flowchart, sequence diagram, graph, chart +--- + + diff --git a/content/develop/api-reference/text/_index.md b/content/develop/api-reference/text/_index.md index ba0cffb63..adc780d51 100644 --- a/content/develop/api-reference/text/_index.md +++ b/content/develop/api-reference/text/_index.md @@ -157,8 +157,7 @@ Display mathematical expressions formatted as LaTeX. st.latex("\int a x^2 \,dx") ``` - - + screenshot diff --git a/content/develop/quick-references/release-notes/2026.md b/content/develop/quick-references/release-notes/2026.md index c9a030853..85e551a31 100644 --- a/content/develop/quick-references/release-notes/2026.md +++ b/content/develop/quick-references/release-notes/2026.md @@ -16,14 +16,14 @@ _Release date: July 6, 2026_ **Highlights** - ✨ Introducing [`ButtonColumn`](/develop/api-reference/data/st.column_config/st.column_config.buttoncolumn) — a new column type for [`st.dataframe`](/develop/api-reference/data/st.dataframe) and [`st.data_editor`](/develop/api-reference/data/st.data_editor) that renders clickable buttons inside table cells, letting users trigger actions directly from a row ([#14544](https://github.com/streamlit/streamlit/pull/14544), [#7015](https://github.com/streamlit/streamlit/issues/7015)). -- 📊 [`st.dataframe`](/develop/api-reference/data/st.dataframe) has a new column statistics submenu — right-click any column header to see per-column summary stats ([#14307](https://github.com/streamlit/streamlit/pull/14307), [#13148](https://github.com/streamlit/streamlit/issues/13148)). +- 📊 [`st.dataframe`](/develop/api-reference/data/st.dataframe) has a new column statistics submenu — click the dropdown icon in any column header to see per-column summary stats ([#14307](https://github.com/streamlit/streamlit/pull/14307), [#13148](https://github.com/streamlit/streamlit/issues/13148)). - 🍿 Introducing [`st.skeleton`](/develop/api-reference/status/st.skeleton) — a new element that renders animated loading placeholders, making it easy to give users visual feedback while content is loading ([#15169](https://github.com/streamlit/streamlit/pull/15169), [#8032](https://github.com/streamlit/streamlit/issues/8032)). -- 🎛 [`st.chat_input`](/develop/api-reference/chat/st.chat_input) has a new `submit_mode` parameter that lets you control when messages are submitted — either on Enter (default) or only when the user explicitly clicks the send button ([#14344](https://github.com/streamlit/streamlit/pull/14344), [#8323](https://github.com/streamlit/streamlit/issues/8323), [#11854](https://github.com/streamlit/streamlit/issues/11854)). +- 🎨 Introducing [`st.mermaid_chart`](/develop/api-reference/charts/st.mermaid_chart) — render Mermaid diagrams directly in your app, letting you embed flowcharts, sequence diagrams, and more. Mermaid also works from [`st.markdown`](/develop/api-reference/text/st.markdown) ([#14022](https://github.com/streamlit/streamlit/pull/14022), [#10721](https://github.com/streamlit/streamlit/issues/10721)). **Notable Changes** +- 🎛 [`st.chat_input`](/develop/api-reference/chat/st.chat_input) has a new `submit_mode` parameter that controls widget behavior after the user submits a message, e.g. showing a stop button or disabling the chat input ([#14344](https://github.com/streamlit/streamlit/pull/14344), [#8323](https://github.com/streamlit/streamlit/issues/8323), [#11854](https://github.com/streamlit/streamlit/issues/11854)). - 📋 [`st.dataframe`](/develop/api-reference/data/st.dataframe) and [`st.data_editor`](/develop/api-reference/data/st.data_editor) support a new [`MarkdownColumn`](/develop/api-reference/data/st.column_config/st.column_config.markdowncolumn) type in `st.column_config` that renders Markdown text inside table cells ([#13931](https://github.com/streamlit/streamlit/pull/13931), [#10211](https://github.com/streamlit/streamlit/issues/10211)). -- 🎨 [`st.markdown`](/develop/api-reference/text/st.markdown) now renders Mermaid diagrams, letting you embed flowcharts, sequence diagrams, and more directly in your app ([#14022](https://github.com/streamlit/streamlit/pull/14022), [#10721](https://github.com/streamlit/streamlit/issues/10721)). - 🔗 [`st.markdown`](/develop/api-reference/text/st.markdown) has a new `anchors` parameter for adding linkable heading anchors to Markdown content ([#15722](https://github.com/streamlit/streamlit/pull/15722), [#13913](https://github.com/streamlit/streamlit/issues/13913)). - 💻 You can now launch Streamlit apps directly with `python app.py` or `uv run app.py` using the new `App.run()` entry point — no more `streamlit run` required ([#15563](https://github.com/streamlit/streamlit/pull/15563), [#9450](https://github.com/streamlit/streamlit/issues/9450), [#11420](https://github.com/streamlit/streamlit/issues/11420)). - 🧩 [`st.fragment`](/develop/api-reference/execution-flow/st.fragment) can now write to containers defined outside the fragment. Fragments can update any part of your app — including elements created before the fragment — without triggering a full rerun ([#15623](https://github.com/streamlit/streamlit/pull/15623), [#15620](https://github.com/streamlit/streamlit/pull/15620), [#10481](https://github.com/streamlit/streamlit/issues/10481)). @@ -37,9 +37,9 @@ _Release date: July 6, 2026_ - ⌨ You can now look up Streamlit API documentation from the CLI with `streamlit docs ` ([#15547](https://github.com/streamlit/streamlit/pull/15547)). - 🔐 A new `server.xsrfCookieSameSite` config option lets you customize the `SameSite` attribute of the XSRF cookie for deployments with specific cross-site requirements ([#15634](https://github.com/streamlit/streamlit/pull/15634), [#5793](https://github.com/streamlit/streamlit/issues/5793), [#9397](https://github.com/streamlit/streamlit/issues/9397)). - 💡 Streamlit now recommends installing AI coding skills on app startup to improve your development workflow with AI coding assistants ([#15437](https://github.com/streamlit/streamlit/pull/15437), [#15473](https://github.com/streamlit/streamlit/pull/15473)). -- ⚙ The `/_stcore/metrics` endpoint now reports memory stats in a less detailed (cheaper) form by default. If your monitoring stack relies on the previous granular memory fields, set `server.enableStaticServing` to `true` to restore them ([#15472](https://github.com/streamlit/streamlit/pull/15472)). +- ⚙ The `/_stcore/metrics` endpoint now reports memory stats in a less detailed (cheaper) form by default ([#15472](https://github.com/streamlit/streamlit/pull/15472)). - 👻 The deprecated Snowpark connection type has been removed. Migrate to a supported connection type ([#15784](https://github.com/streamlit/streamlit/pull/15784)). -- 👻 The deprecated [`st.bokeh_chart`](/develop/api-reference/charts/st.bokeh_chart) command has been removed. Use `st.components.v1.html` to embed Bokeh visualizations instead ([#15636](https://github.com/streamlit/streamlit/pull/15636)). +- 👻 The deprecated [`st.bokeh_chart`](/develop/api-reference/charts/st.bokeh_chart) command has been removed. Use the [`streamlit-bokeh`](https://github.com/streamlit/streamlit-bokeh) component instead ([#15636](https://github.com/streamlit/streamlit/pull/15636)). **Other Changes** diff --git a/content/develop/quick-references/release-notes/_index.md b/content/develop/quick-references/release-notes/_index.md index 19a264e4c..7cc532c9e 100644 --- a/content/develop/quick-references/release-notes/_index.md +++ b/content/develop/quick-references/release-notes/_index.md @@ -28,14 +28,14 @@ _Release date: July 6, 2026_ **Highlights** - ✨ Introducing [`ButtonColumn`](/develop/api-reference/data/st.column_config/st.column_config.buttoncolumn) — a new column type for [`st.dataframe`](/develop/api-reference/data/st.dataframe) and [`st.data_editor`](/develop/api-reference/data/st.data_editor) that renders clickable buttons inside table cells, letting users trigger actions directly from a row ([#14544](https://github.com/streamlit/streamlit/pull/14544), [#7015](https://github.com/streamlit/streamlit/issues/7015)). -- 📊 [`st.dataframe`](/develop/api-reference/data/st.dataframe) has a new column statistics submenu — right-click any column header to see per-column summary stats ([#14307](https://github.com/streamlit/streamlit/pull/14307), [#13148](https://github.com/streamlit/streamlit/issues/13148)). +- 📊 [`st.dataframe`](/develop/api-reference/data/st.dataframe) has a new column statistics submenu — click the dropdown icon in any column header to see per-column summary stats ([#14307](https://github.com/streamlit/streamlit/pull/14307), [#13148](https://github.com/streamlit/streamlit/issues/13148)). - 🍿 Introducing [`st.skeleton`](/develop/api-reference/status/st.skeleton) — a new element that renders animated loading placeholders, making it easy to give users visual feedback while content is loading ([#15169](https://github.com/streamlit/streamlit/pull/15169), [#8032](https://github.com/streamlit/streamlit/issues/8032)). -- 🎛 [`st.chat_input`](/develop/api-reference/chat/st.chat_input) has a new `submit_mode` parameter that lets you control when messages are submitted — either on Enter (default) or only when the user explicitly clicks the send button ([#14344](https://github.com/streamlit/streamlit/pull/14344), [#8323](https://github.com/streamlit/streamlit/issues/8323), [#11854](https://github.com/streamlit/streamlit/issues/11854)). +- 🎨 Introducing [`st.mermaid_chart`](/develop/api-reference/charts/st.mermaid_chart) — render Mermaid diagrams directly in your app, letting you embed flowcharts, sequence diagrams, and more. Mermaid also works from [`st.markdown`](/develop/api-reference/text/st.markdown) ([#14022](https://github.com/streamlit/streamlit/pull/14022), [#10721](https://github.com/streamlit/streamlit/issues/10721)). **Notable Changes** +- 🎛 [`st.chat_input`](/develop/api-reference/chat/st.chat_input) has a new `submit_mode` parameter that controls widget behavior after the user submits a message, e.g. showing a stop button or disabling the chat input ([#14344](https://github.com/streamlit/streamlit/pull/14344), [#8323](https://github.com/streamlit/streamlit/issues/8323), [#11854](https://github.com/streamlit/streamlit/issues/11854)). - 📋 [`st.dataframe`](/develop/api-reference/data/st.dataframe) and [`st.data_editor`](/develop/api-reference/data/st.data_editor) support a new [`MarkdownColumn`](/develop/api-reference/data/st.column_config/st.column_config.markdowncolumn) type in `st.column_config` that renders Markdown text inside table cells ([#13931](https://github.com/streamlit/streamlit/pull/13931), [#10211](https://github.com/streamlit/streamlit/issues/10211)). -- 🎨 [`st.markdown`](/develop/api-reference/text/st.markdown) now renders Mermaid diagrams, letting you embed flowcharts, sequence diagrams, and more directly in your app ([#14022](https://github.com/streamlit/streamlit/pull/14022), [#10721](https://github.com/streamlit/streamlit/issues/10721)). - 🔗 [`st.markdown`](/develop/api-reference/text/st.markdown) has a new `anchors` parameter for adding linkable heading anchors to Markdown content ([#15722](https://github.com/streamlit/streamlit/pull/15722), [#13913](https://github.com/streamlit/streamlit/issues/13913)). - 💻 You can now launch Streamlit apps directly with `python app.py` or `uv run app.py` using the new `App.run()` entry point — no more `streamlit run` required ([#15563](https://github.com/streamlit/streamlit/pull/15563), [#9450](https://github.com/streamlit/streamlit/issues/9450), [#11420](https://github.com/streamlit/streamlit/issues/11420)). - 🧩 [`st.fragment`](/develop/api-reference/execution-flow/st.fragment) can now write to containers defined outside the fragment. Fragments can update any part of your app — including elements created before the fragment — without triggering a full rerun ([#15623](https://github.com/streamlit/streamlit/pull/15623), [#15620](https://github.com/streamlit/streamlit/pull/15620), [#10481](https://github.com/streamlit/streamlit/issues/10481)). @@ -49,9 +49,9 @@ _Release date: July 6, 2026_ - ⌨ You can now look up Streamlit API documentation from the CLI with `streamlit docs ` ([#15547](https://github.com/streamlit/streamlit/pull/15547)). - 🔐 A new `server.xsrfCookieSameSite` config option lets you customize the `SameSite` attribute of the XSRF cookie for deployments with specific cross-site requirements ([#15634](https://github.com/streamlit/streamlit/pull/15634), [#5793](https://github.com/streamlit/streamlit/issues/5793), [#9397](https://github.com/streamlit/streamlit/issues/9397)). - 💡 Streamlit now recommends installing AI coding skills on app startup to improve your development workflow with AI coding assistants ([#15437](https://github.com/streamlit/streamlit/pull/15437), [#15473](https://github.com/streamlit/streamlit/pull/15473)). -- ⚙ The `/_stcore/metrics` endpoint now reports memory stats in a less detailed (cheaper) form by default. If your monitoring stack relies on the previous granular memory fields, set `server.enableStaticServing` to `true` to restore them ([#15472](https://github.com/streamlit/streamlit/pull/15472)). +- ⚙ The `/_stcore/metrics` endpoint now reports memory stats in a less detailed (cheaper) form by default ([#15472](https://github.com/streamlit/streamlit/pull/15472)). - 👻 The deprecated Snowpark connection type has been removed. Migrate to a supported connection type ([#15784](https://github.com/streamlit/streamlit/pull/15784)). -- 👻 The deprecated [`st.bokeh_chart`](/develop/api-reference/charts/st.bokeh_chart) command has been removed. Use `st.components.v1.html` to embed Bokeh visualizations instead ([#15636](https://github.com/streamlit/streamlit/pull/15636)). +- 👻 The deprecated [`st.bokeh_chart`](/develop/api-reference/charts/st.bokeh_chart) command has been removed. Use the [`streamlit-bokeh`](https://github.com/streamlit/streamlit-bokeh) component instead ([#15636](https://github.com/streamlit/streamlit/pull/15636)). **Other Changes** diff --git a/content/menu.md b/content/menu.md index 8b65a53cb..6a55c8d22 100644 --- a/content/menu.md +++ b/content/menu.md @@ -300,6 +300,8 @@ site_menu: visible: false - category: Develop / API reference / Chart elements / st.graphviz_chart url: /develop/api-reference/charts/st.graphviz_chart + - category: Develop / API reference / Chart elements / st.mermaid_chart + url: /develop/api-reference/charts/st.mermaid_chart - category: Develop / API reference / Chart elements / st.plotly_chart url: /develop/api-reference/charts/st.plotly_chart - category: Develop / API reference / Chart elements / st.pydeck_chart diff --git a/public/images/api/mermaid_chart.jpg b/public/images/api/mermaid_chart.jpg new file mode 100644 index 0000000000000000000000000000000000000000..822898cfd8323024aac917fd9a38362c6c3d00e9 GIT binary patch literal 21631 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 g!rI@=2K-8b^KaD8Z?S&uvb|0lnbh9RL6T literal 0 HcmV?d00001 From 68fc54fb3b71632fd21327a344f15ebded2e658a Mon Sep 17 00:00:00 2001 From: Johannes Rieke Date: Tue, 14 Jul 2026 03:27:29 +0200 Subject: [PATCH 2/3] Add example app source files for st.mermaid_chart and st.skeleton Co-authored-by: Cursor --- python/api-examples-source/charts.mermaid_chart.py | 8 ++++++++ python/api-examples-source/status.skeleton_context.py | 9 +++++++++ python/api-examples-source/status.skeleton_standalone.py | 6 ++++++ 3 files changed, 23 insertions(+) create mode 100644 python/api-examples-source/charts.mermaid_chart.py create mode 100644 python/api-examples-source/status.skeleton_context.py create mode 100644 python/api-examples-source/status.skeleton_standalone.py diff --git a/python/api-examples-source/charts.mermaid_chart.py b/python/api-examples-source/charts.mermaid_chart.py new file mode 100644 index 000000000..07352f738 --- /dev/null +++ b/python/api-examples-source/charts.mermaid_chart.py @@ -0,0 +1,8 @@ +import streamlit as st + +st.mermaid_chart(''' + graph LR + A[Start] --> B{Decision} + B -->|Yes| C[OK] + B -->|No| D[Cancel] +''') diff --git a/python/api-examples-source/status.skeleton_context.py b/python/api-examples-source/status.skeleton_context.py new file mode 100644 index 000000000..e089961b4 --- /dev/null +++ b/python/api-examples-source/status.skeleton_context.py @@ -0,0 +1,9 @@ +import streamlit as st +import time + +with st.skeleton(height=100): + # Expensive computation runs here + time.sleep(2) + +# Skeleton clears, show results below +st.success("Data loaded!") diff --git a/python/api-examples-source/status.skeleton_standalone.py b/python/api-examples-source/status.skeleton_standalone.py new file mode 100644 index 000000000..bc127bb28 --- /dev/null +++ b/python/api-examples-source/status.skeleton_standalone.py @@ -0,0 +1,6 @@ +import streamlit as st +import time + +placeholder = st.skeleton(height=200) +time.sleep(2) +placeholder.dataframe({"col1": [1, 2, 3], "col2": [4, 5, 6]}) From 234572dc7b697379917e939f96ffcb22a34f9792 Mon Sep 17 00:00:00 2001 From: Johannes Rieke Date: Tue, 14 Jul 2026 03:29:22 +0200 Subject: [PATCH 3/3] Add example app source file for MarkdownColumn Co-authored-by: Cursor --- .../data.markdown_column.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 python/api-examples-source/data.markdown_column.py diff --git a/python/api-examples-source/data.markdown_column.py b/python/api-examples-source/data.markdown_column.py new file mode 100644 index 000000000..56926456d --- /dev/null +++ b/python/api-examples-source/data.markdown_column.py @@ -0,0 +1,24 @@ +import pandas as pd +import streamlit as st + +data_df = pd.DataFrame( + { + "description": [ + "# Title\n\nThis is **bold** text", + "## Subtitle\n\n- Item 1\n- Item 2", + "Regular text with `code`", + ], + } +) + +st.dataframe( + data_df, + column_config={ + "description": st.column_config.MarkdownColumn( + "Description", + help="Markdown formatted text", + width="large", + ), + }, + hide_index=True, +)