Functional Wrappers

Invisible behavioral layers that separate visuals from interaction logic. Wrappers add hover states, drag-and-drop, selection, dismissal, or expand/collapse behavior without rendering any visible UI.

Key Characteristics

  • No visual UI — purely behavioral; wrappers render no visible elements of their own
  • Separation of concerns — interaction logic stays isolated from visual components
  • Composable — wrap any Preset or Composite to add behavior
  • Five wrappers — Actionable, Sortable, Selectable, Dismissible, Expandable

Wrappers

ActionableAdds hover/focus/click handlers, cursor, and focus ring to any child component
SortableDrag-and-drop sorting (requires @dnd-kit/sortable peer dependency)
SelectableMulti-selection logic with keyboard support (Shift+click, Ctrl+click)
DismissibleEscape key and outside-click dismissal behavior for overlays and popups
ExpandableExpand/collapse with smooth height animation and accessible aria attributes

How It Fits

Wrappers are cross-cutting behavioral additions — they can wrap anything in the consumer catalog. Need a Card that dismisses on outside click? Wrap it in Dismissible. Need a list of chips that supports drag reordering? Wrap each in Sortable. Unlike Context Containers (which affect styling), Wrappers affect behavior. See the Architecture chart for the complete tier map.