MiHCM
v0.21.0preview release

Design it once.
Ship it anywhere.
Keep it consistent.

Universal primitives for React, Next.js, and React Native — same prop API on every platform. Tailwind 4 tokens, install or copy-paste per component, and Zod-typed descriptors for safe generative UI.

⌘KsearchWCAG 2.1 AA · release blockernpm provenance via OIDCMIT
touch the system
variant
size
↑ Real <Button> from @mihcm/uifull configurator →

Components

Every primitive ships a web and a native variant. One prop API, one accessibility contract, one set of tokens.

Button

stable

Primary action affordance. Seven variants, six sizes, icon slots, rounded or hard-edge shapes, and tokenized Tailwind class overrides. Universal across web and native.

Button · @mihcm/ui/Button

Link

stable

Semantic navigation and reference primitive. Seven variants, safe external-link defaults, and tokenized Tailwind overrides. Universal across web and native.

Link · @mihcm/ui/Link

Input

stable

Single-line text entry. Default + destructive variants, three sizes, optional leading/trailing icons. WCAG 2.1 AA out of the box (`aria-invalid`, `aria-required`, focus ring).

Input · @mihcm/ui/Input

Text

stable

Type primitive. Type scale, weight, and tone — semantic tokens only.

Text · @mihcm/ui/Text

Alert

stable

Inline message banner with `Alert`, `AlertTitle`, `AlertDescription` pieces. `role="alert"` for screen-reader announcements.

Alert, AlertTitle, AlertDescription · @mihcm/ui/Alert

Avatar

stable

User portrait. Compose `Avatar` + `AvatarImage` + `AvatarFallback` — fallback shows on image error and during load.

Avatar, AvatarImage, AvatarFallback · @mihcm/ui/Avatar

Badge

stable

Small status / labelling pill. Six variants spanning informational, semantic, and outline.

Badge · @mihcm/ui/Badge

Card

stable

Composable container surface. Six pieces (`Card`, `CardHeader`, `CardTitle`, `CardDescription`, `CardContent`, `CardFooter`) for predictable layout.

Card, CardHeader, CardTitle, CardContent · @mihcm/ui/Card

Checkbox

stable

Controlled checkbox with three states — `true`, `false`, `"indeterminate"`. `aria-checked="mixed"` for indeterminate.

Checkbox · @mihcm/ui/Checkbox

Label

stable

Form field label. Pairs with `Input`/`Switch`/`Checkbox` via `htmlFor`. Optional `required` suffix.

Label · @mihcm/ui/Label

Separator

stable

Visual divider. `decorative` (default) is hidden from screen readers; pass `decorative={false}` for semantic boundaries.

Separator · @mihcm/ui/Separator

Skeleton

stable

Pulsing placeholder for loading states. Always prefer skeletons over spinners to preserve layout.

Skeleton · @mihcm/ui/Skeleton

Switch

stable

Controlled on/off toggle. `role="switch"` with `aria-checked` driven by `checked`.

Switch · @mihcm/ui/Switch

StatusBadge

stable

Small inline icon + label chip used to mark something as "Module enabled" / "No permission" / "Active". Five built-in tones plus an optional leading icon.

StatusBadge · @mihcm/ui/StatusBadge

NotificationBadge

stable

Tiny counter dot that overlays a parent (the bell icon, an inbox icon, etc.). Renders inside any `position: relative` container; absolutely-positions in the chosen corner.

NotificationBadge · @mihcm/ui/NotificationBadge

OrgSelector

stable

Form-field-shaped picker for hierarchical org structures (departments, teams, business units, locations). Five variants (popover/inline/columns/drawer/command) and four selection modes (single/multi/cascade/include-descendants) compose freely. Full WAI-ARIA TreeView keyboard model, lazy loading, optional virtualization for large trees.

OrgSelector, type OrgNode · @mihcm/ui/OrgSelector

SectionHeader

stable

Two-line header (title + optional muted description) with an optional trailing action slot. Used inside cards and editors.

SectionHeader · @mihcm/ui/SectionHeader

StatCard

stable

Centered icon tile + big number + caption. The "Quick stats" row primitive — six tones to match the metric meaning.

StatCard · @mihcm/ui/StatCard

TitleBar

stable

