Monorepo for Eventjet seatmap components.
- @eventjet/react-seatmaps - React components for rendering interactive SVG-based seatmaps
Install dependencies:
pnpm installStart Storybook:
cd packages/seatmaps
pnpm storybookBuild:
pnpm buildRun tests:
pnpm testType check:
pnpm typecheckLint:
pnpm lintFind unused code:
pnpm knipFormat:
pnpm formatTo test changes live in a project that depends on this package:
# In your other project
pnpm add /path/to/eventjet-seatmaps-js/packages/seatmaps
# In packages/seatmaps
pnpm devThis links the local package and rebuilds on every change. When done, switch back to npm:
pnpm add @eventjet/react-seatmapsThe public API is tracked in packages/seatmaps/api/react-seatmaps.api.md. CI fails if the API changes without updating this file.
If you intentionally changed the API (added/removed exports, changed prop types):
cd packages/seatmaps
pnpm build
pnpm apiReview the diff in api/react-seatmaps.api.md and commit it with your changes.
If CI fails unexpectedly, you may have accidentally changed the public API. Check the diff to understand what changed.
Releases are fully automated via release-please.
After every merge to master, release-please opens or updates a Release PR that:
- bumps
package.jsonversion - generates/updates
CHANGELOG.md
When you're ready to release, merge the Release PR. release-please then creates a GitHub Release and the publish job runs automatically.
If the publish job is ever skipped or fails after a release, go to Actions → Release → Run workflow and trigger it on master. It will publish whatever version is in packages/seatmaps/package.json.
release-please determines the version bump from commit messages using Conventional Commits:
| Prefix | Version bump | Example |
|---|---|---|
fix: |
patch | fix: correct __toESM interop in CJS build |
feat: |
minor | feat: add Row label alignment prop |
feat!: or BREAKING CHANGE: footer |
major | feat!: remove deprecated Volume shape prop |
Commits that don't match (e.g. chore:, docs:, test:, refactor:, perf:) are excluded from the changelog and don't trigger a release on their own.
The NPM_TOKEN secret must be configured in repository settings.
MIT