[DS-1] Build core infrastructure: React/TS/Tailwind tooling #1

Merged
chris merged 3 commits from feature/DS-1 into main 2026-09-01 18:42:55 -06:00
Owner

Ticket

DS-1 Build core infrastructure: React/TypeScript/Tailwind + Expo-compatible tooling

Summary

  • Bootstrap the @chrisharrington/design-system package (package.json, tsconfig.json,
    .gitignore, README) with Expo-compatible config (ES2020 target, plain ESM/CJS output)
  • Add tsup-based build tooling and a shareable Tailwind preset placeholder
    (designSystemPreset), with tests for its shape and its barrel re-export
  • Document the link: consumption flow and required Metro behavior for consumers
    (budget-tracker/app, irrigo/app) in the README — written but not exercised against
    either app per explicit direction; that verification is tracked separately
  • Pre-PR review remediation: fixed the link: path depth in the README, added a prepare
    script so a consumer's bun install builds dist/, added tailwindcss to
    peerDependencies, removed a misleading duplicate export subpath, pinned loose
    @types/* versions, corrected the Metro instructions (no symlink flag needed; package
    exports resolution is on by default on SDK 53+), fixed CJS/ESM type resolution in the
    exports map, added a ./package.json export, fixed corrupted .gitignore globs, and
    strengthened the preset tests

Actual design tokens/colors and form field components are out of scope for this ticket and
tracked in follow-up tickets (e.g. DS-2).

## Ticket [DS-1](http://192.168.2.100:7123/home/browse/DS-1/) Build core infrastructure: React/TypeScript/Tailwind + Expo-compatible tooling ## Summary - Bootstrap the `@chrisharrington/design-system` package (`package.json`, `tsconfig.json`, `.gitignore`, README) with Expo-compatible config (ES2020 target, plain ESM/CJS output) - Add `tsup`-based build tooling and a shareable Tailwind preset placeholder (`designSystemPreset`), with tests for its shape and its barrel re-export - Document the `link:` consumption flow and required Metro behavior for consumers (`budget-tracker/app`, `irrigo/app`) in the README — written but not exercised against either app per explicit direction; that verification is tracked separately - Pre-PR review remediation: fixed the `link:` path depth in the README, added a `prepare` script so a consumer's `bun install` builds `dist/`, added `tailwindcss` to `peerDependencies`, removed a misleading duplicate export subpath, pinned loose `@types/*` versions, corrected the Metro instructions (no symlink flag needed; package exports resolution is on by default on SDK 53+), fixed CJS/ESM type resolution in the `exports` map, added a `./package.json` export, fixed corrupted `.gitignore` globs, and strengthened the preset tests Actual design tokens/colors and form field components are out of scope for this ticket and tracked in follow-up tickets (e.g. DS-2).
- Fix link: path depth in README (../../design-system, not ../design-system)
- Add a prepare script (tsup) so a consumer's bun install builds dist/ via the link
- Add tailwindcss to peerDependencies (dist/index.d.ts's public types depend on it)
- Remove the ./tailwind-preset export subpath (duplicate of the barrel, misleading)
- Pin @types/bun and @types/react to real ranges instead of "latest"
- Rewrite the Metro consuming-instructions: drop the nonexistent unstable_enableSymlinks
  flag and note package-exports resolution is on by default on Expo/Metro SDK 53+
- Nest exports types per import/require condition so CJS consumers get index.d.cts
  instead of the ESM .d.ts; add a ./package.json export subpath
- Fix corrupted glob patterns in .gitignore (*.log, report.[0-9]*...)
- Strengthen tailwind-preset tests (real shape assertions) and add a barrel-import test
chris merged commit 510840a980 into main 2026-09-01 18:42:55 -06:00
chris deleted branch feature/DS-1 2026-09-01 18:42:55 -06:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
chris/design-system!1
No description provided.