Files
claudemesh/.context/turbostarter-framework-context/wireframes/_templates/components/form.excalidraw
Alejandro Gutiérrez d3163a5bff feat(db): mesh data model — meshes, members, invites, audit log
- pgSchema "mesh" with 4 tables isolating the peer mesh domain
- Enums: visibility, transport, tier, role
- audit_log is metadata-only (E2E encryption enforced at broker/client)
- Cascade on mesh delete, soft-delete via archivedAt/revokedAt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 21:19:32 +01:00

434 lines
9.9 KiB
Plaintext

{
"type": "excalidraw",
"version": 2,
"source": "turbostarter-wireframes",
"elements": [
{
"id": "form-container",
"type": "rectangle",
"x": 0,
"y": 0,
"width": 400,
"height": 500,
"strokeColor": "$border",
"backgroundColor": "$card",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": [],
"roundness": { "type": 3, "value": 12 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "form-title",
"type": "rectangle",
"x": 24,
"y": 24,
"width": 352,
"height": 28,
"strokeColor": "$foreground",
"backgroundColor": "$foreground",
"fillStyle": "solid",
"strokeWidth": 0,
"roughness": 0,
"opacity": 100,
"groupIds": [],
"roundness": { "type": 3, "value": 4 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "form-description",
"type": "rectangle",
"x": 24,
"y": 60,
"width": 352,
"height": 20,
"strokeColor": "$muted",
"backgroundColor": "$muted",
"fillStyle": "solid",
"strokeWidth": 0,
"roughness": 0,
"opacity": 60,
"groupIds": [],
"roundness": { "type": 3, "value": 4 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "label-1",
"type": "rectangle",
"x": 24,
"y": 100,
"width": 80,
"height": 16,
"strokeColor": "$foreground",
"backgroundColor": "$foreground",
"fillStyle": "solid",
"strokeWidth": 0,
"roughness": 0,
"opacity": 80,
"groupIds": [],
"roundness": { "type": 3, "value": 2 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "input-1",
"type": "rectangle",
"x": 24,
"y": 120,
"width": 352,
"height": 40,
"strokeColor": "$border",
"backgroundColor": "$background",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": [],
"roundness": { "type": 3, "value": 6 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "label-2",
"type": "rectangle",
"x": 24,
"y": 172,
"width": 80,
"height": 16,
"strokeColor": "$foreground",
"backgroundColor": "$foreground",
"fillStyle": "solid",
"strokeWidth": 0,
"roughness": 0,
"opacity": 80,
"groupIds": [],
"roundness": { "type": 3, "value": 2 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "input-2",
"type": "rectangle",
"x": 24,
"y": 192,
"width": 352,
"height": 40,
"strokeColor": "$border",
"backgroundColor": "$background",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": [],
"roundness": { "type": 3, "value": 6 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "label-3",
"type": "rectangle",
"x": 24,
"y": 244,
"width": 80,
"height": 16,
"strokeColor": "$foreground",
"backgroundColor": "$foreground",
"fillStyle": "solid",
"strokeWidth": 0,
"roughness": 0,
"opacity": 80,
"groupIds": [],
"roundness": { "type": 3, "value": 2 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "input-3",
"type": "rectangle",
"x": 24,
"y": 264,
"width": 352,
"height": 40,
"strokeColor": "$border",
"backgroundColor": "$background",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": [],
"roundness": { "type": 3, "value": 6 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "eye-icon",
"type": "rectangle",
"x": 340,
"y": 276,
"width": 20,
"height": 16,
"strokeColor": "$muted",
"backgroundColor": "$muted",
"fillStyle": "solid",
"strokeWidth": 0,
"roughness": 0,
"opacity": 60,
"groupIds": [],
"roundness": { "type": 3, "value": 2 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "checkbox",
"type": "rectangle",
"x": 24,
"y": 316,
"width": 20,
"height": 20,
"strokeColor": "$border",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": [],
"roundness": { "type": 3, "value": 4 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "checkbox-label",
"type": "rectangle",
"x": 52,
"y": 318,
"width": 100,
"height": 16,
"strokeColor": "$foreground",
"backgroundColor": "$foreground",
"fillStyle": "solid",
"strokeWidth": 0,
"roughness": 0,
"opacity": 80,
"groupIds": [],
"roundness": { "type": 3, "value": 2 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "forgot-link",
"type": "rectangle",
"x": 276,
"y": 318,
"width": 100,
"height": 16,
"strokeColor": "$primary",
"backgroundColor": "$primary",
"fillStyle": "solid",
"strokeWidth": 0,
"roughness": 0,
"opacity": 80,
"groupIds": [],
"roundness": { "type": 3, "value": 2 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "primary-button",
"type": "rectangle",
"x": 24,
"y": 352,
"width": 352,
"height": 44,
"strokeColor": "$primary",
"backgroundColor": "$primary",
"fillStyle": "solid",
"strokeWidth": 0,
"roughness": 0,
"opacity": 100,
"groupIds": [],
"roundness": { "type": 3, "value": 6 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "secondary-button",
"type": "rectangle",
"x": 24,
"y": 404,
"width": 352,
"height": 44,
"strokeColor": "$border",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": [],
"roundness": { "type": 3, "value": 6 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "divider-left",
"type": "line",
"x": 24,
"y": 468,
"width": 140,
"height": 0,
"strokeColor": "$border",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": [],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false,
"points": [[0, 0], [140, 0]]
},
{
"id": "divider-text",
"type": "rectangle",
"x": 172,
"y": 460,
"width": 56,
"height": 16,
"strokeColor": "$muted",
"backgroundColor": "$muted",
"fillStyle": "solid",
"strokeWidth": 0,
"roughness": 0,
"opacity": 60,
"groupIds": [],
"roundness": { "type": 3, "value": 2 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "divider-right",
"type": "line",
"x": 236,
"y": 468,
"width": 140,
"height": 0,
"strokeColor": "$border",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": [],
"roundness": null,
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false,
"points": [[0, 0], [140, 0]]
},
{
"id": "oauth-google",
"type": "rectangle",
"x": 100,
"y": 484,
"width": 60,
"height": 44,
"strokeColor": "$border",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["oauth-group"],
"roundness": { "type": 3, "value": 6 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "oauth-github",
"type": "rectangle",
"x": 170,
"y": 484,
"width": 60,
"height": 44,
"strokeColor": "$border",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["oauth-group"],
"roundness": { "type": 3, "value": 6 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
},
{
"id": "oauth-apple",
"type": "rectangle",
"x": 240,
"y": 484,
"width": 60,
"height": 44,
"strokeColor": "$border",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"roughness": 0,
"opacity": 100,
"groupIds": ["oauth-group"],
"roundness": { "type": 3, "value": 6 },
"isDeleted": false,
"boundElements": null,
"link": null,
"locked": false
}
],
"appState": {
"gridSize": 20,
"viewBackgroundColor": "$background"
}
}