feat: nKode React + TypeScript SPA scaffold

- React + Vite + Tailwind CSS v4 + React Router
- Keypad component: 10-digit pad with dot indicators, keyboard support, haptic feel
- Auth pages: Login (email → keypad), Signup (email → method → keypad/key)
- Home page: session info, practice keypad
- Admin dashboard: placeholder stats + user management
- Developer dashboard: OIDC client registration UI placeholder
- WASM client wrapper: lazy loads from /wasm/, falls back to mock client
- TypeScript type declarations for nkode-client-wasm package
- Dark mode with system preference detection
- Auth state management with localStorage persistence + auto-expiry
- Code splitting: lazy-loaded route pages (~236KB main bundle)
- Inter font, clean indigo/slate design system
This commit is contained in:
2026-01-29 14:39:27 +00:00
commit a4de830313
25 changed files with 2004 additions and 0 deletions

32
tsconfig.app.json Normal file
View File

@@ -0,0 +1,32 @@
{
"compilerOptions": {
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"target": "ES2022",
"useDefineForClassFields": true,
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"module": "ESNext",
"types": ["vite/client"],
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"verbatimModuleSyntax": true,
"moduleDetection": "force",
"noEmit": true,
"jsx": "react-jsx",
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"erasableSyntaxOnly": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true,
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
"include": ["src"]
}