Skip to content

Development#132

Merged
ManuelRomeroA merged 4 commits into
mainfrom
development
Apr 7, 2026
Merged

Development#132
ManuelRomeroA merged 4 commits into
mainfrom
development

Conversation

@ManuelRomeroA
Copy link
Copy Markdown
Contributor

This pull request updates the documentation and changelog for the ThemedNumberInput and ThemedDurationInput Flutter widgets, clarifying their behavior, edge cases, and usage patterns. It also documents several recent bug fixes and improvements, including memory management, input validation, cursor handling, and enhanced visual feedback for step buttons. The changes provide comprehensive examples, testing guidance, and detailed explanations of widget parameters and behaviors.

Documentation and Behavior Clarifications:

  • Expanded and clarified the documentation for ThemedNumberInput and ThemedDurationInput in .claude-plugin/skills/number-duration-inputs/SKILL.md, including:
    • Clearer explanations of button disabling at min/max, cursor behavior after step actions, and the distinction between button gating and keyboard input for min/max. [1] [2] [3] [4] [5]
    • Added a new "Gotchas & Edge Cases" section covering input parsing, cursor movement, focus node responsibility, and decimal separator effects.
    • Improved parameter descriptions and added more usage examples and testing patterns. [1] [2] [3] [4] [5] [6]

Bug Fixes and Improvements (as documented in CHANGELOG.md):

  • Fixed ThemedNumberInput memory leak by properly disposing of its TextEditingController.
  • Fixed inputRegExp parameter being ignored; custom regex is now correctly applied to input filtering.
  • Fixed unsafe onChanged calls for unparseable input; such input is now ignored, preserving the last valid value.
  • Fixed cursor position after step button tap; cursor now moves to the end of the number as expected.
  • Improved step button UX: buttons show 0.4 opacity and ignore taps at boundaries, with new prefixIconDisabled/suffixIconDisabled support in ThemedTextInput.

Testing and Examples:

  • Added comprehensive widget tests and example patterns for ThemedNumberInput, covering rendering, keyboard and button interactions, cursor behavior, locale formatting, lifecycle, and edge cases. [1] [2]

Version and Example Updates:

  • Bumped plugin version to 7.5.26 in .claude-plugin/plugin.json.
  • Updated example view state in example/lib/views/inputs/src/text.dart to include new fields for testing.
  • Updated the changelog to reflect all fixes, improvements, and new documentation.

… tests

- Fix memory leak: dispose TextEditingController in dispose()
- Fix inputRegExp silently ignored: now applied to FilteringTextInputFormatter
- Fix unsafe onChanged when tryParse returns null: unparseable input silently ignored
- Fix cursor position after step button: moves to end when digit count changes (9→10, 99→100)
- Fix doc comments misalignment on placeholder/onChanged/value/disabled fields
- Improve _regex: static final instead of getter (avoids allocation per access)
- Improve step button UX: 0.4 opacity + tap suppressed at min/max boundaries
- Add prefixIconDisabled/suffixIconDisabled to ThemedTextInput for disabled icon states
- Add comprehensive widget tests for ThemedNumberInput (31 tests, all regression-verified)
- Update ThemedNumberInput example showcase with full feature coverage
- Bump version 7.5.24 → 7.5.25
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 7, 2026

📋 Changelog Summary

This PR includes the following changes:

✨ Features

  • update version to 7.5.26 in plugin.json (8c745af by Manuel romero)

🐛 Bug Fixes

  • refactor variable naming in _buildReactive for clarity (2d592bd by Manuel romero)
  • fix ThemedNumberInput bugs, add step UX improvements and tests (73c1ad9 by Manuel romero)

📊 Diff Stats

Metric Count
📄 Files changed 9
🟢 Insertions $\color{green}\textsf{+998}$
🔴 Deletions $\color{red}\textsf{-101}$

🤖 Auto-generated by changelog workflow

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 7, 2026

📊 Test Coverage Report

🎯 Dart/Flutter

Metric Value
Coverage 15.8%
Lines covered 10850 / 127
Lines missing -10723

🤖 Generated by coverage workflow

@ManuelRomeroA ManuelRomeroA merged commit 94c8577 into main Apr 7, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant