Component gallery

InlineEdit

Text that edits in place: hover reveals a pencil, click swaps to an input with the same box metrics, Enter or blur commits, Escape reverts. Empty or unchanged drafts never call back.

In a heading

The caller owns the typography; InlineEdit inherits it

Async commit

A promise-returning onCommit shows a pending spinner until it settles (800ms fake save)

Rejected commit keeps the draft

Values that don't start with CAT- are rejected; the input stays open so nothing is lost

Disabled

Reads as plain text: no pencil, no edit swap

Styling slots

Every className the component exposes, and what it reaches
className
the read/edit container, both states
inputClassName
the edit-mode input
@versable-git/ui · all states, both themes