Some ideas I had about composable/reusable components

Here is a related discussion with implementation using pure components: