Files
taskpile/frontend/node_modules/next/dist/server/dev/hot-middleware.d.ts
Alvis f1d51b8cc8 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>
2026-04-08 11:23:06 +00:00

49 lines
1.6 KiB
TypeScript

/// <reference types="ws" />
import type { webpack } from 'next/dist/compiled/webpack/webpack';
import type ws from 'next/dist/compiled/ws';
import type { VersionInfo } from './parse-version-info';
import type { HMR_ACTION_TYPES } from './hot-reloader-types';
declare class EventStream {
clients: Set<ws>;
constructor();
everyClient(fn: (client: ws) => void): void;
close(): void;
handler(client: ws): void;
publish(payload: any): void;
}
export declare class WebpackHotMiddleware {
eventStream: EventStream;
clientLatestStats: {
ts: number;
stats: webpack.Stats;
} | null;
middlewareLatestStats: {
ts: number;
stats: webpack.Stats;
} | null;
serverLatestStats: {
ts: number;
stats: webpack.Stats;
} | null;
closed: boolean;
versionInfo: VersionInfo;
constructor(compilers: webpack.Compiler[], versionInfo: VersionInfo);
onClientInvalid: () => void;
onClientDone: (statsResult: webpack.Stats) => void;
onServerInvalid: () => void;
onServerDone: (statsResult: webpack.Stats) => void;
onEdgeServerInvalid: () => void;
onEdgeServerDone: (statsResult: webpack.Stats) => void;
/**
* To sync we use the most recent stats but also we append middleware
* errors. This is because it is possible that middleware fails to compile
* and we still want to show the client overlay with the error while
* the error page should be rendered just fine.
*/
onHMR: (client: ws) => void;
publishStats: (statsResult: webpack.Stats) => void;
publish: (payload: HMR_ACTION_TYPES) => void;
close: () => void;
}
export {};