Implement Handler mobile app (React Native + Expo iOS)

Build the committed 2a interactive prototype from Handler Mobile.dc.html as
a real Expo app: six wired screens (Fleet, Agent detail, Answer, Spawn, Log,
Settings) with the exact state logic ported from the design's renderVals().

- Port Leeworks tokens (colors light/dark, typography, spacing, radii,
  shadows) to typed RN values in src/theme.
- Reimplement the design-system components used by the screens (Button,
  Badge, Icon, Switch, Select, TextField, segmented control, chip, tab bar).
- Shared store mirrors the prototype's single-screen navigation and the
  Waiting -> Running flip when agt-7a1d is answered.
- Real OS status bar / home indicator (safe-area insets) replace the mock
  phone chrome; dark mode follows system appearance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PdF2hHVQ4UUBFPtpeMQ81o
This commit is contained in:
Claude
2026-07-20 18:48:30 +00:00
parent f143959b52
commit daecaa7e6b
31 changed files with 13423 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
{
"name": "handler-mobile",
"version": "1.0.0",
"main": "index.ts",
"scripts": {
"start": "expo start",
"ios": "expo start --ios",
"android": "expo start --android",
"web": "expo start --web"
},
"dependencies": {
"@expo-google-fonts/figtree": "^0.2.3",
"@expo-google-fonts/outfit": "^0.2.3",
"@expo-google-fonts/spline-sans-mono": "^0.2.3",
"expo": "~52.0.0",
"expo-asset": "~11.0.1",
"expo-font": "~13.0.0",
"expo-status-bar": "~2.0.0",
"react": "18.3.1",
"react-native": "0.76.9",
"react-native-safe-area-context": "^4.12.0",
"react-native-svg": "^15.8.0"
},
"devDependencies": {
"@types/react": "~18.3.12",
"typescript": "~5.3.3"
},
"private": true
}