React edition
Vite, React 19 and TypeScript — installs, builds and runs on its own: no
workspace, no path alias reaching outside the folder, no shared
node_modules.
Install and build
reactpnpm install --frozen-lockfile
pnpm run buildDeveloping
reactpnpm dev # syncs shared/, then Vite on :5173
pnpm run preview # serves dist/
pnpm run typecheckVerifying a clean build
react — Full repository onlypnpm run checkpnpm run check runs node ../tools/sync-shared.mjs --check from inside
react/, which fails the moment react/src/shared/ has been edited by hand
instead of shared/ at the repository root — see
Generated folders.
Where the shared code lives
src/shared/ is generated — a mirror of the repository's shared/,
written by tools/sync-shared.mjs, which dev and build run first. Editing
a file there appears to work and then vanishes at the next sync. Edit
shared/ at the repository root instead.
What comes from there: the design tokens and the component CSS, the ICU
catalogues, the icon sprite, the brand marks, the demo dataset and the mock
API, plus three modules this edition would otherwise have written for itself —
shared/i18n/format.mjs (numbers, money, relative dates),
shared/charts/base.mjs (the ApexCharts defaults this design language turns
off) and shared/ui/preferences.mjs (the option lists and the storage key).
Each has a hand-written .d.mts beside it. The implementations cannot be
TypeScript — one of the five editions has no build step at all — but nothing
here is any because of that.