Streamlit Shadcn UI 1.5.0
This minor release adds nested Elements containers, Item, Sheet, and Data
Table. Existing public APIs retain their contracts. The components use the
repository's pinned base-nova shadcn source and preserve its default
dimensions, typography, colors, focus rings, and interaction styles.
Published on PyPI on
November 7, 2026. Both public archives match the verified local release
artifacts byte for byte.
Components
- Elements containers: Tabs, Accordion, Collapsible, and Scroll Area now
accept supported child nodes. Navigation and expansion stay in the browser.
Hidden panels retain mounted controls and their values; removing a node uses
the existing keyed-state lifecycle. Changing a container default resets its
local state. Python still builds every declared panel. - Item: Typed groups, media, content, title, description, actions, header,
footer, and separators compose resource rows. Avatar handles image fallback;
item_imagelets the pinned ItemMedia control thumbnail appearance. Stable
keys preserve child-action identity when rows reorder. - Sheet: Side panels support right, left, top, and bottom placement, a
title and description, footer actions, and explicit close buttons. Sheet
shares Dialog's modal ownership, focus trapping and return focus, Escape
dismissal, and host scroll locking. Normal actions can rerun Python while
the panel stays open; close actions dismiss it before emitting an event. - Data Table:
ui.data_tableadds numeric sorting, case-insensitive search,
pagination, column visibility, selection, and row actions for local records.
View changes stay in the browser. Selection uses the revisioned state
protocol and survives ordinary reruns; actions return one-shot
DataTableActionvalues throughDataTableResult. Column state follows keys
when definitions reorder. String and integer row IDs remain distinct.
The records example combines Data Table, Sheet, and Field controls. A row
action opens the editor; saving updates the record displayed in the table.
See Elements, Item,
Sheet, Data Table, and
the composition support matrix.
Limits
- Elements accepts library-owned child nodes, not native
st.*elements.
Action-bearing trees and tables cannot be used insidest.form. - Elements Tabs supports horizontal navigation only. The pinned wrapper does
not consistently forward vertical orientation; this release does not change
that source or expose vertical navigation. - Sheet preserves the pinned preset's top-right close-icon position. In RTL
layouts it can overlap the title. Useshow_close_button=Falseand a labeled
footer close button. RTL direction, focus, and dismissal were tested; fully
mirrored styling is not claimed. Long Sheet content can use a bounded
Elements Scroll Area. - Item and Sheet are Elements compositions, with no separate
ui.itemor
ui.sheetwidget. Item has no implicit selection or row-click event; put
actions in its action slot. - Data Table supports at most 1,000 local rows, 50 columns, 20 actions, and
1–100 rows per page. Cells are bounded text, finite safe-range numbers,
booleans, orNone, with a consistent scalar type per column. The header
checkbox selects the visible page. Removed rows are pruned from selection;
removed or disabled actions are rejected. Applications own permissions and
persistence. Elements embedding, remote pagination, custom JavaScript
renderers, and spreadsheet-style cell editing are deferred.
Host compatibility
Python 3.10 or newer and Streamlit 1.60 or newer remain the declared minimums.
The independently verified host was Python 3.14.2, Streamlit 1.60.0, Starlette
1.3.1, AnyIO 4.16.0, and Uvicorn 0.54.0. For the Streamlit 1.60 host, preserve
the tested Starlette pin:
pip install "streamlit==1.60.0" "starlette==1.3.1"Fresh dependency resolution selected Starlette 1.10.0 and produced
intermittent ASGI errors while serving component assets. Changing only
Starlette to 1.3.1 resolved those errors and all 45 browser cases passed.
This is evidence for that specific combination, not for every Starlette
version below 1.4. A different host combination needs fresh acceptance. The
library's Python dependency policy is unchanged.
The iteration acceptance record contains the
host investigation, upstream dependency references, and test breakdown.
Verification
- All 110 Python tests passed, including release contracts and the 49
component documentation examples. - All 147 frontend unit tests passed. Generated-source, provenance,
import-boundary, Shadow CSS, TypeScript, production-build, and distribution
checks passed. - An independently installed development wheel passed all 45 browser cases
across Chromium, Firefox, and WebKit: 21 Sheet, six Elements containers,
three Item, and 15 Data Table cases. Apps ran outside the repository and
imported from the environment'ssite-packages. - Browser checks compared rendered controls with the corresponding pinned
shadcn controls, including dimensions and interaction states. The Data Table
cases included selection acknowledgement on page two, one-shot actions,
narrow layouts, and the actual Sheet edit/save flow.
After the version update, all 110 Python tests and 147 frontend tests passed
again, including the generated-source, CSS, TypeScript, production-build and
distribution checks. Both final archives passed the release verifier against
the checked-in frontend and passed twine check. No GitHub CI status checks
are configured; the recorded checks were run locally.
After publication, a clean environment reinstalled 1.5.0 without a cache from
the public PyPI index. Imports resolved to its site-packages. All 45 browser
cases passed against this installed public package, and all 55 documentation
apps ran without Python exceptions. The containers test was corrected to wait
for Python's reordered tab tree before clicking; the package runtime and
published artifacts did not change.
The documentation requirements now pin PyPI 1.5.0, Streamlit 1.60.0 and
Starlette 1.3.1. After rebooting the existing Community Cloud app, Home and
Getting Started reported the installed 1.5.0 package. Sheet, Item, nested
Elements containers and the Data Table edit/save flow passed separate live
checks. A clean Python 3.10 environment also ran all 55 documentation apps
with those published dependencies without Python exceptions. See the
publication verification record for evidence and
deployment details.
Artifacts
| Artifact | SHA-256 |
|---|---|
streamlit_shadcn_ui-1.5.0-py3-none-any.whl
| 9ee1de35ddbbc28dbb2e24f6bf46c955c22d3a48d7f17779a963918dafbe360f
|
streamlit_shadcn_ui-1.5.0.tar.gz
| 38f20f965febcb1c7b79a51715eecf46c22eb7d903f5eb81fe867e5148287bda
|