Commit Graph

31 Commits

Author SHA1 Message Date
c70a8b8fc5 Improve exception if a (multi)selection prompt is used incorrectly
Before this commit, the selection prompt would throw an `InvalidOperationException` (Sequence contains no elements) and the multi selection prompt would throw an `ArgumentOutOfRangeException` (Index was out of range. Must be non-negative and less than the size of the collection.)

Both would occur because the prompts were never meant to be empty.
2024-09-11 10:16:21 +02:00
a55b80220d Enhance the style of the checkboxes for multi-selection (#1244)
* Enhance the checkboxes' style for multi-selection by applying the selected style, if available, to the checkboxes currently selected.
2024-09-09 16:35:01 +02:00
fd69ad0b01 Fix search bug in prompt related to custom item types
Closes #1626
2024-09-03 00:46:18 +02:00
397b742bec Add selection orompt Search (#1289)
* Add selection prompt search as you type

* Fix small bug

* Simplify

* Simplify

* Remove spacebar as a selection prompt submit key

* Trigger CI

* Update src/Spectre.Console/Prompts/SelectionPrompt.cs

Co-authored-by: Martin Costello <martin@martincostello.com>

* Simplifty Mask method

* Handle multi-selection prompt better

* Update API naming

* Address feedback

* Add some tests

* Remove whitespace

* Improve search and highlighting

* Add test case for previous issue

* Add extra test case

* Make prompt searchable

---------

Co-authored-by: Martin Costello <martin@martincostello.com>
Co-authored-by: Patrik Svensson <patrik@patriksvensson.se>
2024-02-25 12:57:27 +01:00
71631b248a Fix potential deadlock when cancelling prompts (#1439) 2024-01-31 12:02:01 +01:00
6f1f29967d (#1363) fix rendering of ListPrompt for odd pageSizes 2024-01-01 10:19:09 +01:00
44300c871f fixed line-endings 2023-11-28 00:14:54 +01:00
e07ccd9f66 Allow Confirmation Prompt Styling (#1210)
* Allow Confirmation Prompt Styling

* Remove style null check

Co-authored-by: Cédric Luthi <cedric.luthi@gmail.com>

* Remove style null coalesce

Co-authored-by: Cédric Luthi <cedric.luthi@gmail.com>

* Update comment

Co-authored-by: Cédric Luthi <cedric.luthi@gmail.com>

* Remove style null check

Co-authored-by: Cédric Luthi <cedric.luthi@gmail.com>

* Update comment

Co-authored-by: Cédric Luthi <cedric.luthi@gmail.com>

* Remove style null coalesce

Co-authored-by: Cédric Luthi <cedric.luthi@gmail.com>

---------

Co-authored-by: Cédric Luthi <cedric.luthi@gmail.com>
2023-11-13 18:23:09 +01:00
4219bbbf61 Allow passing a nullable style in DefaultValueStyle() and ChoicesStyle()
This will allow to slightly simplify the implementation of #1210

See also related discussion on https://github.com/spectreconsole/spectre.console/pull/1349#discussion_r1388385384
2023-11-10 08:01:18 +01:00
6acf9b8c63 Add an implicit operator to convert from Color to Style (#1160) 2023-05-10 14:20:12 +01:00
5075732564 Adjustments based on code review 2023-03-16 09:45:42 +01:00
9cd7b24e65 Allow configuration of confirmation prompt comparison via StringComparer 2023-02-11 17:09:16 +01:00
29846ba505 Ensure correct comparer is used for TextPrompt 2023-02-04 19:56:37 +01:00
720db951f3 feat: Allow case-insensitive confirmation prompt 2023-02-04 13:24:11 +01:00
c3ec6a7363 Add Layout widget (#1041)
* Add width to panels
* Add height to panels
* Replace RenderContext with RenderOptions
* Remove exclusivity from alternative buffer
* Add Layout widget
* Add Align widget
2022-11-15 10:12:17 +01:00
6a4d8c8f30 Add culture option to TypeConverterHelper, TextPrompt and AnsiConsole (#1014)
* Add culture option to TypeConverterHelper, TextPrompt and AnsiConsole

* Add IHasCulture interface
2022-10-15 11:19:06 +02:00
8fa53f8fb1 Allow PACKET key on MultiSelectionPrompt 2022-10-13 20:43:03 +02:00
422012c994 Make documentation consistent 2022-09-26 23:32:57 -04:00
4f0ec87522 Allow selections to wrap around 2022-09-26 23:32:57 -04:00
eb02c3d534 Custom mask for secret (#970)
* Masking Character added, not yet used.

* Setting the masking character can be chained with other extensions.

* Added string extension for masking, and replaced hardcoded asterisks.

* Check if mask is null first.

* Fixed Typo in previous test and added new test for custom masks.

* Added tests for masking with null character

* Added docs and example.

* Adjusted extensions so that Mask is integrated into Secret extension. Updated Exampls and Tests accordingly
2022-09-26 20:34:41 +02:00
f3a82073d9 Check for null argument in TextPrompt 2022-06-30 20:08:04 +02:00
38d9386e00 Add option to configure the style of the choices list and the default value in TextPrompt (#681)
* Allow setting the style of the default value in TextPrompt

Add property "DefaultValueStyle" to TextPrompt which allows setting the style in which the default value is rendered.
When no style is set, the value is displayed as green text, keeping the existing behavior.

* Allow setting the style in which a TextPrompt's choices are displayed

Add property "ChoicesStyle" to TextPrompt which allows setting the style in the prompt's choices are rendered.
When no style is set, choices are displayed as blue text, keeping the existing behavior.
2022-03-27 19:38:01 +02:00
f221c1f25c add overload taking params array (#682) 2022-01-15 19:51:17 +01:00
52c1d9122b Add global usings (#668)
* Use global usings

* Fix namespace declarations for test projects
2021-12-23 16:50:31 +01:00
ec1188b837 Use file scoped namespace declarations 2021-12-22 08:51:17 -05:00
ba4b7b97f8 Escape any Markup when displaying selected prompt items
If the item contained escaped markup, after the call to RemoveMarkup
the string will contain unescaped markup (that the user explicitly had
escaped before) for those cases we need to escape all remaining markup.
2021-11-02 22:56:54 +01:00
045d0922c8 fixed spelling in Exception 2021-10-30 00:05:16 +02:00
949f35defd (#502) Added GetParent and GetParents to MultiSelectionPrompt
So it it possible to find the parent(s) of a given item.
2021-10-30 00:05:16 +02:00
f5a2735501 Fix a typo in code comment (#579) 2021-10-29 21:12:01 +02:00
d34012cad0 Fix typos in code comments 2021-09-13 22:58:52 -04:00
fa5a1e88ec Clean up Widgets
* Move /Widgets/Live/* to /Live/*
* Move /Widgets/Prompt/* to /Prompts/*
* Move tests and expectations to match the new locations
2021-07-14 08:38:44 -04:00