Skip to content
Vue edition

Vue edition

Vite, Vue 3 and TypeScript — installs, builds and runs on its own: no workspace, no path reaching outside the folder. The router uses history mode, so any static host serving the built files needs the usual single-page fallback to index.html.

Install and build

In vue
pnpm install --frozen-lockfile
pnpm run build

Developing

In vue
pnpm dev              # syncs shared/, then Vite on :5174
pnpm preview          # serves dist/
pnpm run typecheck

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, and four modules this edition would otherwise have written for itself — shared/api/client.mjs (the endpoints, the error shape and the cache keys, identical to the React edition's), 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.