Measured entry
originui-comp-43
A client-side date-range picker that blocks weekends and several date windows relative to today, then validates ranges against those exclusions. It ships as a shadcn registry component with companion calendar and date-field registry items, and depends on React Aria Components, React Aria, Internationalized Date, Lucide icons, utility classes, and theme tokens.



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 | 1 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 106.2 KB (171.6 KB build, 65.4 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 9.92s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/cut/components/ui/comp-43.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A capable, locale-aware picker for apps already committed to React Aria. It builds, mounts, and stays within its viewport, but the muted text needs contrast work. It also needs a shadcn-style setup and is a poor fit when dependency weight or drop-in portability matters.
Use it if
- You need an accessible range picker that can prevent selection of weekends and blocked date windows.
- Your app already uses React Aria and shadcn-style registry components, aliases, utility classes, and theme tokens.
- You want locale-aware date entry with a calendar popover and inline validation behavior.
Skip it if
- You need a lightweight picker without the React Aria and internationalized date dependency footprint.
- Your release requires clean automated accessibility checks before adjusting the muted text colors.
- Your availability rules differ substantially from the hard-coded weekend and relative-date exclusions.
- You want a drop-in component for a plain React project with no shadcn-style utility layer.
Install
| Declared dependencies | react-aria-components, react-aria, @internationalized/date |
|---|---|
| Missing on install | react-aria |
| 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 React Aria Components, React Aria, Internationalized Date, and Lucide React. Copy the companion range-calendar and date-field components, provide the class-name utility, configure the import alias, and define the expected utility classes and color tokens. Review muted foreground colors for contrast.
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/origin-space/originuiAlternatives
Other published entries for the calendar pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- shadcn-calendarunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 37.3KB
- Bare
- fail
- Prov
- NO
- shadcn-block-calendar-01minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 50.8KB
- Bare
- fail
- Prov
- NO
- shadcn-block-calendar-02minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 50.9KB
- Bare
- fail
- Prov
- NO
- shadcn-block-calendar-03minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 50.9KB
- Bare
- fail
- Prov
- NO
- shadcn-block-calendar-04minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 50.9KB
- Bare
- fail
- Prov
- NO
- shadcn-block-calendar-05minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 50.9KB
- Bare
- fail
- Prov
- NO