Use CodeMirror for inline commit-description editing
Add an InlineEditor wrapper around CodeMirror 6 with two visual
variants:
- transparent: looks like plain text, border on focus, saves on blur
if content changed
- bordered: autoFocus + select-all on mount, modal-style border, used
for compact pop-up editing
Both bind Cmd/Ctrl+Enter to save and Escape to revert+blur. The editor
stops keydown bubbling so the global keymap doesn't fire while the user
is typing.
Used in two places:
- RevisionRow's inline edit mode (replaces the textarea)
- RevisionHeader in the diff panel (replaces the chevron-expand readonly
block; the field is now always editable except for immutable
revisions)
Plumb onDescribe through DiffPanel/PrerenderedDiffPanel so the header
can write back. RevisionRow keeps a lastSavedDescRef so the saved text
shows immediately, ahead of the collection update round-trip.
useKeyboard's input-focus guard now also skips contenteditable elements
(CodeMirror uses contenteditable), factored into a shared
isEditableElementFocused() helper.
Adds @codemirror/{commands,language,state,view} and codemirror.