design_system/components/data/editable_table_models library

Classes

CellRef
An immutable cell address (row + column index) — the controller's cursor.
EditableCellData
Everything a EditableCellBuilder needs to paint a custom, read-only cell: the value, its address, the whole row (for cross-column rendering), the owning column, and the cell's current selected / invalid state. A requestEdit callback lets a custom cell open the normal editor on tap.
EditableColumn
The schema for a single column. This is the customisation surface: a host builds a List<EditableColumn> to define its table.
EditableTableFormat
Value-formatting helpers shared by the controller and the view.

Enums

CellAlign
Horizontal alignment of a column's content.
EditableColumnType
How a column's cells edit & render. The concrete column subclasses in editable_table_columns.dart (NumericColumn, DateColumn, …) each set the right kind; you rarely pass type by hand.
SortDir
Sort direction for a column header. none means unsorted.

Typedefs

EditableCellBuilder = Widget Function(BuildContext context, EditableCellData cell)
Builds the read-only content of a cell — a host hook for chips, badges, progress bars, icons, links… Returned widget replaces the default text. The cell stays selectable/editable; this only changes how it looks when not being edited.
EditableCellValidator = String? Function(String value, EditableRow row)
Row-aware validator for a column. Receives the cell value and the full row it belongs to (so it can validate against sibling cells), and returns an error message, or null when valid.
EditableRow = Map<String, String>
One row of data — a column-key → cell-value map. Values are kept as strings (what the user types); the host parses on read. Kept deliberately generic so the widget carries no business-model coupling.