https://github.com/pie-framework/pie-players
item and assessment players and the assessment toolkit
https://github.com/pie-framework/pie-players
Last synced: 6 days ago
JSON representation
item and assessment players and the assessment toolkit
- Host: GitHub
- URL: https://github.com/pie-framework/pie-players
- Owner: pie-framework
- Created: 2026-01-14T06:46:25.000Z (about 2 months ago)
- Default Branch: master
- Last Pushed: 2026-02-28T00:44:32.000Z (10 days ago)
- Last Synced: 2026-02-28T04:08:59.675Z (10 days ago)
- Language: TypeScript
- Size: 51.6 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# pie-players
PIE players and assessment toolkit with Bun + TypeScript + Svelte 5.
**Docs app**: `apps/docs`
**Examples app**: `apps/section-demos`
## Quick Start
```bash
bun install
bun run dev:docs # Docs site
bun run dev:section # Section demos
```
## Development
```bash
bun dev # Watch all packages
bun build # Build all
bun typecheck # Type check
bun test # Run tests
bun format # Format code
```
## Consumer Import Rules
When 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 `.svelte` component files.
- Do not import package source paths like `@pie-players//src/...` from consumers.
- Do not use cross-package `?customElement` imports.
- Keep runtime package exports pointing to built `dist` artifacts.
Boundary checks:
```bash
bun run check:source-exports
bun run check:consumer-boundaries
bun run check:custom-elements
```
## Releasing From Workspace
This 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:
```bash
bun run verify:publish
```
## Release Labels
Use release labels to tag a coordinated release wave without forcing lockstep package versions.
```bash
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 origin
```
## Packages
**Interactive 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
## Documentation
- [Architecture](docs/ARCHITECTURE.md)
- [Math Renderer Architecture](docs/MATH-RENDERER-ARCHITECTURE.md) - Pluggable math rendering system
- [Authoring Mode](docs/AUTHORING_MODE.md)
- [NPM Token Setup](docs/NPM_TOKEN_SETUP.md)
- [Publishing Contract](docs/publishing.md)
- [Docs Index](docs/README.md)
## License
See LICENSE file.