Sticky page heading shown under the TopBar. `icon` + `supertitle` + `title` + optional `action` slot.

TitleBar · @mihcm/ui/TitleBar

Main Sidebar

stable

Figma-style main app sidebar. Compact 46px desktop rail, mobile bottom menu, expandable drilldown panel with icon, title, description, badges, nested levels, and custom panel slots. `IconSidebar` remains as a compatibility alias.

MainSidebar · @mihcm/ui/MainSidebar

TopBar

stable

Segmented app header with `Logo`, home/back parallelogram segments, notifications, profile, dividers, and utility actions. Universal across web and native with a simplified native bar.

TopBar, TopBarLogo, TopBarHomeButton, TopBarBackLink, TopBarNotification, TopBarProfile, TopBarDivider, TopBarAction · @mihcm/ui/TopBar

Logo

stable

Reusable MiHCM logo primitive. Built-in tokenized mark plus approved brand assets that scale through the shared size prop. Universal across web and native.

Logo · @mihcm/ui/Logo

PageShell

stable

Application layout scaffold: TopBar on top, Main Sidebar on desktop, mobile bottom-menu anchor, TitleBar + scrollable content on the right. Web only.

PageShell · @mihcm/ui/PageShell

SearchField

stable

Sugar wrapper around `Input` that ships the magnifier glyph, a clear button, and `role="search"`. Universal across web and native.

SearchField · @mihcm/ui/SearchField

AccessLevelGroup

stable

4-state segmented button: None / View / Edit / Full Access. Each option has its own brand color when active.

AccessLevelGroup, ACCESS_LEVELS · @mihcm/ui/AccessLevelGroup

CheckboxGrid

stable

Multi-select grid with summary, view tabs (All / Selected / Unselected), bulk select-all/clear, filter, and responsive grid. Web only.

CheckboxGrid · @mihcm/ui/CheckboxGrid

TransferList

stable

Dual-pane shuttle: unassigned on the left, assigned on the right, four move buttons in the middle. Per-side filter and multi-select. Web only.

TransferList · @mihcm/ui/TransferList

Table

stable

Semantic data table with 5 visual variants (default, bordered, striped, minimal, card). Variant context flows to all sub-components automatically.

Table, TableHeader, TableBody, TableRow, TableHead, TableCell · @mihcm/ui/Table

Dialog

stable

Accessible modal dialog built on native `<dialog>`. Composable: Dialog, DialogContent, DialogHeader, DialogBody, DialogFooter, DialogTitle, DialogDescription, DialogClose.

Dialog, DialogContent, DialogHeader, DialogBody, DialogFooter, DialogTitle, DialogDescription, DialogClose · @mihcm/ui/Dialog

Tabs

stable

Controlled tabbed interface with full keyboard navigation. Composable: Tabs, TabsList, TabsTrigger, TabsContent.

Tabs, TabsList, TabsTrigger, TabsContent · @mihcm/ui/Tabs

Toggle

stable

Pressable toggle between on/off states. Also exports ToggleGroup for single/multi-select groups.

Toggle, ToggleGroup, ToggleGroupItem · @mihcm/ui/Toggle

Tooltip

stable

Hover/focus tooltip (web) or long-press tooltip (native). Configurable side and delay.

Tooltip · @mihcm/ui/Tooltip

Popover

stable

Click-triggered floating panel anchored to a trigger. Composable: Popover, PopoverTrigger, PopoverContent.

Popover, PopoverTrigger, PopoverContent · @mihcm/ui/Popover

Popper

stable

Low-level Popper.js v2 positioning primitive for custom floating panels, virtual anchors, arrows, portals, and modifiers.

Popper, PopperTrigger, PopperContent · @mihcm/ui/Popper

RichTextEditor

stable

Lexical-powered rich text editor with 4 progressive toolbar variants. Web only.

RichTextEditor · @mihcm/ui/RichTextEditor

Textarea

stable

Multi-line text entry. Shares the `variant` + `invalid` model with Input.

Textarea · @mihcm/ui/Textarea

RadioGroup

stable

Mutually exclusive option selection. Fieldset with RadioGroupItem children sharing state via React Context.

RadioGroup, RadioGroupItem · @mihcm/ui/RadioGroup

Select

stable

Custom dropdown for single-value selection. Composable: Select, SelectTrigger, SelectContent, SelectItem, SelectGroup, SelectLabel, SelectSeparator.

