GenerationCanvas
The post-stream output card for image generation. Pairs with ImageGenerationProgress (the in-flight state) to cover the full lifecycle. Built-in actions for regenerate, variations, fork, copy-prompt, and download — all consumer-wired callbacks.
src/components/ai/generation-canvas.tsxFull action bar — ready state
The canonical layout: image canvas on top, prompt + meta + actions in the footer. Long prompts truncate to 2 lines with a 'Show full prompt' toggle.
A neon-lit ramen shop in Shibuya at night, heavy rain on the windows, steam rising from the bowls, cinematic lighting, shallow depth of field, 35mm film grain, the cook visible through the doorway
Generating state
While a regeneration is in flight, the canvas keeps the previous image visible (dimmed + slight blur) and overlays a status pill. Action buttons disable so users can't double-fire.
A neon-lit ramen shop in Shibuya, raining
Error state
When the generation request fails, the canvas swaps to an error overlay with a brief message and a Try again CTA. Pass errorMessage to override the default copy.
The prompt was blocked by the safety filter. Try rewording.
A neon-lit ramen shop in Shibuya, raining