Problem
The FormControlMixin currently exposes the setValue method as a public method on elements that use the mixin. When using the FormControlMixin to build a published component for other teams to use, this can lead to confusion when consuming teams use TypeScript. Since setValue is public it appears as though it is intended for direct use by said consuming teams.
Impact
This misunderstanding may cause improper usage patterns and bypasses the intended abstractions we've designed for managing state and interactions within form control elements.
Proposed Solution
Changing setValue from a public method to a protected method would be ideal on our end. However, I understand this might not be ideal on your end. We're open to other potential solutions as well.