The default implementation of the render method in CompositeCell wraps each element in a span. You could do the same and set the display style property based on the state, and then you don't need to extend SelectionCell. While it isn't required for very simple Cells (that only render a single element), it makes sense to wrap each Cell in its own parent element.
As far as the SelectionCell, we should have a version that is genericized and just use the selected index to map to the generic value. In general, we probably also need an "EditCell", which is basically a two state cell that can enter and exit edit mode.