Select, SelectTrigger, SelectContent, SelectItem · @mihcm/ui/Select

AlertDialog

stable

Non-dismissable modal requiring a user response. No backdrop dismiss, no Escape close. Composable sub-components mirror Dialog.

AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogAction, AlertDialogCancel · @mihcm/ui/AlertDialog

Progress

stable

Horizontal bar showing completion against a max value. Determinate, indeterminate, fixed-tone, or threshold-segmented.

Progress · @mihcm/ui/Progress

Breadcrumb

stable

Navigation trail showing page hierarchy. Composable: Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis.

Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator · @mihcm/ui/Breadcrumb

Sheet

stable

Slide-out panel from a screen edge. Composable: Sheet, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, SheetClose. Dismisses on backdrop click and Escape.

Sheet, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, SheetClose · @mihcm/ui/Sheet

Toast

stable

Brief non-blocking notification that auto-dismisses. Imperative `toast()` API with semantic variants, appearance styles, and configurable duration.

ToastProvider, toast · @mihcm/ui/Toast

DropdownMenu

stable

Action menu triggered by a button click. Composable: DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut.

DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem · @mihcm/ui/DropdownMenu

Pagination

stable

Page navigation with numbered links and previous/next buttons. Composable: Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationPrevious, PaginationNext, PaginationEllipsis.

Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationPrevious, PaginationNext, PaginationEllipsis · @mihcm/ui/Pagination

Accordion

stable

Vertically stacked collapsible sections. Supports single (one open) and multiple (any number open) modes with animated height transitions.

Accordion, AccordionItem, AccordionTrigger, AccordionContent · @mihcm/ui/Accordion

Tag

stable

Label chip with optional remove action. Like Badge but interactive — can be removed.

Tag · @mihcm/ui/Tag

Banner

stable

Full-width message strip at top of page or section. Optionally dismissible.

Banner · @mihcm/ui/Banner

EmptyState

stable

Centered placeholder for empty sections — optional icon, title, description, and action button.

EmptyState · @mihcm/ui/EmptyState

AvatarGroup

stable

Stacked, overlapping row of Avatar components with an overflow "+N" count. The `size` prop forwards to children. `max` controls the visible limit.

AvatarGroup · @mihcm/ui/AvatarGroup

DataTable

stable

Full-featured data table powered by TanStack Table v8. Sorting, filtering, pagination, selection, column visibility, expandable rows, column resize, column/row pinning, grouping, and faceted filtering — all via boolean props. 5 visual variants.

DataTable, DataTableColumnHeader, createColumnHelper · @mihcm/ui/DataTable

BarList

stable

Compact ranked-value list with tokenized bars, optional row links, icons, value formatting, and motion-backed width animation.

BarList · @mihcm/ui/BarList

CategoryBar

stable

Segmented distribution bar for allocation, status, and risk summaries with optional legend and tokenized segment classes.

CategoryBar · @mihcm/ui/CategoryBar

Dropzone

stable

File drop and browse area powered by react-dropzone. Exposes accepted and rejected files without reading file contents.

Dropzone · @mihcm/ui/Dropzone

ProgressCircle

stable

Circular progress indicator for KPI cards and compact status summaries with semantic tones and value formatting.

ProgressCircle · @mihcm/ui/ProgressCircle

RadioCardGroup

stable

Card-style single-selection control built on RadioGroup semantics for plans, permissions, and setup choices.

RadioCardGroup · @mihcm/ui/RadioCardGroup

SortableList

stable

Reorderable list powered by dnd-kit sortable primitives with pointer and keyboard sensors plus a renderItem slot for rich rows.

SortableList · @mihcm/ui/SortableList

SparkChart

stable

Small D3-backed trend chart for dense KPI rows, table cells, and dashboard cards.

SparkChart · @mihcm/ui/SparkChart

TabNavigation

stable

Link-based tab navigation for routed sections. Use Tabs for local state and TabNavigation when each item is a URL.

TabNavigation · @mihcm/ui/TabNavigation

Tracker

stable

Dense sequence of status segments for uptime, workflow coverage, and timeline availability.

Tracker · @mihcm/ui/Tracker

Form

stable

