About
A hover-revealed action row under an AI chat reply with copy, regenerate (with version switcher), thumbs up/down feedback with a reason prompt, and share, each with its own micro-animated confirmation state.
Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds Message Actions to your project and fits it to your theme.
Code
How Message Actions is used: the demo's code. The component's own source comes with a free account.
Usage.tsx
"use client";
import { MessageActions } from "@/components/ui/message-actions";
const V = [
<>
<p>
The deck and the data mostly agree. The one real mismatch is{" "}
<strong>slide 12</strong>: it shows 71% week-6 retention, but the March
cohort in the CSV sits at 64%.
</p>
<p>
Everything else — revenue, seats, expansion — matches to within a rounding
error.
</p>
</>,
<>
<p>
Short version: one number is off. Slide 12 says 71% week-6 retention; the
CSV says 64% for March.
</p>
<p>
I’d update the slide or add a footnote explaining the cohort
difference.
</p>
</>,
<>
<p>
Slide 12 overstates retention (71% vs 64% in the data). Everything else
checks out.
</p>
</>,
];
export default function MessageActionsDemo() {
return (
<div className="flex min-h-[320px] w-full items-center justify-center bg-[#f5f1e8] p-8">
<MessageActions versions={V} theme="paper" />
</div>
);
}
















