feat: Add multi-canvas system with project canvas support

- Add project_canvas and canvas_components tables for persistent canvas storage
- Add ProjectCanvas store with full CRUD operations
- Add ProjectCanvasPage for rendering saved canvas with components
- Add ProjectsPage for managing canvas list (create, clone, delete)
- Add HomePage that loads default canvas or falls back to dynamic canvas
- Add toolbar support for displaying canvas as pages with custom icons
- Add component usage validation to prevent deletion of components in use
- Add MCP tools for canvas management (list, create, update, delete, clone)
- Update router with /canvas/:id and /projects routes
- Update Toolbar to show dynamic canvas pages from database
This commit is contained in:
2026-02-13 06:32:46 -06:00
parent 2e64dceb1e
commit 8a017db777
13 changed files with 2016 additions and 13 deletions

View File

@@ -146,9 +146,13 @@ export const componentsApi = {
return res.json()
},
async delete(id: string): Promise<{ success: boolean }> {
async delete(id: string): Promise<{ success: boolean; error?: string; usedBy?: { id: string; name: string }[] }> {
const res = await fetch(`${API_URL}/api/components/${id}`, { method: 'DELETE' })
return res.json()
const data = await res.json()
if (!res.ok) {
return { success: false, error: data.error || data.message, usedBy: data.usedBy }
}
return data
},
async deleteAll(): Promise<{ success: boolean }> {