A pnpm monorepo providing JSON Forms for Svelte 5 with Flowbite, Skeleton, and shadcn-svelte renderer sets. Each renderer family includes core renderers, extended renderers, a demo application, and a web-component distribution.
| Package | Purpose |
|---|---|
@chobantonov/jsonforms-svelte |
Shared Svelte 5 JSON Forms integration |
@chobantonov/jsonforms-svelte-extended |
Shared extended renderers and utilities |
@chobantonov/jsonforms-svelte-flowbite |
Flowbite renderer set |
@chobantonov/jsonforms-svelte-flowbite-extended |
Extended Flowbite renderers |
@chobantonov/jsonforms-svelte-flowbite-webcomponent |
Flowbite custom element |
@chobantonov/jsonforms-svelte-skeleton |
Skeleton renderer set |
@chobantonov/jsonforms-svelte-skeleton-extended |
Extended Skeleton renderers |
@chobantonov/jsonforms-svelte-skeleton-webcomponent |
Skeleton custom element |
@chobantonov/jsonforms-svelte-shadcn |
shadcn-svelte renderer set |
@chobantonov/jsonforms-svelte-shadcn-extended |
Extended shadcn-svelte renderers |
@chobantonov/jsonforms-svelte-shadcn-webcomponent |
shadcn-svelte custom element |
The demos live in apps/jsonforms-svelte-{flowbite,skeleton,shadcn}-demo. The pages shell combines their static builds for deployment.
The Shadcn renderer follows Shadcn's app-ownership model: generated UI primitives live in the
consuming demo or web-component project, not in the renderer package. See the
@chobantonov/jsonforms-svelte-shadcn setup guide
for the required component list and alias configuration.
Use Node 22.x and pnpm.
- Install dependencies:
pnpm i --frozen-lockfile - Install Playwright Chromium for browser tests:
pnpm exec playwright install --with-deps chromium
- Run all package tests:
pnpm run test - Run test coverage:
pnpm run test:coverage
- Build the complete pages/demo shell:
pnpm run build - Build all libraries and web components:
pnpm run build:libs - Build all libraries and demos:
pnpm run build:demo - Build one renderer family:
pnpm run build:flowbite,pnpm run build:skeleton, orpnpm run build:shadcn
- Flowbite:
pnpm run example:flowbite:dev - Skeleton:
pnpm run example:skeleton:dev - shadcn-svelte:
pnpm run example:shadcn:dev
Replace dev with build or preview to build or preview an individual demo.
- Flowbite:
pnpm run wc:flowbite:dev - Skeleton:
pnpm run wc:skeleton:dev - shadcn-svelte:
pnpm run wc:shadcn:dev
Replace dev with build or preview to build or preview an individual web component.
Each renderer package has watch and build commands. For example:
pnpm run renderers:shadcn:watchpnpm run renderers:shadcn:buildpnpm run renderers-extended:shadcn:watchpnpm run renderers-extended:shadcn:build
The equivalent flowbite and skeleton commands are also available.
This repository uses Changesets and GitHub Actions for automated releases.
- Run
pnpm run changesetand select the packages and bump type. - Commit the generated file under
.changeset/. - Merge to
master. - The
Release Packagesworkflow opens or updates achore: release packagespull request. - Merge that pull request to publish to npm.
- During publishing, the workflow pushes Git tags and creates GitHub Releases.
Creating a release and new tag directly in the GitHub UI does not run the Changesets publishing flow. Use the workflow above for npm releases; use GitHub's release UI only for manual, tag-only releases.
- Ensure the publishing account owns or can publish under the
@chobantonovnpm scope. - Create an npm automation token with publish permissions.
- Add it as
NPM_TOKENunder the repository's GitHub Actions secrets. - Allow GitHub Actions to create and approve pull requests and give
GITHUB_TOKENread/write permissions. - If
masteris protected, allow the release pull request to pass through the normal required checks.