Measured entry
hextaui-billing-invoice-details
A client-side React invoice detail sheet that renders status, dates, billing address, line items, adjustments, totals, payment details, and optional print or download actions. It ships as shadcn registry source and depends on Tailwind styling, local Badge, Button, Separator, and Sheet primitives, a cn helper, Radix-backed UI packages, and lucide-react icons.



Measured
Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 47.8 KB (113.3 KB build, 65.5 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
BARE BUILD
✗ Build failed in 784ms error during build: [vite]: Rollup failed to resolve import "lucide-react" from "<sandbox>re-52ec2f477fb5/src/cut/blocks/billing/billing-invoice-details.tsx".
Verdict
A solid fit for an existing shadcn-style billing interface, with responsive detail presentation and clean optional actions. It needs a shadcn-style setup and does not mount bare; note the fixed locale and confirm the tax-rate input convention before adopting it.
Use it if
- You need a controlled invoice drawer that accepts your own invoice data and action callbacks.
- Your product already uses shadcn-style primitives, Tailwind theme tokens, and path aliases.
- You want line items to switch from a table-like layout to labeled rows on narrow screens.
- You need optional billing address, discount, tax, payment method, print, and download sections in one view.
Skip it if
- You need a standalone package that works without copying registry primitives and project utilities.
- You need invoice editing, payment collection, refunds, or PDF generation rather than a read-only detail view.
- Your tax rate data is already expressed as a display percentage, because the component multiplies the supplied rate before rendering it.
- You need locale-aware dates and currency formatting controlled by the viewer, since formatting is fixed to an English locale.
Install
| Declared dependencies | @radix-ui/react-slot, @radix-ui/react-separator, @radix-ui/react-dialog, clsx, tailwind-merge |
|---|---|
| Missing on install | none |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
In a non-shadcn project, add Tailwind with the expected theme tokens, a cn class-merging helper, compatible Badge, Button, Separator, and Sheet components, their Radix dependencies, and lucide-react. Replace the registry path aliases with local imports, preserve the client-component boundary, and wire the controlled open state plus print and download handlers.
Source and credit
This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.
Author repository
github.com/preetsuthar17/HextaUIAlternatives
Other published entries for the sheet pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- hextaui-popoverminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 52.9KB
- Bare
- pass
- Prov
- NO
- shadcn-sheetunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 26.3KB
- Bare
- fail
- Prov
- NO
- neobrutalism-nsheetbrutalism
- Renders
- YES
- A11y
- 0
- Gzip
- 40.5KB
- Bare
- fail
- Prov
- NO
- neobrutalism-sheetbrutalism
- Renders
- YES
- A11y
- 0
- Gzip
- 40.5KB
- Bare
- fail
- Prov
- NO
- 8bitcn-resizableskeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 40.8KB
- Bare
- fail
- Prov
- NO
- 8bitcn-sheetskeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 43.8KB
- Bare
- fail
- Prov
- NO