Changelog
All notable releases of Termina.
# Termina 0.5.1
- Fix nullability propagation in [Reactive] source generator ([#112](https://github.com/Aaronontheweb/Termina/pull/112))
- Source generator now preserves nullable reference type annotations (e.g., string?, int?) in generated properties
- Added custom SymbolDisplayFormat with IncludeNullableReferenceTypeModifier option
- Nullable fields now generate properties with matching nullability annotations, providing correct nullability hints in consuming code
# Termina 0.5.0
- BlockSegment wrapper for block-level streaming text ([#108](https://github.com/Aaronontheweb/Termina/pull/108))
- Enables text segments to render as block elements starting on new lines with vertical word wrapping
- New BlockSegment class wraps any ITextSegment for block-level rendering
- Fluent .AsBlock() API for creating block segments
# Termina 0.4.0
- VerticalLayout and HorizontalLayout now default to Auto() sizing ([#97](https://github.com/Aaronontheweb/Termina/pull/97))
- Previously, these layouts defaulted to Fill(), which caused nested layouts to compete with siblings for space
- New Auto() default means nested layouts size to their content by default
- Fill() is now only needed for children that should claim remaining space within a container
# Termina 0.3.0
- Inline animated text segments with tracked segment support ([#71](https://github.com/Aaronontheweb/Termina/pull/71))
- Opt-in tracked segments for StreamingTextNode enabling inline animations (spinners, timers, etc.)
- Caller-provided SegmentId system (like HTML div IDs) for tracking and manipulating segments
- New interfaces: ITextSegment, IAnimatedTextSegment, ICompositeTextSegment
# Termina 0.2.1
- Diff-based rendering system ([#61](https://github.com/Aaronontheweb/Termina/pull/61))
- Implemented double-buffering terminal wrapper that eliminates screen flickering
- Only outputs changed cells on flush instead of clearing entire screen
- New DiffingTerminal wrapper with FrameBuffer for efficient cell-level diffing
# Termina 0.2.0
- Pure reactive architecture ([#50](https://github.com/Aaronontheweb/Termina/pull/50))
- All .NET events migrated to IObservable<T> for consistency with System.Reactive
- IInvalidatingNode.Invalidated: event Action? → IObservable<Unit>
- TextInputNode: Submitted, TextChanged, Invalidated now use observables
# Termina 0.1.0
- Complete removal of Spectre.Console dependency ([#33](https://github.com/Aaronontheweb/Termina/pull/33))
# Termina 0.1.0-beta1 pre-release
- Reactive MVVM architecture with source-generated properties
- ASP.NET Core-style routing with parameterized routes and type constraints
- Two-tier event architecture (pages and navigation)