Skip to content

Releases: Im-Beast/deno_tui

Deno TUI 1.3.1

01 Nov 13:38
032740d
Compare
Choose a tag to compare

Release 1.3.1

Changelog

  • Add missing documentation

Full Changelog: 1.2.0...1.3.0

Deno TUI 1.3.0

01 Nov 13:20
00c07a0
Compare
Choose a tag to compare

Release 1.3.0

BREAKING CHANGES

  • Deno 1.27+ is now required since Deno 1.27 Deno.consoleSize() no longer requires an argument
  • Tui 1.2.0 will still work on Deno 1.27 unless you type check remote modules

Changelog

  • Tui no longer requires --unstable permission on Linux and macOS as Deno 1.27 stabilized every required API
    • --unstable alongside --allow-ffi is still required on Windows.
  • Normalized the way classes use options construct themselfs
  • Added replaceEmptyStyle function in theme.ts
  • Added new TableComponent

Full Changelog: 1.2.0...1.3.0

Deno TUI 1.2.0

29 Sep 13:48
d474ea3
Compare
Choose a tag to compare

Release 1.2.0

BREAKING CHANGES

  • Deno 1.26+ is now required because of Deno.setRaw being moved to stdin.setRaw

Changelog

  • Changed Deno.setRaw calls to stdin.setRaw (To make it work for Deno 1.26+)
  • Improved TextboxComponent
    • Added placeholder, lineNumbering and lineHighlighting option that offer better customization
    • Added keyboardHandler option that allows you to use custom keyboard handler in textbox
    • Improved interacting with it
  • Fixed minor issues regarding rendering on Canvas that caused styles to be improperly ordered
  • Fixed memory leak in ComboboxComponent caused by not clearing temporary buttons
  • Fixed SliderComponent's thumb not being styled when adjustThumbSize option is set to true
  • Minorly refactored order of property types in classes

Full Changelog: 1.1.0...1.2.0

Deno TUI 1.1.0

10 Sep 15:06
0febf68
Compare
Choose a tag to compare

Release 1.1.0

BREAKING CHANGES

  • TypedEventTarget and CombinedAsyncIterator has been removed
  • Tui now uses custom implementation of EventEmitter instead of AsyncIterator's and EventTarget
    • Tui.run() now starts application and returns nothing
      • Use Tui.on() to intercept events
    • Tui.render(), Tui.update() and Canvas.render() now return functions that allow to stop them
    • Tui no longer automatically exits after CTRL+C'ing
      • To return to previous behaviour call Tui.dispatch() after creating Tui
      • You can manually call Tui.remove() to stop Tui (doesn't exit deno app)
  • Tui's close has been renamed to dispatch
  • Component's now use stricter typings so Component without specifying literal type doesn't mean Any Component, use Component<EventRecord> instead.

Changelog

  • Added custom EventEmitter and Deffered implementation
  • Switching to custom EventEmitter indirectly caused many things to improve:
    • Changing size of the Tui caused by resizing terminal is now smooth as butter
    • Tui is now way more stable when it's time to unload it (in watch) and on closing
      • There were cases where it could still run in the background after closing, no longer the case
    • updateRate and refreshRate is now way more stable, CombinedAsyncIterator caused it to overshoot previously
      • frametimes are now way more consistent
  • Previously, some small (but existent) CPU spikes were happening, it's no longer the case
  • Component's can now intercept more events, specifically remove, keyPress, multiKeyPress and mousePress
  • Theoritically Tui should now be more memory efficient in the long run, Tui.remove() and Component.remove() "clean" more after themselfs

Tip

  • Take a look at changelog and/or demo diff to see how to adapt to these changes

Full Changelog: 1.0.3...1.1.0

Deno TUI 1.0.3

23 Aug 08:54
2e92d0a
Compare
Choose a tag to compare

Release 1.0.3

Changelog

  • Renamed KeypressEvent class to KeyPressEvent to keep consistent naming scheme
  • Fixed broken mouse controls within views

Full Changelog: 1.0.2...1.0.3

Deno TUI 1.0.2

21 Aug 19:01
Compare
Choose a tag to compare

Release 1.0.2

Changelog

  • Fixed TextboxComponent repeating text inside of it when using backspace at the start of the line
  • Improved interaction using keyboard with CheckboxComponent and ComboboxComponent
  • Improved keyboard control handler, it should now be more reliable and performant
  • ScrollableViewComponent state now gets set to "focused" when it's currently used using keyboard (CTRL+F key switching)
  • Minor refactoring (added explicit return type to functions and methods)

Full Changelog: 1.0.1...1.0.2

Deno TUI 1.0.1

19 Aug 14:05
69d9e8c
Compare
Choose a tag to compare

Release 1.0.1

Changelog

  • ViewComponent now provides updateOffsets method
  • Component's view property can now be dynamically changed and ViewComponent's offset will be updated
  • ScrollableViewComponent now adjusts its margins accordingly to its scrollbars visibility
  • src/theme.ts now exports hierarchizeTheme function which automatically assigns correct hierarchy values to properties of given input.
  • Minor refactoring regarding given QOL changes

Full Changelog: 1.0.0...1.0.1

Deno TUI 1.0.0

18 Aug 18:39
695750e
Compare
Choose a tag to compare

Release 1.0.0 🎉

Changelog

  • Added missing documentation
  • Cleaned up code
  • Tui now switches to secondary buffer on Tui.run
  • Smoothened experience of resizing terminal
  • Views are more integrated into components
    • Components now have view property which assigns them to specific ViewComponent
  • Keyboard control handling improvements
    • It now supports switching views using CTRL+F... keys
    • Defaults to already focused component and fallbacks to first one in tui
    • It now respects z-indexes
  • ScrollableViewComponent's scrollbars are now within its rectangle
  • ViewComponent received margin option
  • Fixed mouse handling
  • Tui's close event is now dispatched on more signal occasions
  • Component's rectangle property is now an getter and setter
    • This fixes an issue which made it impossible for components to extend and use getters and setters
    • Introduced new PlaceComponent which definitely (Component doesn't guarantee it) has rectangle property doesn't modify it when getting or setting it
      • Modified some components to inherit it instead of Component
  • ComboboxComponent's option property has been renamed to value to normalize naming scheme across components
  • Added some simple examples

Full Changelog: 1.0.0-RC...1.0.0

Deno TUI 1.0.0-RC

08 Aug 16:31
a734c8b
Compare
Choose a tag to compare
Deno TUI 1.0.0-RC Pre-release
Pre-release

Release candidate for 1.0.0

Changelog

  • Changelog would be very long pointing out everything, so take it as a summary
  • It's now OOP
    • Development of new components is way easier thanks to inheritance
  • Takes use of async iterators and generators
  • Performance skyrocketed 🚀
  • It's now styling framework agnostic, literally anything can be used to style component
  • Styler (now Theme) doesn't need to be compiled
  • key_reader.ts recode
    • Smarter way of reading modifier and keys in terminals
    • Added support for SGR and UTF-8 mouse handling
    • Special keys and modifiers are now supported on windows thanks to using FFI

Full Changelog: 0.5.1...1.0.0-RC

Deno TUI 0.5.1

05 Jan 18:24
5e9c707
Compare
Choose a tag to compare
Deno TUI 0.5.1 Pre-release
Pre-release

Changelog

  • Improved documentation and README
  • Added community contributing guidelines as well ass issue templates