open-index/open-npm huggingface dataset:
npm package: @sokusystems/react-ui
Description: Shared React UI primitives for Soku applications such as Conduit, Panorama, and Soku Suite.
Latest version: 0.2.0

# `@sokusystems/react-ui`

Shared React UI primitives for Soku applications such as Conduit, Panorama, and Soku Suite.

## Distribution Strategy

The official distribution path for this package is the npm registry.

- Consumers should depend on a published `@sokusystems/react-ui` version.
- Local tarballs are allowed only as a temporary validation workflow during development.
- Consumer repos should not commit long-term `file:` dependencies or one-off ad hoc tarball paths.

This keeps package consumption stable and makes upgrades reproducible across repos.

## Install

```bash
npm install @sokusystems/react-ui
```

This package expects the consumer app to provide compatible peer dependencies:

- `react >= 18`
- `react-dom >= 18`

## Development

Install local dependencies:

```bash
npm install
```

Build the package:

```bash
npm run build
```

## Local Consumer Validation

When you need to test an unreleased package build in a sibling app repo, use the scripted local pack flow instead of a one-off manual tarball workflow.

1. In `react-ui`, create a local package tarball:

```bash
npm run pack:local
```

This writes a tarball to `.local-packages/` and keeps npm cache output in `.npm-cache/`.

2. In the consumer repo, install the generated tarball:

```bash
npm install ../react-ui/.local-packages/sokusystems-react-ui-<version>.tgz --save
```

3. Run the consumer app build/tests there.

4. Before merging consumer changes, update the consumer back to the intended published version unless you are explicitly coordinating a release cut at the same time.

This gives a repeatable local integration path without making tarball installs the primary distribution strategy.

## Release Workflow

Use npm publish as the source of truth.

1. Make and merge package changes in `react-ui`.
2. Bump the package version:

```bash
npm version patch
```

Use `minor` or `major` when appropriate.

3. Run the release verification script:

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

4. Publish the package:

```bash
npm publish
```

5. Update consuming repos to the new published version and verify their builds.

## Scripts

- `npm run build`: compile `src/` into `dist/`
- `npm run pack:local`: build and create a local tarball in `.local-packages/`
- `npm run release:check`: build and dry-run the publish payload

`prepack` ensures `dist/` is rebuilt before `npm pack` or `npm publish`.

## Auth

Keep auth out of the repo.

1. Copy `.npmrc.example` to `.npmrc` locally, or configure the same values in your user-level npm config.
2. Set a valid `NPM_TOKEN` in your shell before publishing.

Example:

```bash
set NPM_TOKEN=your_token_here
```

The checked-in example keeps the `@sokusystems` scope configuration without storing a real token in git.