Reusable React component that takes an interchangeable set of properties and outputs supercharged input elements of different kinds