shadcn.io is not affiliated with official shadcn/ui
Contract Reviewer AI Block for React
Review the tracked changes of a sample agreement clause by clause as a redline, with a reason and Accept or Reject on each change, a clean copy switch, and Export clean copy as a text file.
Installation
Overview
Decide a contract change by change, with this contract reviewer for React with Base UI. A header names Redpenn, a redlining tool, and a hairline frame holds the sample Hollis and Orme master services agreement: five clauses, seven tracked changes. A clause list at the start (a Native Select on a phone) shows each clause's open changes and a risk word worked out from them. The chosen clause is drawn as a redline, with struck text for what goes and underlined text for what comes in, and under it every change has a reason, a risk badge and Accept and Reject Buttons, then Undo once decided. The header counts "7 open changes, 2 high" and falls as you decide, a Switch shows the clean copy, "Accept all low-risk" decides every low-risk change at once, and the Shine Button, Export clean copy, saves a real text file. The frame is ruled by Guides.
FAQ
What stays local, and how do I wire it for real?
The agreement, its changes, their reasons and the risk words are typed at the top of the file, and your decisions live in this tab only. The risk of a clause is derived from its open changes, never typed twice. To make it real, load the clauses and tracked changes from your document service into the same Part and Change shapes and save each decision where the buttons fire.
Is this legal advice?
No. It is sample text for a demo, and it says so under the redline and in the exported file. The risk words are a teaching device, not an assessment of any real contract.
What does the clean copy show, and what is exported?
Accepted changes are applied, rejected changes keep the original wording, and changes you have not decided also keep the original wording until you accept them. Export clean copy saves exactly that as clean-copy.txt, and the status line tells you how many changes were still open.
How is the risk word chosen?
For a clause it is the highest risk among its open changes, and it becomes "Done" when none are open. The header counts open changes and how many of them are high. Accepting all low-risk changes never touches a medium or high one.
Is it usable with a keyboard and a screen reader?
The clause list is a radio group, so the arrow keys move through it. Each change says "change 1, open" in the redline for screen readers, since strike and underline alone say nothing, and its buttons are named for it. After you accept or reject, focus moves to the Undo button that appears in the same place, and one polite status line says what happened.