DievasTextArea and DievasTextInput share DievasTextInputThemeData for all styling. The theme data class has three significant gaps that prevent brand-level customization:
1. No copyWithEvery constructor parameter is required and there is no copyWith method.
Overriding a single value (e.g. just borderColorFocused) requires reconstructing the entire 19 field object.
This makes it effectively impossible to do partial theme overrides without duplicating the full default values.
2. No per instance stylingDievasTextArea is a StatelessWidget with zero style/decoration parameters: no style, no decoration, no focusBorderColor, nothing.
All styling is locked to the global DievasComponentThemeData.textInput.
There is no way to give one text area a different focus colour than another without creating a separate DievasTheme subtree.
3. (If Necessary )No warning stateThe border colour set supports three states: default (borderColor), focused (borderColorFocused), and error (borderColorError).
There is no borderColorWarning parameter, no warningText parameter (symmetric to errorText), and no warning state in the widget implementation. A warning state (non-blocking validation feedback) is a common input pattern not covered here.
Suggested changes:
- Add copyWith to DievasTextInputThemeData
- Add borderColorWarning to DievasTextInputThemeData + InputColours + component mapper
- Add warningText parameter to DievasTextArea / DievasTextInput (behaves like errorText but uses warning colour)
- Consider adding direct style/decoration override params to the widget constructors for per instance flexibility
DievasTextArea and DievasTextInput share DievasTextInputThemeData for all styling. The theme data class has three significant gaps that prevent brand-level customization:
1. No copyWithEvery constructor parameter is required and there is no copyWith method.
Overriding a single value (e.g. just borderColorFocused) requires reconstructing the entire 19 field object.
This makes it effectively impossible to do partial theme overrides without duplicating the full default values.
2. No per instance stylingDievasTextArea is a StatelessWidget with zero style/decoration parameters: no style, no decoration, no focusBorderColor, nothing.
All styling is locked to the global DievasComponentThemeData.textInput.
There is no way to give one text area a different focus colour than another without creating a separate DievasTheme subtree.
3. (If Necessary )No warning stateThe border colour set supports three states: default (borderColor), focused (borderColorFocused), and error (borderColorError).
There is no borderColorWarning parameter, no warningText parameter (symmetric to errorText), and no warning state in the widget implementation. A warning state (non-blocking validation feedback) is a common input pattern not covered here.
Suggested changes: