Implement Initial Export Panel#362
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces an export panel feature for the Atlas canvas, allowing users to export selected cards in various formats. It adds the ExportPanel component, an ExportProvider context, and integrates export actions into the canvas controls and card shapes. Additionally, typography mixins and color tokens have been updated. The feedback focuses on performance and UX improvements: splitting the export context into state and actions to prevent unnecessary card re-renders, optimizing the selected card count calculation, stopping keyboard event propagation to avoid triggering canvas shortcuts, restricting 'Select All' to card shapes, and making the shortcut label platform-aware.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
nick-nlb
left a comment
There was a problem hiding this comment.
Thanks for this as well Paulo! I've put in a couple of nits, but otherwise approved.
One of the items out of the last meeting was that the "status" section of the export (where it says "No cards selected") is functionally useful but should be smaller. We can put that in for a separate PR (along with the other deferred item mentioned in the comments.
We should make sure to track the various differed items that come out of this and other PRs so that we don't lose sight of them.
Overview
Adds a floating Export panel to the Atlas canvas, triggered from the existing Export control.
What changed
export_panel.tsx) rendered in theInFrontOfTheCanvasslot: header, a status card, and an "Export options" grid (API Request Code, CSV, AI Narrative, AI Infographic, SVG, PNG). Opens with a prefers-motion-gated fade/scale and stops pointer/wheel events so canvas gestures don't fire underneath.ExportProvider/useExport(open/close/toggle) colocated in one file, wrapping the canvas and page so the panel can be opened from anywhere; the Export button incontrols.tsxnow toggles it with aria-haspopup/aria-expanded.Screenshots