# Hirael > The components shadcn/ui doesn't ship: React components, section blocks, and full-page templates distributed through the shadcn registry schema. Install any item with `npx shadcn@latest add https://hirael.com/r/.json` (Radix UI) or `https://hirael.com/r/base/.json` (Base UI); the source copies into the consumer's repo. Every item below has a machine-readable registry JSON at `/r/.json` (Radix UI) and `/r/base/.json` (Base UI) containing its full source files, dependencies, and install targets, plus a Markdown version of its documentation page at `/r/.md` (and `/r/base/.md`) carrying the install command, usage, examples, full source, and API tables in one document. Human-facing pages embed live demos of each item. ## Components - [Multi Select](https://hirael.com/components/inputs/multi-select): Chip-based multi-select with command-palette dropdown, search, select-all and a loading state. Compound and single-prop APIs. Markdown: https://hirael.com/r/multi-select.md. Registry JSON: https://hirael.com/r/multi-select.json - [Number Range](https://hirael.com/components/inputs/number-range): Two-thumb slider paired with synced number inputs. Min/max/step, currency or unit formatting, keyboard-first. Markdown: https://hirael.com/r/number-range.md. Registry JSON: https://hirael.com/r/number-range.json - [Tag Input](https://hirael.com/components/inputs/tag-input): Chip input with paste-to-split, dedupe, validation hook and max tags. Markdown: https://hirael.com/r/tag-input.md. Registry JSON: https://hirael.com/r/tag-input.json - [Duration Input](https://hirael.com/components/inputs/duration-input): Segmented duration field over days, hours, minutes and seconds. Digits auto-advance, arrows step, and the value stays a plain number of seconds. Markdown: https://hirael.com/r/duration-input.md. Registry JSON: https://hirael.com/r/duration-input.json - [Number Field](https://hirael.com/components/inputs/number-field): Number input with step buttons, arrow-key and hold-to-repeat stepping, min and max, and Intl formatting for currency, percent or units. Submits the raw number. Markdown: https://hirael.com/r/number-field.md. Registry JSON: https://hirael.com/r/number-field.json - [Segmented Control](https://hirael.com/components/inputs/segmented-control): Single-choice control with a sliding thumb. Keyboard works like a radio group and mirrors in RTL. Two sizes, icons, disabled options and a full-width mode. Markdown: https://hirael.com/r/segmented-control.md. Registry JSON: https://hirael.com/r/segmented-control.json - [Autocomplete](https://hirael.com/components/inputs/autocomplete): A free-text input with suggestions from a local list or an async search, with optional inline completion, groups and recent entries. The value is whatever you type. Markdown: https://hirael.com/r/autocomplete.md. Registry JSON: https://hirael.com/r/autocomplete.json - [Checkbox Group](https://hirael.com/components/inputs/checkbox-group): A group of checkboxes with a select-all parent, nested groups, min and max limits, and an optional search that narrows the list. Markdown: https://hirael.com/r/checkbox-group.md. Registry JSON: https://hirael.com/r/checkbox-group.json - [Lazy Select](https://hirael.com/components/inputs/lazy-select): Autocomplete single-select that defers loading until open and pages through results on scroll. Debounced server-side search with a pluggable lazy paginator hook. Markdown: https://hirael.com/r/lazy-select.md. Registry JSON: https://hirael.com/r/lazy-select.json - [Password Input](https://hirael.com/components/inputs/password-input): Password field with a show/hide toggle and an optional pluggable strength meter. Markdown: https://hirael.com/r/password-input.md. Registry JSON: https://hirael.com/r/password-input.json - [Currency Input](https://hirael.com/components/inputs/currency-input): Locale-aware grouping with currency-symbol prefix and configurable decimal precision. Markdown: https://hirael.com/r/currency-input.md. Registry JSON: https://hirael.com/r/currency-input.json - [Phone Input](https://hirael.com/components/inputs/phone-input): Phone number field with a country dial-code picker and E.164 output from libphonenumber-js. Markdown: https://hirael.com/r/phone-input.md. Registry JSON: https://hirael.com/r/phone-input.json - [Rating](https://hirael.com/components/inputs/rating): Star rating with hover preview, half-star precision, read-only mode and sm / md / lg sizes. Markdown: https://hirael.com/r/rating.md. Registry JSON: https://hirael.com/r/rating.json - [Mention Input](https://hirael.com/components/inputs/mention-input): @-mention textarea with caret-anchored autocomplete, highlighted mention chips, async search and multiple trigger characters. Markdown: https://hirael.com/r/mention-input.md. Registry JSON: https://hirael.com/r/mention-input.json - [Rich Text Editor](https://hirael.com/components/inputs/rich-text-editor): Tiptap editor with a formatting toolbar (headings, lists, links, highlight, alignment) and a hover bubble to edit or unlink links inline. Outputs HTML, controlled or uncontrolled, with composable parts. Markdown: https://hirael.com/r/rich-text-editor.md. Registry JSON: https://hirael.com/r/rich-text-editor.json - [Inline Edit](https://hirael.com/components/inputs/inline-edit): Click-to-edit text with preview, validation, async submit and confirm/cancel controls. Input and textarea modes. Markdown: https://hirael.com/r/inline-edit.md. Registry JSON: https://hirael.com/r/inline-edit.json - [Signature Pad](https://hirael.com/components/inputs/signature-pad): Signature capture on signature_pad: smooth ink, per-stroke undo, ink that follows the theme, and PNG/JPEG export via ref. Markdown: https://hirael.com/r/signature-pad.md. Registry JSON: https://hirael.com/r/signature-pad.json - [YAML Editor](https://hirael.com/components/inputs/yaml-editor): Editable code field with dependency-free YAML syntax highlighting, a line-number gutter and tab-to-indent. Controlled or uncontrolled. Markdown: https://hirael.com/r/yaml-editor.md. Registry JSON: https://hirael.com/r/yaml-editor.json - [Cron Editor](https://hirael.com/components/inputs/cron-editor): Visual cron builder kept in sync with the raw expression. Presets, per-field modes, validation, a plain-English preview, and the next run times. Markdown: https://hirael.com/r/cron-editor.md. Registry JSON: https://hirael.com/r/cron-editor.json - [Country Select](https://hirael.com/components/inputs/country-select): Searchable country picker with flag emoji, pinned countries, optional dial codes, and single or multiple selection. Search by name or ISO code. Markdown: https://hirael.com/r/country-select.md. Registry JSON: https://hirael.com/r/country-select.json - [Address Input](https://hirael.com/components/inputs/address-input): Postal address field group that follows the selected country: which fields appear, the order they sit in, and what they are called. Markdown: https://hirael.com/r/address-input.md. Registry JSON: https://hirael.com/r/address-input.json - [Credit Card Input](https://hirael.com/components/inputs/credit-card-input): Card number, expiry, and CVC in one row with brand detection, per-brand grouping, Luhn and expiry validation, and auto-advance between fields. Markdown: https://hirael.com/r/credit-card-input.md. Registry JSON: https://hirael.com/r/credit-card-input.json - [Masked Input](https://hirael.com/components/inputs/masked-input): A shadcn Input that formats as you type, for IBANs, postcodes, dates, licence plates or your own pattern. Reports the masked text, the bare characters and whether the mask is complete. Ships presets for common formats. Markdown: https://hirael.com/r/masked-input.md. Registry JSON: https://hirael.com/r/masked-input.json - [Filter Builder](https://hirael.com/components/inputs/filter-builder): A Linear-style filter bar for lists and tables: pick a field, then an option, and get a chip with an operator menu and a value editor. Handles options, multi-select, text, number ranges and date ranges, keeps every filter in one array you can save to the URL, and ships applyFilters for client-side lists. Markdown: https://hirael.com/r/filter-builder.md. Registry JSON: https://hirael.com/r/filter-builder.json - [Year Picker](https://hirael.com/components/pickers/year-picker): Decade-grid year picker with keyboard nav, min/max bounds, single or range mode. Markdown: https://hirael.com/r/year-picker.md. Registry JSON: https://hirael.com/r/year-picker.json - [Month Picker](https://hirael.com/components/pickers/month-picker): 4×3 month grid with year stepper, keyboard nav, min/max bounds, single or range mode. Markdown: https://hirael.com/r/month-picker.md. Registry JSON: https://hirael.com/r/month-picker.json - [Time Picker](https://hirael.com/components/pickers/time-picker): Hour, minute and optional second scroll columns with 12/24h modes, step intervals and keyboard nav. Markdown: https://hirael.com/r/time-picker.md. Registry JSON: https://hirael.com/r/time-picker.json - [Color Picker](https://hirael.com/components/pickers/color-picker): Color picker on react-colorful with HEX / RGB / HSL inputs (colord), an eyedropper where supported, and recent swatches. Markdown: https://hirael.com/r/color-picker.md. Registry JSON: https://hirael.com/r/color-picker.json - [Date Picker](https://hirael.com/components/pickers/date-picker): Single-date picker: a trigger that formats the date, opening shadcn Calendar in a popover. Takes react-day-picker matchers for bounds and disabled days. Markdown: https://hirael.com/r/date-picker.md. Registry JSON: https://hirael.com/r/date-picker.json - [Date Range Picker](https://hirael.com/components/pickers/date-range-picker): Range picker on shadcn Calendar: preset column, one or two months, and react-day-picker matchers for bounds and disabled days. Markdown: https://hirael.com/r/date-range-picker.md. Registry JSON: https://hirael.com/r/date-range-picker.json - [Emoji Picker](https://hirael.com/components/pickers/emoji-picker): Emoji picker on frimousse: the full emoji set by category, search, skin tones, keyboard navigation and a hover preview. Markdown: https://hirael.com/r/emoji-picker.md. Registry JSON: https://hirael.com/r/emoji-picker.json - [Date Time Picker](https://hirael.com/components/pickers/date-time-picker): One field for a day and a time: a calendar beside hour and minute columns, with an AM/PM column on a 12-hour clock. Picking a day keeps the time, minutes snap to a step, and the value is a single Date. Markdown: https://hirael.com/r/date-time-picker.md. Registry JSON: https://hirael.com/r/date-time-picker.json - [Time Slot Picker](https://hirael.com/components/pickers/time-slot-picker): Pick a meeting time: a calendar where days without free slots are disabled, beside the times for the chosen day. Booked slots show crossed out, and arrow keys skip over them. Markdown: https://hirael.com/r/time-slot-picker.md. Registry JSON: https://hirael.com/r/time-slot-picker.json - [File Dropzone](https://hirael.com/components/files/file-dropzone): Drag-and-drop or click upload zone on react-dropzone, with a file list, type and size validation, and readable rejection messages. Markdown: https://hirael.com/r/file-dropzone.md. Registry JSON: https://hirael.com/r/file-dropzone.json - [Image Cropper](https://hirael.com/components/files/image-cropper): Pan-and-zoom image cropper on react-easy-crop: rect or round mask, fixed aspect, zoom slider and canvas export via ref. Markdown: https://hirael.com/r/image-cropper.md. Registry JSON: https://hirael.com/r/image-cropper.json - [Media Input](https://hirael.com/components/files/media-input): Local media file picker that previews via an object URL; empty-state prompt, replace and clear, size validation. Nothing leaves the browser. Markdown: https://hirael.com/r/media-input.md. Registry JSON: https://hirael.com/r/media-input.json - [Avatar Upload](https://hirael.com/components/files/avatar-upload): Click or drop an image, crop it to a circle or square with zoom, and preview the result. Initials fallback, size and type limits, remove control. Markdown: https://hirael.com/r/avatar-upload.md. Registry JSON: https://hirael.com/r/avatar-upload.json - [PDF Viewer](https://hirael.com/components/files/pdf-viewer): Shows a PDF in your page on react-pdf: page arrows and a page number field, zoom steps, fit to width and a download button. Text can be selected and links work, and the arrow keys turn pages. Markdown: https://hirael.com/r/pdf-viewer.md. Registry JSON: https://hirael.com/r/pdf-viewer.json - [File Card](https://hirael.com/components/files/file-card): A file as a row for lists or a tile for grids: an icon picked from the type, or an image preview, with the name, size and your own actions. FileIcon and fileKindOf are exported for your own layouts. Markdown: https://hirael.com/r/file-card.md. Registry JSON: https://hirael.com/r/file-card.json - [Upload Queue](https://hirael.com/components/files/upload-queue): Uploads files a few at a time with progress for each and overall, plus cancel, retry and clear finished. useUploadQueue takes your upload function, so it works with S3, a signed URL or your own API, and pairs with File Dropzone. Markdown: https://hirael.com/r/upload-queue.md. Registry JSON: https://hirael.com/r/upload-queue.json - [Timeline](https://hirael.com/components/data/timeline): Vertical event timeline with default or icon dots, tone variants and labelled time / title / description parts. Markdown: https://hirael.com/r/timeline.md. Registry JSON: https://hirael.com/r/timeline.json - [Avatar Stack](https://hirael.com/components/data/avatar-stack): Overlapping avatar group with size (sm/md/lg) and spacing (tight/normal/loose) variants, image or fallback support, numeric overflow chip, and asChild on items/overflow so each avatar can render as a link or button. Markdown: https://hirael.com/r/avatar-stack.md. Registry JSON: https://hirael.com/r/avatar-stack.json - [Tree View](https://hirael.com/components/data/tree-view): Collapsible nested tree for file explorers and hierarchical data, with auto folder/file icons, depth indentation, selection and keyboard focus. Markdown: https://hirael.com/r/tree-view.md. Registry JSON: https://hirael.com/r/tree-view.json - [Animated Number](https://hirael.com/components/data/animated-number): Count-up number that tweens to its target with easing, Intl formatting (currency, compact, percent), prefix/suffix and reduced-motion support. Markdown: https://hirael.com/r/animated-number.md. Registry JSON: https://hirael.com/r/animated-number.json - [Sortable](https://hirael.com/components/data/sortable): Drag-to-reorder list on dnd-kit: pointer and keyboard sorting, handle or whole-item dragging, and controls inside items that stay clickable. Markdown: https://hirael.com/r/sortable.md. Registry JSON: https://hirael.com/r/sortable.json - [Countdown Timer](https://hirael.com/components/data/countdown-timer): Count-down-to-date timer with boxed / inline / minimal variants, a useCountdown hook, digit animation and completion content. Markdown: https://hirael.com/r/countdown-timer.md. Registry JSON: https://hirael.com/r/countdown-timer.json - [Relative Time](https://hirael.com/components/data/relative-time): Live "3 minutes ago" label on a semantic