Switch element exposes input properties as INPUT.() -> Unit, while TextField exposes them as InputElementBuilder<InputProps>.() -> Unit. The resulting code looks different for different elements which does not look good. It seems like Switch way is preferable.
Actually, these two lines:
var Tag.InputProps: RProps? by materialProps
var Tag.inputProps: RProps? by materialProps
look really uncomfortable.