The Table component currently allows for cell-level customization through the use of Vue.js scoped slots. This allows the user to override the content of all cells in a specific table column. From the Table docs:
You can customize the contents of a cell by using the item-[ columnId ] slots. For example, for a column with the id time, there is a slot called item-time. This slot comes with 2 bindings:
`item`: the cell content `row`: data for the entire row
We should explore adding support for row-level customization as well, using a similar API (where the row data would be available as a scoped slot binding).
Here are some common use-cases that row-level customization would allow us to support:
- Making an entire table row into a link
- Color-coding an entire row background based on some condition
I'm sure there are others, but these are two features that came up in the course of working on T376932.