You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An installable Canvas view: a freeform, pan-and-zoom board where you arrange note cards spatially and draw connections between them.
This is the heaviest of the view-plugin ideas, so it is split into the sub-issues below. Each is independently shippable and builds on the one before it. Track overall progress here.
View: a full workspace view plus a nav item, provided by an installable plugin (builtin: false, not pre-installed).
Target behavior (across the sub-issues)
Infinite pan and zoom canvas; drag note cards to position them; draw links between cards.
Add existing notes to the canvas from a picker; double-click a card to open the note.
Layout (positions and connections) persists client-side, keyed per canvas, consistent with how the note tree and plugin install state are stored.
Support more than one named canvas.
Shared implementation notes
Register with the plugin runtime: ctx.addView({ id: 'canvas', label: 'Canvas', icon: (a frame or layout icon), order, component }) as a lazy-loaded builtin.
Add a marketplace catalog entry in plugins.ts and a load in catalog.ts; builtin: false.
Persist canvas state (card positions, links) to localStorage, keyed per canvas; read notes from data.notes.
The existing GraphView already implements canvas pan, zoom, and drag with a view {x,y,k} transform; reuse that approach rather than pulling in a new dependency.
References
Plugin runtime: frontend/src/features/workspace/plugins/. Reference interactions: frontend/src/features/workspace/GraphView.tsx. Catalog: plugins.ts and catalog.ts.
Summary
An installable Canvas view: a freeform, pan-and-zoom board where you arrange note cards spatially and draw connections between them.
This is the heaviest of the view-plugin ideas, so it is split into the sub-issues below. Each is independently shippable and builds on the one before it. Track overall progress here.
Sub-issues
Contribution point
View: a full workspace view plus a nav item, provided by an installable plugin (builtin: false, not pre-installed).Target behavior (across the sub-issues)
Shared implementation notes
ctx.addView({ id: 'canvas', label: 'Canvas', icon: (a frame or layout icon), order, component })as a lazy-loaded builtin.plugins.tsand aloadincatalog.ts;builtin: false.localStorage, keyed per canvas; read notes fromdata.notes.GraphViewalready implements canvas pan, zoom, and drag with aview {x,y,k}transform; reuse that approach rather than pulling in a new dependency.References
Plugin runtime:
frontend/src/features/workspace/plugins/. Reference interactions:frontend/src/features/workspace/GraphView.tsx. Catalog:plugins.tsandcatalog.ts.