The range bounds relative to the current viewport and zoom.
The cell coords that is being rendered.
The layer's write context, one for every cell of the layer: guarded writes
(setCellValue(cell, value)) for a renderer that writes from its own pointer handlers, such
as a slider's drag. A press and a key write through the entry instead.
The control the renderer draws for, when it was chosen by the cell's control; null when it
was chosen by the value's rich data type.
Optionaldata-Absolute cell-coordinate stamp ("rowIndex:colIndex"), provided by the layer.
A renderer that spreads its rest props onto its root element carries this automatically; a
custom renderer must place it on its root itself. It is the hook the layer's live suppression
rule targets (see CellLayerProps.suppressCell) — per-coordinate CSS over immutable cached
tiles, so transient state (an open editor) never invalidates the tile cache. Coordinates are
SHEET-absolute (never tile- or pane-relative): a cell rendered in more than one pane (a merge
spanning a freeze line) matches the one selector in every instance.
The default text renderer, bound to this layer's theme, Normal style and view flags. For a
renderer that decorates the text rather than replacing it: <Default {...props}>{badge}</Default>.
Spread onto the element that takes the pointer: the box of a checkbox, a button, the track of a slider. It marks the element, nothing more. A plain press on a marked element selects the cell and then reaches the element; the cell layer runs the entry's CellContentEntry.onPress for it and stops the press, and keeps a double-click on it from opening the editor. For a drag or hover add your own handlers on the element (capture the pointer on it for a drag); a handler that stops the press keeps the layer out of it.
OptionalrangeThe RangeCoords that is being rendered.
A value to render.
OptionalzoomThe zoom CellRendererProps.bounds were measured at.
A renderer is handed the zoom, never the pane it came from: everything it needs to draw one cell
is data (the value, the bounds, the scale), so it stays a pure function of its props and can be
rendered anywhere a caller can supply bounds — a preview, a tooltip, a cell drawn outside its own
column. A renderer that genuinely needs the live view (hover, scroll) reads it from context with
useGridPane.
The bounds already have the zoom applied; this is for what CSS pixels do not carry — an unscaled inset, a glyph size, a stroke width the renderer picks itself.
What a cell content renderer is given: the cell layer's props for the cell, the layer's write context, the props that make an element interactive, and the default text renderer.
Remarks
A renderer is a pure function of these props: it is rendered inside the cell layer's cached tiles and calls no hook.