Add side panels, task selection, graph animation, and project docs

- Foldable left panel (user profile) and right panel (task details)
- Clicking a task in the list or graph node selects it and shows details
- Both views (task list + graph) always mounted via absolute inset-0 for
  correct canvas dimensions; tabs toggle visibility with opacity
- Graph node selection animation: other nodes repel outward (charge -600),
  then selected node smoothly slides to center (500ms cubic ease-out),
  then charge restores to -120 and graph stabilizes
- Graph re-fits on tab switch and panel resize via ResizeObserver
- Fix UUID string IDs throughout (backend returns UUIDs, not integers)
- Add TaskDetailPanel, UserPanel components
- Add CLAUDE.md project documentation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Alvis
2026-04-08 11:23:06 +00:00
parent 5c7edd4bbc
commit f1d51b8cc8
23998 changed files with 3242708 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
export { };
//# sourceMappingURL=app-page-route-match.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/route-matches/app-page-route-match.ts"],"names":[],"mappings":"AAGA,WAAgF"}

View File

@@ -0,0 +1,3 @@
export { };
//# sourceMappingURL=app-route-route-match.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/route-matches/app-route-route-match.ts"],"names":[],"mappings":"AAGA,WACgD"}

View File

@@ -0,0 +1,3 @@
export { };
//# sourceMappingURL=locale-route-match.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/route-matches/locale-route-match.ts"],"names":[],"mappings":"AAGA,WAGC"}

View File

@@ -0,0 +1,10 @@
import { RouteKind } from "../route-kind";
/**
* Checks if the given match is a Pages API route match.
* @param match the match to check
* @returns true if the match is a Pages API route match, false otherwise
*/ export function isPagesAPIRouteMatch(match) {
return match.definition.kind === RouteKind.PAGES_API;
}
//# sourceMappingURL=pages-api-route-match.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/route-matches/pages-api-route-match.ts"],"names":["RouteKind","isPagesAPIRouteMatch","match","definition","kind","PAGES_API"],"mappings":"AAGA,SAASA,SAAS,QAAQ,gBAAe;AAKzC;;;;CAIC,GACD,OAAO,SAASC,qBACdC,KAAiB;IAEjB,OAAOA,MAAMC,UAAU,CAACC,IAAI,KAAKJ,UAAUK,SAAS;AACtD"}

View File

@@ -0,0 +1,3 @@
export { };
//# sourceMappingURL=pages-route-match.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/route-matches/pages-route-match.ts"],"names":[],"mappings":"AAGA,WACmD"}

View File

@@ -0,0 +1,6 @@
/**
* RouteMatch is the resolved match for a given request. This will contain all
* the dynamic parameters used for this route.
*/ export { };
//# sourceMappingURL=route-match.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/server/future/route-matches/route-match.ts"],"names":[],"mappings":"AAEA;;;CAGC,GACD,WASC"}