cursedbelt
v5.3.1
Published
The React design system of the cursedbelt split — components, styles, theme. cursedbelt-core below it; server tier in cursedbelt-server.
Readme
cursedbelt
The React design system of the cursedbelt split — components, styles, theme. The tiers:
| package | what it is |
| --- | --- |
| cursedbelt-core | runtime-free types, schemas and wire shapes both sides share |
| cursedbelt (this one) | React components, styles.css, theme.css, the guardrails scanner |
| cursedbelt-server | the server tier — Bun routes, storage, auth, master lock |
| cursedbelt-cc | the parked cc platform (verify pipeline, studios) |
The full reference — every subpath, the stylesheet routes, and what each subpath makes you
install — is docs/API-REFERENCE.md. The rules a component must keep are
docs/STANDARDS.md.
Before you import it — the traps that have cost a build
- A subpath can need a package you have not installed.
cursedbelt/react/chartsneedsrecharts,cursedbelt/react/rich-textthe@tiptap/*set, and so on: they are optional peers, sobun add cursedbeltdoes not bring them. Skip one and Vite fails on a module called__vite-optional-peer-dep:recharts:cursedbelt— the package to add is the middle field. The table is "What you install, and what you don't" indocs/API-REFERENCE.md, andsrc/optionalPeersTable.spec.tsfails this repo's gate when it stops matching the code. - Import the leaf, not a barrel, for one thing.
cursedbelt/reactis the one barrel that is safe whole —src/barrelsReachNoOptionalPeer.spec.tsproves it reaches no optional peer. On the server tier the rule is the opposite:cursedbelt-server's root export is a barrel, so an app takes a leaf such ascursedbelt-server/login-throttle. That package's own docs carry which leaves exist and what its barrel costs. Bun.serve'swebsocketoption selects an overload — it is acursedbelt-serverseam and its note lives there.
Working on it
bun run verify is the gate (typecheck ∥ lint ∥ tests ∥ build ∥ Playwright on the demo), and
bun run demo is the kitchen-sink app every browser spec drives. Publishing is
tools/publish-libs.sh at the generation root, which runs this gate first.
