Files
vinihcrosaandClaude Sonnet 4.6 788f7982f9 feat(web): implement scenario-creator feature
- ScenarioCreatorPage: full-screen layout (sidebar + Leaflet map)
- AreaMapView: Leaflet map with area polygon and draggable vessel markers
- VesselMarker: SVG icon rotated by heading
- ScenarioForm: scenario name input + area dropdown
- VesselList: add/remove vessels with heading editor
- SimulationControls: start/stop buttons + live simulation time display
- Sidebar: composition of all form components
- useScenarioStore: Zustand draft state (area, vessels, positions, headings)
- useAreas / useVessels: fetch hooks with loading/error/retry
- geo.ts: equirectangular lat/lng ↔ meters conversion + isInsidePolygon
- simulationStore: extend with loadScenario + scenarioVessels state
- simulation.worker: support loadScenario message with multi-vessel init
- 59 unit tests, coverage >80% on all metrics (stmts 94%, branches 84%)
- E2E Playwright smoke spec for scenario-creator flow
- gitignore: add apps/web/coverage/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 03:33:11 -03:00

23 lines
573 B
JSON

{
"compilerOptions": {
"target": "ES2022",
"useDefineForClassFields": true,
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"types": ["vite/client"],
"module": "ESNext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"jsx": "react-jsx",
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"skipLibCheck": true,
"allowImportingTsExtensions": true,
"paths": {
"@ymir/types": ["../../packages/types/src/index.ts"]
}
},
"include": ["src"],
"references": [{ "path": "./tsconfig.node.json" }]
}