Repository navigation
shadlet 0.7.0
shadlet 0.7.0 is a focused performance and verification release. it keeps protocol v2 and 0.6.x source compatibility while lazy-loading heavy renderer adapters and making component support claims checkable. this release does not claim complete parity with the current shadcn/ui catalogue.
added
- Chart, calendar/date picker, and carousel adapters now load with
React.lazybehind a suspense boundary. Applications that do not use them no longer load Recharts, react-day-picker, date-fns, or embla-carousel on first paint. Predictablechart,calendar, andcarouselchunk names are emitted through Vite. npm run check:bundleenforces entry-chunk, total-JavaScript, and required-lazy-chunk budgets in CI.- Added a generated component compatibility matrix from the Python component classes, renderer registry, and coverage data. All 56 pinned upstream components have a Python type and renderer adapter; the matrix reports 0 missing entries and 24 Shadlet-only components, including layout primitives.
- Added
ui.DirectionProvider, declarativeui.Toastbacked by the sonner runtime used byContext.toast, andshadlet.layout.ScrollAreamatrix coverage. - Added regression tests for lazy chart, calendar, date picker, and carousel resolution, plus direction and declarative toast rendering.
changed
- The main renderer entry chunk fell from 1,590.49 kB to 1,060.3 kB minified, and from 483.47 kB to 327.9 kB gzip. The entry remains above Vite's 500 kB advisory threshold but is now covered by an explicit release budget.
- Versions are aligned at 0.7.0 across Python, the renderer, protocol fixtures, templates, and documentation. The wire protocol remains version 2.
- Added a 0.6.0-to-0.7.0 migration guide and linked the generated compatibility matrix from the documentation navigation.
- Compatibility entries remain marked
partialwhere the upstream component exposes richer props, events, keyboard behavior, or accessibility semantics than Shadlet maps today.
compatibility and scope
- Shadlet 0.7.0 is intended to remain source-compatible with 0.6.x applications. See the migration guide.
- Sessions, background tasks, uploads, and extensions retain their documented process-local and trust boundaries.
- See the component catalogue, compatibility matrix, and limitations for the verified support boundaries.
verification
- Python: Ruff lint and formatting, mypy, and Pyright passed; all 214 pytest tests passed. GitHub CI passed its Python 3.11–3.14 test matrix.
- Renderer: ESLint, Prettier, and TypeScript checks passed; all 41 Vitest tests passed; the production build and
check:bundlebudget guard passed. - Browser: all 12 Playwright tests passed across Chromium, Firefox, and WebKit. The CI browser end-to-end job passed.
- Compatibility:
generate_matrix.py --checkconfirmed the committed matrix is current. - Packaging: the release workflow built the wheel and source distribution and verified bundled renderer assets. A clean Python 3.11 wheel installation reported version 0.7.0 with
renderer readyand no Node.js. - Documentation: strict MkDocs build passed.
- Release: the GitHub release and PyPI publish jobs completed successfully. See the release workflow.
See the changelog, migration guide, compatibility matrix, documentation, and PyPI package.