MiHCM

Component Expandability Roadmap

This roadmap defines how MiHCM components should become more useful without turning the API into unbounded prop sprawl.

The rule is simple: expand through composition first, add props only when repeated product workflows prove the need.

Research baseline

SystemWhat MiHCM should adopt
Radix PrimitivesAnatomy-first composition, controlled and uncontrolled state, asChild, accessibility behavior.
Chakra recipesTyped variants, sizes, compound variants, and component defaults.
MUI APIsPractical action props such as loading, icons, full-width, polymorphic roots, and slots.
Ant DesignIntent-led guidance for action hierarchy, danger, ghost, text, link, and disabled states.
MantineConsistent variant/size naming and application-level defaults.
Shopify PolarisPatterns, tokens, components, icons, and product guidance together.
shadcn/uiPrimitives plus examples and blocks as the scaling layer.

Classification

Every enhancement starts here.

TypeUse whenOutput
Prop expansionExisting composition cannot express a repeated product need.Source change, tests, Storybook, docs, changeset.
Slot expansionConsumers need to replace icons, actions, metadata, headers, footers, triggers, or empty states.Named slot or composable part.
Recipe expansionExisting primitives can already build the workflow.Docs example, Storybook story, MCP recipe.
Metadata expansionAgents need better guidance or validation.MCP recipe, AI-UI descriptor, anti-pattern rule.
No API changeExisting API is sufficient.Docs rationale only.

Shared prop language

PropMeaning
variantStructural style such as default, outline, ghost, link, card, minimal.
toneSemantic intent such as primary, accent, success, warning, danger, neutral, info.
sizeControl dimensions and touch target. Use sm, md, lg; reserve icon for icon-only actions.
densityInformation density: comfortable, compact, dense.
orientationLayout direction: horizontal or vertical.
loadingPending action state. Keep existing isLoading where already public.
invalidValidation failure state for controls.
errorError content for field abstractions.
required / optionalForm semantics and visible label affordance.
fullWidthRoot stretches to container width.
asChildWeb composition where child becomes rendered element.
leftSection / rightSectionControl adornment slots.
action / secondaryActionCommand slots for feedback/content surfaces.

Audit matrix

BatchComponentsPrimary gap
Form and dataForm, DataTable, Table, CheckboxGrid, TransferList, SearchField, CommandWorkflow depth, density, toolbar, empty/error/loading states, bulk actions.
Inputs and controlsButton, Input, Textarea, Select, Combobox, RadioGroup, Switch, Slider, Toggle, DatePicker, Calendar, InputOTPAdornments, validation, helper text, loading, clearable, range/time/date use cases.
Navigation and layoutSidebar, PageShell, TopBar, IconSidebar, NavigationMenu, Breadcrumb, Pagination, TabsComplete app shells, responsive behavior, overflow, active state.
Overlay and menuDialog, AlertDialog, Sheet, Drawer, Popover, HoverCard, DropdownMenu, ContextMenu, Menubar, Tooltip, ToastConfirmation, settings, destructive action, keyboard examples, async states.
Feedback and contentAlert, Banner, EmptyState, Progress, Skeleton, StatusBadge, NotificationBadge, StatCard, SectionHeader, TitleBarRecovery actions, priority, dismissibility, trend/meta, skeleton sets.
Media and structureAvatar, AvatarGroup, Badge, Tag, Card, Accordion, Collapsible, Carousel, ScrollArea, Resizable, Separator, AspectRatio, Text, LabelDense team/admin surfaces, truncation, overflow, required/optional labels.
Data visualizationChartMore chart families, accessible summaries, dark-mode-safe palettes, empty/error/loading states.

Per-component classification

