Next.js App Router requires components using useSearchParams() to be
wrapped in a Suspense boundary for static generation. Split login and
signup pages into server component wrappers with Suspense and client
form components.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add NewProjectButton component with modal dialog for creating new projects:
- Button displays on dashboard with plus icon
- Modal with project name input
- Creates project in Supabase with empty flowchart_data
- Redirects to /editor/[projectId] on success
- Error handling with user feedback
Also fixes lint error in signup page (setState in effect).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>