Full-featured form system integrated with TanStack React Form v1. Field wrappers include input, search, textarea, checkbox, switch, select, combobox, radio, radio cards, date, date range, checkbox grid, dropzone, field arrays, subscriptions, effects, and actions.

useForm, FormInput, FormSelect, FormActions · @mihcm/ui/Form

Calendar

stable

Date grid powered by @daypicker/react v10. Forwards the full DayPicker prop surface with MiHCM tokenized geometry, focus, and selection styles.

Calendar · @mihcm/ui/Calendar

Collapsible

stable

Simple expand/collapse panel powered by Radix. Single toggle — no item/group semantics like Accordion.

Collapsible, CollapsibleTrigger, CollapsibleContent · @mihcm/ui/Collapsible

Command

stable

Command palette (⌘K) powered by cmdk. Composable search + item groups + keyboard navigation.

Command, CommandInput, CommandList, CommandItem, CommandGroup · @mihcm/ui/Command

DatePicker

stable

DayPicker v10-backed trigger + popover for single dates, ranges, date-time, and time-only fields. Calendar and DatePicker share one date engine.

DatePicker · @mihcm/ui/DatePicker

HoverCard

stable

Preview card that appears on hover. Ideal for user profile previews and link details. Powered by Radix.

HoverCard, HoverCardTrigger, HoverCardContent · @mihcm/ui/HoverCard

ScrollArea

stable

Custom-styled scrollable container with thin translucent scrollbars. Powered by Radix.

ScrollArea · @mihcm/ui/ScrollArea

Slider

stable

Range input with single or dual thumbs. Three sizes. Powered by Radix Slider.

Slider · @mihcm/ui/Slider

AspectRatio

stable

Locks a container to a given width-to-height ratio. Uses CSS aspect-ratio on web and RN aspectRatio style on native.

AspectRatio · @mihcm/ui/AspectRatio

ContextMenu

stable

Right-click context menu powered by Radix. Sub-menus, checkboxes, radio items, keyboard shortcuts.

ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem · @mihcm/ui/ContextMenu

InputOTP

stable

One-time password / verification code input with individual character slots. Powered by input-otp.

InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator · @mihcm/ui/InputOTP

Drawer

stable

Mobile-friendly bottom sheet / drawer with swipe-to-dismiss. Touch-optimised with spring physics via vaul.

Drawer, DrawerTrigger, DrawerContent, DrawerHeader, DrawerTitle, DrawerDescription, DrawerFooter, DrawerClose · @mihcm/ui/Drawer

Combobox

stable

Autocomplete search input combining a text field with a filterable dropdown list. Ideal for large option sets.

Combobox · @mihcm/ui/Combobox

Resizable

stable

Resizable panel layout with draggable dividers. Horizontal/vertical split panes for editors, dashboards, admin layouts.

ResizablePanelGroup, ResizablePanel, ResizableHandle · @mihcm/ui/Resizable

NavigationMenu

stable

Top-level site navigation bar with dropdown mega-menus. Animated viewport and indicator via Radix.

NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuTrigger, NavigationMenuContent, NavigationMenuLink · @mihcm/ui/NavigationMenu

Carousel

stable

Composable carousel powered by Embla. Supports horizontal/vertical orientation, loop, and prev/next controls.

Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext · @mihcm/ui/Carousel

Chart

stable

Theme-aware Recharts wrapper. ChartContainer injects CSS custom properties from a ChartConfig while preserving the full Recharts composition and prop surface.

ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, type ChartConfig · @mihcm/ui/Chart

Menubar

stable

Horizontal menu bar with dropdown menus, powered by Radix. Supports density, surfaces, alignment, dropdown sizing, portal behavior, animation, item tones, shortcuts, checkbox/radio items, and submenus.

Menubar, MenubarMenu, MenubarTrigger, MenubarContent, MenubarItem, MenubarSeparator, MenubarShortcut · @mihcm/ui/Menubar

Sidebar

stable

Composable, collapsible sidebar with mobile sheet support, keyboard shortcuts (Ctrl/Cmd+B), and cookie persistence.

SidebarProvider, Sidebar, SidebarContent, SidebarGroup, SidebarGroupLabel, SidebarGroupContent, SidebarMenu, SidebarMenuItem, SidebarMenuButton, SidebarTrigger · @mihcm/ui/Sidebar