# ui — minimal shared React utilities

Single-file library (`src/index.ts`). Exports two things: `cx()` (className joiner) and `surface`
(Tailwind class constant for bordered card surfaces). Consumed by the web dashboard; built to `dist/` via `tsc`.

## Layout

- `src/index.ts` — sole source file; all exports live here
- `dist/` — compiled output (gitignored); regenerated by `pnpm build`
- `tests/index.test.mjs` — runtime contract for class filtering/order and surface tokens
- `package.json` — ESM package, `main` points at `src/index.ts` for workspace consumers

## Conventions

- All new exports go in `src/index.ts` directly — no subdirectory structure
- No runtime dependencies; React is a peer dep only
- `pnpm test` builds `dist/`, then runs Node runtime tests
- Build: `pnpm build` → `tsc --outDir dist`

## Gotchas

- Package is deliberately thin — do not add component files or third-party deps without strong reason
- No UI components exist yet; `surface` is a raw Tailwind string, not a React component

See ../../CLAUDE.md (root)
