Skip to content

Releases: php-school/cli-menu

4.3.0

16 Dec 09:41
bad5e01
Compare
Choose a tag to compare

[4.3.0]

Fixed

Added

  • declare(strict_types=1) everywhere

4.2.0

05 Dec 18:58
af04121
Compare
Choose a tag to compare

[4.2.0]

Added

  • Yes/no comfirmation dialogue (#248)
  • Ability to add multiple checkbox and radio items (#241)

4.1.0

24 Oct 09:20
Compare
Choose a tag to compare

[4.1.0]

Added

  • Ability to modify password length for password input (#235)
  • Improve the formatting of disabled menu items in different terminals (#236)
  • Support for PHP8 (#240)

4.0.0

18 Feb 19:13
Compare
Choose a tag to compare

[4.0.0]

Added

  • Add PHP 7.4 support (#183)
  • CheckboxItem & RadioItem (#186, #189, #193, #194, #226)
  • Ability to force display extra (#187)
  • Individual style objects for each item type (#211, #212, #213, #214, #216, #230)
  • Method getStyle() to interface PhpSchool\CliMenu\MenuItem\MenuItemInterface

Fixed

  • Fixed item extra rendering outside of menu (#66, #184, #187)
  • Fix unresponsive menu upon closing and reopening (#198)
  • Menu styles incorrectly propagating to submenus (#201, #210)
  • Various issues with the menu width, when the terminal was too small (#223, #220, #219)

Removed

  • Remove rebinding $this in builder closures so we can access the real $this (#191, #192, #196)
  • Marker methods from PhpSchool\CliMenu\MenuStyle:
    #getSelectedMarker()
    #setSelectedMarker()
    #getUnselectedMarker()
    #setUnselectedMarker()
    #getMarker()
  • PhpSchool\CliMenu\MenuItem\SelectableTrait
  • Marker methods from PhpSchool\CliMenu\Builder\CliMenuBuilder:
    #setUnselectedMarker()
    #setSelectedMarker()

Checkboxes

Checkboxes

Checkboxes Inline

Radios

Radios

Radios Inline

3.2.0

30 Apr 14:40
Compare
Choose a tag to compare

[3.2.0]

Added

  • Allow ESC key to "cancel" editing an input (#174)
  • Methods for disabling the default VIM mappings and setting your own (#172)
  • Ability to set custom validator on Text and Number inputs (#177)
  • Ability to turn on automatic item shortcuts (#176)

3.1.0

31 Mar 14:31
Compare
Choose a tag to compare

Nothing interesting...

[3.1.0]

Changed

  • Update dependencies + fix some static analysis issues

3.0.0

17 May 11:39
b825381
Compare
Choose a tag to compare

[3.0.0]

Changed

  • Optimise redrawing to reduce flickering (#83)
  • Use parent menu terminal when creating sub menus to reduce object graph (#94)
  • Do not print right margin. Causes menu to wrap even when row fits in terminal (#116)
  • CliMenu throws a \RuntimeException if it is opened with no items added (#146, #130)
  • Sub Menus are configured via closures (#155)
  • Remove restriction of 1 character length for markers (#141)
  • Remove the mandatory space after markers for now they can be of any length (#154)

Added

  • Added type hints everywhere (#79)
  • Added phpstan to the travis build (#79)
  • Input dialogue system for prompting users. Comes with text, number and password inputs (#81)
  • Added ability to pass already prepared CliMenuBuilder instance to CliMenuBuilder#addSubMenuFromBuilder (#85, 155)
  • Added CliMenu#addItems & CliMenu#setItems to add multiple items and replace them (#86)
  • Added custom control mapping - link any key to a callable to immediately execute it (#87)
  • Added MenuMenuItem#getSubMenu (#92)
  • Added alternate text to AsciiArtItem to display if the ascii art is too large for the current terminal (#93)
  • Added the ability to pass existing MenuStyle instance to dialogues and inputs for consistent themes and reduced object graph (#99)
  • Added CSS like borders (#100)
  • Added option to auto center menu with CliMenuBuilder#setMarginAuto (#103)
  • Added option to auto center menu with CliMenuBuilder#setMarginAuto (#103)
  • Added support for 256 colours with automatic and manual fallback to 8 colours (#104)
  • Added clear option to CliMenu#redraw useful for when reducing the terminal width (#117)
  • Added ability to set top/bottom and left/right padding independently (#121)
  • Added a new Split Item item type which allows displaying multiple items on one line (#127)
  • Added setText methods to various items so they can be modified at runtime (#153)
  • Added MenuStyle#hasChangedFromDefaults to check if a MenuStyle has been modified (#149)
  • Added CliMenu#setTitle and CliMenu#setStyle (#155)
  • Added CliMenuBuilder#getStyle to get the current style object for the menu

Fixed

  • Fixed sub menu go back button freezing menu (#88)
  • Fixed centering ascii art items with trailing white space (#102)
  • Enable cursor when exiting menu (#110)
  • Fixed (#71) - changed padding calculation when row too long to stop php notices (#112)
  • Fixed wordwrap helper (#134)
  • Fixed selected item issues when adding/setting/removing items (#156)
  • Fix infinite loop when no selectable items in menu (#159, #144)

Removed

  • Dropped PHP 5.x and PHP 7.0 support (#79)
  • Removed the Terminal namespace which has been migrated to php-school/terminal (#81)
  • Removed MenuStyle::getDefaultStyleValues (#149)
  • Removed CliMenuBuilder#setTerminal (#149)
  • Removed CliMenuBuilder#getSubMenu (#155)
  • Removed CliMenuBuilder#getMenuStyle (#155)
  • Removed CliMenuBuilder#end (#155)

2.1.0

11 Dec 19:36
62d3f44
Compare
Choose a tag to compare

[2.1.0]

Changed

  • Use new static for submenu to allow subclassing (#68)

Added

  • Add emacs style up/down shortcuts ctrl+n and ctrl+p (#67)

2.0.2

01 Mar 22:05
Compare
Choose a tag to compare

[2.0.2]

Fixed

  • Don't output ascii art if the terminal width is too small (#63)

2.0.1

15 Feb 10:06
Compare
Choose a tag to compare

[2.0.1]

Fixed

  • Reset array keys after removing an item from the menu (#61)