GPUI is a great example of the insane amount of boilerplate needed to create a component when you don't have inheritance.
My guess is that people don't create a lot of individual components in this framework to handle different business cases, and instead overload a single text input component with a million different options. I would hate to untangle a mature app written under those conditions.