# @friday-night/tui

First-party terminal UI primitives for Friday and reusable CLIs.

## Install

```bash
npm install @friday-night/tui
```

## Development

```bash
npm install
npm run build
npm test
```

## Release check

Run the full pre-release gate before changing versions or publishing:

```bash
npm run release:check
```

This runs the test suite and verifies the npm package artifact with `npm pack --dry-run`.

## Publishing

This package is published as a public scoped npm package.

Release flow:

1. Update `CHANGELOG.md`.
2. Bump the semver version in `package.json` and `package-lock.json`.
3. Run `npm run release:check`.
4. Publish:
   ```bash
   npm publish --access public
   ```
5. Create and push an annotated release tag matching the package version:
   ```bash
   git tag -a vX.Y.Z -m "@friday-night/tui vX.Y.Z"
   git push origin vX.Y.Z
   ```

`prepublishOnly` runs the test suite and `prepack` rebuilds `dist`, so the published artifact is produced from the current source. The already-published `0.1.0` release is tagged as `v0.1.0`.
