radartui 0.0.2
radartui: ^0.0.2 copied to clipboard
A Flutter-inspired TUI framework for Dart. Build terminal UIs with declarative widgets, state management, diff-based rendering, and a rich widget library.
Changelog #
0.0.2 - 2026-04-05 #
- Expand pubspec description for pub.dev compliance
- Upgrade
ffidependency to^2.0.0 - Add
platformsfield (linux, macos, windows) - Improve README with pub.dev badges and widget catalog
- Add dartdoc comments to public API elements
- Exclude log files and dev-only files from published package
0.0.1 - 2026-04-05 #
Initial release of RadarTUI.
Core Framework #
- Flutter-like Widget, Element, RenderObject architecture
StatelessWidget,StatefulWidget,InheritedWidget- Layout system:
Row,Column,Flex,Stack,Positioned,Wrap,Grid - Basic widgets:
Text,Container,Button,TextField,Checkbox,Radio - Advanced widgets:
DataTable,TabBar/TabBarView,DropdownButton,Icon,ListView,GridView - Navigation:
Navigator,Route,Dialog - Focus management system
- Theme system (
Theme,DefaultTextStyle,MediaQuery) - Animation system (
AnimationController,Tween,CurvedAnimation,Curves) - Form widgets:
Form,FormField,TextFormField - Async widgets:
StreamBuilder,FutureBuilder - Keyboard shortcuts:
Shortcuts,Actions,ShortcutActionsHandler - Widget testing framework
2026-04-01: Phase 4 Animation System #
Core Animation Classes #
Animation<T>abstract base with value/status getters and listener managementAnimationControllertimeline controller (0.0 → 1.0) using SchedulerBindingTween<T>/ColorTweenvalue interpolation (TUI: snaps at midpoint for discrete ANSI colors)CurvedAnimationapplies easing curves to parent animationCurve/Curves- linear, easeIn, easeOut easing functions
Widget Integration #
Button- focus/unfocus color animation (150ms, easeOut)Checkbox- check/uncheck color animation (100ms)Radio- select/deselect color animation (100ms)
Infrastructure #
- Added persistent frame callbacks to
SchedulerBinding FocusableStatemixin - addedonFocusChangehook
Test Coverage #
- 856 tests passing (829 → 856)
2026-03-31: Phase 1 Widgets #
IndexedStackwidgetTabBar/TabBarViewwithTabControllerDropdownButton<T>andDropdownMenuItem<T>Shortcuts/Actions/ShortcutActionsHandler/Intent/ActionRichText/TextSpanDefaultTextStyleIconwidgetDataTablewith sorting and selection
2025-10-19: Async Widgets #
- Added
StreamBuilder<T>,FutureBuilder<T>,AsyncSnapshot<T> - Flutter API compatible
2025-03-22: Major Architecture Improvements #
Phase 1: Critical Bug Fixes #
- Layout caching (constraints change detection in
RenderObject.layout()) - ParentData initialization via
setupParentData()method - Stack Positioned bug fix (bottom/right positioning)
- TextField border overflow protection
Phase 2: Test Coverage Expansion #
- Added
framework_test.dart(Element/Widget lifecycle) - Added
flex_test.dart(Flex layout algorithm) - Added
stack_test.dart(Stack/Positioned) - Added
text_test.dart(Text/RenderText with multiline) - Test count: 362 → 503
Phase 3: Performance Improvements #
RenderObjectWithChildMixin<C>for single-child render objectsRelayoutBoundarysupport inRenderObject- ListView virtualization with
ScrollController - InheritedWidget dependency cleanup (memory leak fix)
Phase 4: Feature Additions #
- Text multiline support (
softWrap,maxLines,overflow) TextSelectionclass for text range selectionClipboardclass for copy/paste operationsForm,FormField<T>,TextFormFieldwidgetsWrapwidget withWrapAlignment,WrapCrossAlignment- Word navigation in TextField (
moveCursorWordLeft,moveCursorWordRight)
2025-03: Core Framework Improvements #
Phase 1: Critical Bug Fixes #
- StatefulElement.unmount, ListView.dispose, ContainerRenderObjectMixin.remove
Phase 2: Key System #
- Key, LocalKey, ValueKey
Phase 3: InheritedWidget #
- InheritedWidget, MediaQuery, Theme
Phase 4: Positioned Widget #
- Positioned widget, ParentDataWidget pattern
Phase 5: Focus System #
- Refactored Focus System (explicit register/unregister)
Phase 6: Code Quality #
- Type safety, super.key, @override annotations
Phase 7: Widget Enhancements #
- Spacer, ListView
Phase 8: Test Coverage #
- ListView, TextEditingController, Button, Checkbox, Radio, Spacer
Phase 9: Navigation #
- Route lifecycle, canPop, ModalRoute FocusScope