Optionaleditable?: IEditable<() => ICell, string, any> | nullThe shared edit model, provided by the host — the anchor + current edit this input participates in.
OptionalenterKeyHint?: React.TextareaHTMLAttributes<HTMLTextAreaElement>["enterKeyHint"]The action label of the virtual keyboard's Enter key.
OptionalhintPlacement?: "below" | "above"Which side of the caret the function hint opens on. A host at the bottom of the screen (the
phone's formula bar) asks for 'above', where the room is.
OptionalinputMode?: React.TextareaHTMLAttributes<HTMLTextAreaElement>["inputMode"]The virtual keyboard a touch host asks for ('decimal' for a number pad). Applied to the
textarea; a change takes effect on the next focus on some platforms.
OptionallineHeight?: numberThe line rhythm, in logical px, for a box-less host (one that passes no cellSize). A placed
host takes it from the cell's own resolved placement instead, so this is ignored there.
A box-less host wraps (see the wrap rules on cellWrap), so its box height is now a count of LINES —
the formula bar snaps its resize to a line and reports how many are visible. Left to the browser's
normal, the rendered line and the host's idea of one differ by a few px and every expanded row shows
a sliver of the next; supplying it makes the two exact.
OptionalmaxContentWidth?: numberThe widest the editor box may become, in logical px — how much room is left on screen from the cell's left edge. Supplied by the host, which is the only side that knows it (the layer owns the pane and the surface); today that's the grid surface, and it becomes the browser width if the editor is ever portaled out. Absent for a box-less host (the formula bar), which simply breaks at its own width.
Only a FORMULA uses it, and only as a last resort — see the wrap rules on formulaBreak.
Optionalplaceholder?: string | nullGreyed ghost text shown when the input renders EMPTY — Excel's spilled-into-cell formula bar, which shows the spilling anchor's formula in grey (see placeholderFromCell).
A host concern, deliberately not derived here: only the formula bar wants it. The in-grid editor
(EditorLayer) must NOT set it — a ghost formula painted over a spilled cell would sit on top of the
grid's own rendered spill value. So this stays a prop the formula bar opts into, rather than something
the input infers from the cell.
SheetCellInput's props: the grid-react editor props plus the shared edit model. The host owns the editor's command scope and its edit-session command contribution (
contributeEditorCommands); the input only renders + marks itself the session's active editor on focus.editableabsent ⇒ a bare grid.