ComponentClassificationPlanned expansion
AccessLevelGroupProp + recipePermission matrix, disabled reasons, audit trail copy, compact density.
AccordionRecipeFAQ, settings groups, policy sections, long content, disabled items.
AlertSlot + recipeActions, page outage, inline field alert, success save, destructive warning.
AlertDialogSlot + recipeDestructive confirmation, typed confirmation, async loading, focus return.
AspectRatioRecipeMedia cards, previews, chart placeholders, video fallback.
AvatarProp + recipeShape/status audit, image failure, initials fallback, profile patterns.
AvatarGroupProp + recipeOverflow label, profile preview pairing, dense team rows.
BadgeProp + recipeCounts, status, categories, removable taxonomy.
BannerSlot + recipePriority, sticky page banner, persistence, action slot.
BreadcrumbRecipeCollapsed paths, entity detail trails, mobile overflow.
ButtonProp + recipeLoading position, left/right sections, icon-only tooltip, split-button recipe.
CalendarRecipeAvailability, blocked dates, payroll period, range, timezone examples.
CardSlot + recipeClickable, KPI, entity summary, media, nested action, skeleton states.
CarouselRecipeContent rail, insight rail, keyboard, empty/single/many cases.
ChartRecipe + MCPAccessible summaries, semantic palettes, sparkline, stacked, dashboard recipes.
CheckboxProp + recipeHelper/error pairing, indeterminate group, dense checklist.
CheckboxGridProp + recipeSearch, loading, empty, disabled reason, grouped permissions.
CollapsibleRecipeAdvanced filters, progressive details, reduced-motion guidance.
ComboboxProp + recipeAsync loading, create option, grouped options, empty state.
CommandSlot + recipeApp command palette, grouped results, recent searches, shortcuts.
ContextMenuRecipeRow menu, file menu, disabled explanations, submenus.
DataTableProp + slot + recipeDensity, toolbar, bulk actions, row actions, empty/loading states.
DatePickerRecipeScheduling, payroll range, time selection, disabled dates.
DialogSlot + recipeForm dialog, async save, validation summary, large content.
DrawerSlot + recipeEntity details, mobile filters, activity timeline, nested forms.
DropdownMenuRecipeUser menu, row actions, settings menu, destructive item, shortcuts.
EmptyStateProp + recipeNo permission, no results, onboarding, error recovery.
FormProp + recipeSettings, multi-step, field arrays, async validation, error summary.
HoverCardRecipeEmployee preview, policy preview, accessibility fallback.
IconSidebarSlot + recipeApp rail, badge counts, grouped nav, mobile bottom nav.
InputProp + recipeHelper/error, prefix/suffix, clearable, password toggle, character count.
InputOTPRecipeVerification, resend timer, error recovery, grouped slots.
LabelProp + recipeRequired/optional/description pairings, hidden labels.
MenubarRecipeDesktop app menu, editor menu, keyboard map.
NavigationMenuRecipeMega-menu, role-specific nav, resource center, mobile fallback.
NotificationBadgeProp + recipeOverflow count, live region, nav/avatar usage.
PageShellSlot + recipeAdmin shell, settings shell, data page, mobile layout.
PaginationRecipeCursor/numbered pagination, compact mobile, table integration.
PopoverSlot + recipeInline help, quick edit, filter popover, focus behavior.
ProgressProp + recipeStatus text, segmented progress, upload/task states.
RadioGroupProp + recipeRich option cards, disabled reasons, plan selection.
ResizableRecipeSplit editor, analytics workspace, constraints, persistence.
RichTextEditorProp + recipeToolbar presets, read-only review, validation, sanitized output.
ScrollAreaRecipeDense side panels, command results, scroll shadows.
SearchFieldProp + recipeLoading, result count, clearable behavior, filter chips.
SectionHeaderSlot + recipeMetadata, actions, tabs pairing, dense sections.
SelectProp + recipeGrouped options, helper/error, disabled reasons, long labels.
SeparatorRecipeSemantic breaks, menu separators, toolbar separators.
SheetSlot + recipeSettings panel, filters, unsaved changes, async save.
SidebarSlot + recipeApp nav, team switcher, role sections, collapsed tooltips.
SkeletonProp + recipeTable/card/form/page skeleton sets, reduced motion.
SliderProp + recipeOutput label, marks, min/max/step, filter preferences.
StatCardProp + recipeTrend, delta, meta, loading, KPI dashboards.
StatusBadgeProp + recipeStatus taxonomy, SLA states, table usage.
SwitchProp + recipeSetting rows, helper/error, async toggle, disabled reasons.
TableRecipeDense, comparison, invoice, audit log, responsive/card variants.
TabsProp + recipeBadges, overflow, vertical tabs, URL-driven sections.
TagProp + recipeRemovable filters, selected tags, overflow wrapping.
TextProp + recipeTruncation, line clamp, hierarchy, data-heavy typography.
TextareaProp + recipeCharacter count, autosize recipe, helper/error, resize constraints.
TitleBarSlot + recipeBreadcrumbs/actions/meta, entity title, workflow status.
ToastSlot + recipePromise/async toast, undo action, queue behavior.
ToggleRecipeToolbar groups, filter chips, formatting controls.
TooltipRecipeIcon-only labels, disabled wrappers, keyboard/focus examples.
TopBarSlot + recipeGlobal search, tenant switcher, notifications, profile menu.
TransferListProp + recipeLoading/empty/disabled reason, grouped transfer, keyboard selection.

Implementation order

  1. Form and data.
  2. Inputs and controls.
  3. Navigation and layout.
  4. Overlay and menu.
  5. Feedback, content, media, and structure.
  6. Chart and data visualization.
  7. MCP and AI-UI metadata.

Each batch must update examples, Storybook when visual QA matters, wiki pages, MCP recipes where useful, and changesets when public package APIs change.

Security and accessibility gates

  • Do not add props that allow raw colour values or arbitrary style objects.
  • Keep semantic tokens as the styling boundary.
  • Preserve WCAG 2.1 AA contrast, keyboard operation, focus visibility, and screen reader labels.
  • Do not expose source code from hosted MCP recipe tools.
  • Do not render AI-generated component descriptors without Zod validation.
  • Validate Next.js Server Component examples for serializable props.

Done criteria

A batch is complete when:

  • every component has an extension classification;
  • new public props have tests, docs, and Storybook coverage where useful;
  • examples include basic, complex workflow, and adversarial state;
  • light and dark mode are checked;
  • native parity is preserved or documented;
  • docs and package verification pass;
  • high/critical audit findings are zero.

Full runbook: Component expandability roadmap.