Canvas right-click context menu (Notion plan, Phase 0)
Added
components/CanvasContextMenu.tsx — data-driven Windows-style popup menu:
separators, labels, action items (icon/label/shortcut/danger), and inline-input
rows. Self-positions within the viewport, dismisses on outside-click / Esc / wheel.
Canvas right-click menus wired via React Flow onPaneContextMenu /
onNodeContextMenu:
Empty space: Add link (inline input) · Paste · Text · Sticky note · Sticker ·
Image… · Integrations…
On a card: Open link · Expand preview · Copy · Duplicate · Bring to front /
Send to back · Delete
Cursor-accurate placement — getDropPoint() now honours a dropOverrideRef;
runAt(point, fn) holds it across async adds so pasted/dropped items land under
the cursor, not the viewport centre.
New card ops: duplicateCard, bringToFront, sendToBack, copyCardValue,
pasteAt.
Changed
Canvas gained an onOpenIntegrations prop; app/page.tsx passes it so the
menu's "Integrations…" opens the panel.
Notes
Phase 0 of the Notion-docs plan. Phase 1 (a local "doc" card kind + article
reader view) slots its "New doc" / "Open as article" rows into this same menu;
Phase 3 adds "New Notion doc" / "Import from Notion" once OAuth lands.