terminice_core 1.0.0
terminice_core: ^1.0.0 copied to clipboard
Core functionality for the Terminice library, providing tools for building beautiful terminal-based applications.
1.0.0 #
- First stable release
- Documentation: Completely rewrote the
README.mdto provide a deep dive into the macro architecture of the package. Added detailed sections explaining how theIO,Navigation,Rendering,Prompt, andTestingmodules work together, complete with code examples and clear explanations of thetermistyleintegration. - New: Added
writeHintsmethod toHintKeybindingsExtensionsto centralize hint rendering across all hint styles (bullets, grid, inline, none), including support for chunking bullets viabulletsPerLine. - Refactor: Updated
FrameViewto use the newwriteHintsmethod internally. - Bumped
termistyledependency to 1.0.0
0.0.14 #
Enhanced sliderBar with configurable value labels.
valueandunitparameters —sliderBarnow accepts the actual numeric value and an optional unit suffix (e.g.'%','s','MB'). The value with its suffix is always shown when provided. TheshowPercentflag (nowfalseby default) optionally appends the calculated ratio percentage in parentheses — e.g.30s (25%).
0.0.13 #
Added FormPrompt — a reusable multi-field text input prompt.
FormPrompt— Renders multiple labeled text fields inside a singleFrameView. Supports per-field masking, placeholders, validation, and a cross-field validator. Composes existingTextInputBuffer,FrameView,KeyBindings, andPromptRunnerwith no changes to existing code.FormFieldConfig— Configuration for each field:label,placeholder,masked,maskChar,allowReveal,required,validator,initialValue.FormResult— Result wrapper with indexed[]access to field values.- Key handling: Tab/↓ advance to next field, ↑ goes back, Enter advances or submits from the last field, Ctrl+R reveals masked fields, Esc cancels.
0.0.12 #
- Styling extracted to
termistyle: All standalone style and rendering primitives (PromptTheme,TerminalColors,TerminalGlyphs,DisplayFeatures,BadgeTone,InlineStyle,FrameRenderer,FramedLayout,TableRenderer,SyntaxHighlighter, text utilities) now live in thetermistylepackage and are re-exported through the existing barrel. - Removed duplicate
StatToneenum and_toneColorhelper fromframe_view.dartin favor of the shared definitions fromtermistyle. - Cleaned up the
style/directory entirely — all style files are sourced fromtermistyle. - No public API or behavioral changes. All existing code continues to work unchanged.
0.0.11 #
- Bug fix: Fixed
KeyBindings.ctrlDreturningKeyActionResult.handledinstead ofKeyActionResult.confirmed, which caused infinite loops in prompts relying on it for submission (like the multiline editor). - Bug fix: Fixed
SearchableListPromptcrashing withInvalid argument(s)when the terminal height ormaxVisibleparameter resulted in a viewport smaller than 5 lines.
0.0.10 #
- Bug fix:
SelectableListPromptBuilder.withSelectAll()now correctly wires thetoggleAllcallback. Previously the builder created a binding with an empty closure andbuild()never passed extra bindings to the prompt. - New:
SelectionController.validatedIndices()static helper centralizes the initial-selection validation that was duplicated acrossSelectableListPrompt,SearchableListPrompt, andSelectableGridPrompt. - New:
package:terminice_core/testing.dartentrypoint exportsMockTerminal,SpyTerminal, andErrorTerminalso downstream packages can import test utilities without duplicating them.
0.0.9 #
- Centralized Theme System: Complete refactor separating styling into three composable concerns.
- Added
TerminalColorsclass with 9 built-in color palettes (dark, matrix, fire, pastel, ocean, monochrome, neon, arcane, phantom). - Added
TerminalGlyphsclass with 8 glyph presets (unicode, ascii, rounded, double, heavy, dotted, arcane, phantom, minimal). - Added
DisplayFeaturesclass with 6 display mode presets (standard, minimal, compact, verbose, clean, focus). - Moved
HintStyleenum toDisplayFeaturesfor centralized presentation control.
- Added
- PromptTheme refactored: Now composes
TerminalColors,TerminalGlyphs, andDisplayFeatures.- Added convenience getters delegating to each component for ergonomic access.
- Added
copyWith()for easy theme customization. - Added new built-in themes:
PromptTheme.minimal,PromptTheme.compact.
- Rendering components updated:
FrameView,LineBuilder,FramedLayout,FrameRenderer,TableRenderernow use the newtheme.glyphsandtheme.featuresaccessors.FrameView.hintStylenow defaults fromtheme.features.hintStylewith per-component override.FrameView.showConnectornow defaults fromtheme.features.showConnector.
0.0.8 #
- Terminal I/O Abstraction: Introduced a centralized, pluggable terminal I/O system.
- Added
Terminalabstract class withTerminalInputandTerminalOutputinterfaces. - Added
DartTerminalas the default implementation usingdart:iostdin/stdout. - Added
TerminalContextsingleton for global terminal access and replacement.
- Added
- Migrated all core components to use the new abstraction:
TerminalControlnow usesTerminalContext.input/outputfor mode management and cursor control.KeyEventReadernow reads throughTerminalContext.input.TerminalInfonow queries dimensions throughTerminalContext.output.RenderOutputnow writes throughTerminalContext.output.
- Testing support: External users can now inject custom
Terminalimplementations for testing or alternative environments. - Test utilities: Added comprehensive mock terminal implementations for testing:
MockTerminalwithMockTerminalInputandMockTerminalOutputfor full I/O simulation.SpyTerminalfor tracking method calls and verifying interactions.ErrorTerminalfor testing error handling scenarios.- Input queueing helpers for bytes, lines, and key events.
- Output capture with pattern matching and inspection helpers.
- Extensive test suite: 69 tests covering terminal interfaces, context switching, and integration.
- No behavior changes - all existing code continues to work unchanged.
0.0.7 #
- Reduced minimum dart sdk version to 2.17.0
- Enforced type safety with the new dart sdk.
- Migrated tuples and records to classes to support older versions of Dart.
- Explicitly named all libraries to support older versions of Dart.
- Removed workspace resolution to support older versions of Dart.
0.0.6 #
- Added the entire prompt toolkit (
SimplePrompt, selectable/searchable/ranked list prompts, grid selection, value prompts,DynamicListPrompt, andTextInputBuffer) to the public API. - Documented every prompt with production-grade dartdoc plus README excerpts so the new surfaces render cleanly on pub.dev.
- Clarified how the prompt module composes the existing navigation, rendering, and IO primitives to build higher-level interactions.
0.0.5 #
- Added the full rendering toolkit (
FrameView,FrameContext,FrameRenderer,FramedLayout,LineBuilder,TableRenderer,InlineStyle,HintFormat, syntax helpers) to the public API surface so prompts can share consistent terminal scaffolding. - Wrote production-grade DartDoc, diagrams, and inline examples for every renderer to ensure the new APIs render cleanly on pub.dev and meet documentation guidelines.
- Documented how the rendering pieces integrate with
PromptRunnerandKeyBindings, including connector lines, table helpers, and hint grids, so downstream packages know when to pick each component.
0.0.4 #
- Added style primitives (
PromptTheme,PromptStyle,BadgeTone,Themeable) so that prompts and downstream widgets can share consistent visuals. - Documented the new styling features with production-grade DartDoc for pub.dev.
- Ensured style exports remain available through
terminice_core.dart.
0.0.3 #
- Added navigation components (
FocusNavigator,ListNavigator,GridNavigator,SelectionController) to the public API surface. - Polished their DartDoc and improved in-tree examples for clear rendering on pub.dev.
- Documented the navigation toolkit in the
terminice_coreREADME.
0.0.2 #
- Added the complete
lib/src/iomodule (key events, bindings, terminal helpers). - Documented and exposed the IO utilities for downstream packages.
- Maintained new APIs through
terminice_core.dart. - Specified supported platforms in
pubspec.yaml.
0.0.1 #
- Initial listing on pub.dev.