Skip to content

shadlet 0.7.0

Choose a tag to compare

@github-actions github-actions released this 06 Nov 10:34
· 5 commits to main since this release

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.lazy behind a suspense boundary. Applications that do not use them no longer load Recharts, react-day-picker, date-fns, or embla-carousel on first paint. Predictable chart, calendar, and carousel chunk names are emitted through Vite.
  • npm run check:bundle enforces 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, declarative ui.Toast backed by the sonner runtime used by Context.toast, and shadlet.layout.ScrollArea matrix 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 partial where the upstream component exposes richer props, events, keyboard behavior, or accessibility semantics than Shadlet maps today.

compatibility and scope

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:bundle budget 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 --check confirmed 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 ready and 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.