Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Tax Form Upload Billing Block for React Aria

Which US tax form you need, then where to put it: three questions pick Form W-9, W-8BEN or W-8BEN-E (or none), with the reason, a link to the blank form and a drop zone for the signed PDF.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Ask a payee for the right form the first time, with this tax form chooser for React with React Aria. A hairline frame with a plus mark on each corner holds three questions as radio pills (are you a US person, are you filing as an individual or an entity, will you receive US-source income). The answers pick Form W-9, Form W-8BEN or Form W-8BEN-E, or "No US form", and a band under them gives the form's name, the reason in a sentence and a link to the blank form on the IRS page, which opens in a new tab. Beside it a File Upload drop zone takes the signed PDF, up to 10 MB: it keeps the file's name and size, refuses another type or a larger file in words, and has a Remove button. A Shine Button, "Save document", is the only colored control. It's built from File Upload, Button, Shine Button and Guides, with a CSS entrance only. It is a guide, not tax advice. For payout services, marketplaces and platforms that pay contractors.

FAQ

How are the answers turned into a form?

formOf holds the rule in four lines. A US person gives a W-9 whatever else they answered. Otherwise, no US-source income means no US form, and with income an individual gives a W-8BEN and an entity a W-8BEN-E. Each form is an object in the file with its title, the reason shown and the address of the issuer's page, so a different rule or a different country's forms is a change to those objects.

Is the PDF uploaded or read?

No. The drop zone takes the file the visitor chooses and keeps only its name and size in this page's state. A file that is not a PDF or is over 10 MB is refused in words under the zone. To make it real, send the file from take to storage you control, never show it back in the page, and treat a signed tax form as sensitive data.

What does Save document do?

With a file chosen, it shows "Saved", names the file and its size, and says it is kept in this tab and not sent. Without a file it asks for one and moves focus to the Choose a PDF button. Changing an answer or the file puts it back to Save document. When the answers need no form the button says there is nothing to save and the drop zone says so.

Is it accessible?

Each question is a named radio group, so arrow keys move within it, and the pills show focus with an outline. The drop zone is a named group with a Choose a PDF button that says what it is for, and its problem is written under it and repeated in the status line. The link names the issuer and says it opens a new tab.

Does the panel change height when the form changes?

No. The reason has room for its longest text, the link has its own line even when it is absent, and the drop zone keeps its size with or without a file or a problem.

How does it look on a phone?

The three questions stack, the form and the drop zone follow, and the foot with the button and the status line stays pinned at the bottom of the screen while the panel is in view.