Most component kits hand you a date picker that drags in a calendar library, a date library, and a plugin for the timezone edge cases. This one doesn't. The 42-cell month grid, the week offset, the month arithmetic and the whole keyboard model are about forty lines of pure functions you can read in one sitting. Radix supplies popover positioning, focus trapping and dismissal — the parts you should never write yourself. Everything above that is plain React. **What ships** Twenty files, twenty-three exported components: - **Pickers** — DatePicker, DateRangePicker (two months by default, or one), TimePicker, Combobox - **Selection** — Select, DropdownMenu, Checkbox, RadioGroup/Radio - **Overlays** — Dialog, ConfirmDialog, Tooltip, Toaster - **Forms** — Field, Input, Textarea, Button/ButtonLink, Link - **Motion** — Reveal, Stagger **How the theming works** There is not a single hard-coded colour anywhere under `src/components`. Every component reads from about fifteen CSS variables. Rebind them and the whole set follows — including into your existing design system, which is the point. Light and dark are both defined, in all three states a page can actually be in: the OS preference via `prefers-color-scheme`, and an explicit `data-theme` that beats it in either direction. The classic bug — a colour whose only definition sits inside a media query, so the page renders one theme's text on the other theme's background — cannot happen here. **Dates cross the boundary as strings** `"YYYY-MM-DD"`, never `Date` objects, never ISO date-times, never UTC. Those strings sort chronologically as text, which is why the min/max comparisons are plain `<` and `>`. Parsing appends T12:00:00 and omits the Z, so the value stays local: a bare new Date("2026-03-29") is parsed as UTC and reports the previous day anywhere west of Greenwich. **Accessibility is in each component, not a later pass** One focus ring defined globally, so no component invents its own. Labels enforced by the types where a control cannot be rendered unlabelled. Native inputs kept in the DOM rather than replaced, so the platform keyboard model — arrow keys between radios, Space to toggle a checkbox, one tab stop per group — comes for free instead of being re-implemented badly. **Localisation with no dependency** Pass a BCP-47 tag and month and weekday names come from `Intl.DateTimeFormat`. Every piece of chrome text is a prop with an English default. There is no i18n library and no message catalogue to adopt.