An open API service indexing awesome lists of open source software.

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

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.