PIE players and assessment toolkit with Bun + TypeScript + Svelte 5.
Docs app: apps/docs
Examples app: apps/section-demos
bun install
bun run dev:docs # Docs site
bun run dev:section # Section demosbun dev # Watch all packages
bun build # Build all
bun typecheck # Type check
bun test # Run tests
bun format # Format codeWhen consuming PIE web components from apps or other packages:
- Import custom-element registration entrypoints (for example
@pie-players/pie-assessment-toolkit/components/item-toolbar-element), not raw package.sveltecomponent files. - Do not import package source paths like
@pie-players/<pkg>/src/...from consumers. - Do not use cross-package
?customElementimports. - Keep runtime package exports pointing to built
distartifacts.
Boundary checks:
bun run check:source-exports
bun run check:consumer-boundaries
bun run check:custom-elementsThis monorepo keeps internal dependencies as workspace:* during development.
On release, bun run release runs a publish wrapper that temporarily rewrites workspace
ranges to concrete package versions, executes changeset publish, then restores the
original workspace ranges. This avoids leaking workspace:* into npm metadata while
keeping local development ergonomics unchanged.
Before release merges/publishes, run:
bun run verify:publishUse release labels to tag a coordinated release wave without forcing lockstep package versions.
bun run release:label # Create annotated tag (default: pie-players-YYYY.MM.DD)
bun run release:label -- --label players-2026.02
bun run release:label:push # Create and push tag to originInteractive Players: pie-item-player Print Player: print-player - Item-level print rendering for production use Tools: calculator, graph, ruler, protractor, annotation-toolbar, color-scheme, periodic-table Math Rendering: math-renderer-core, math-renderer-mathjax, math-renderer-katex Shared: players-shared, assessment-toolkit
- Architecture
- Math Renderer Architecture - Pluggable math rendering system
- Authoring Mode
- NPM Token Setup
- Publishing Contract
- Docs Index
See LICENSE file.