From 022c09e386b9d8444cb4dce001af316da3d1f4c0 Mon Sep 17 00:00:00 2001 From: Kevin Lee Date: Sat, 11 Apr 2026 03:57:07 +1000 Subject: [PATCH] Fix #58: `mapValidated` on `MultipleChoice` prompts and move error display to bottom Two bugs existed in `PromptFramework.mapValidated` when used with `MultipleChoice` prompts: 1. After a validation rejection showed an error message, subsequent non-ENTER actions (TAB toggle, arrow keys) did not clear the error. The inner framework's status was permanently stuck at `Running(Left(err))` because non-ENTER handlers use `identity` for status, causing stale error rendering and visual artifacts (duplicate/shifted items on terminal). 2. After a first rejection, selecting then deselecting and pressing ENTER again produced no visible feedback because the rendering was already identical to the displayed error state. Fix in `PromptFramework.mapValidated` (two coordinated changes): - `renderState`: translate the outer wrapper's `Running(Left(err))` status directly into an inner `self.Status.Running(Left(err))` for rendering, instead of always reading `self.currentStatus()` which could be stale. - `handleEvent`: backward-propagate `self.Status.Init` instead of `self.Status.Running(Left(err))`, guarded by `innerWasFinished` to only apply when the inner was actually `Finished` (not when it was `Running` with its own validation error, e.g. `InteractiveTextInput`). Fix in `InteractiveMultipleChoice.renderState`: - Move the error message rendering from between instructions and options to after the options list. When no error is present, a blank line is rendered in its place. This keeps the line count constant across error/non-error states, preventing terminal scroll-induced cursor offset issues that caused duplicate rendering when the prompt was near the terminal bottom. Also adds a `validated-multi` interactive example for manual testing. --- .../scala/InteractiveMultipleChoice.scala | 11 +-- .../core/src/main/scala/PromptFramework.scala | 17 +++-- .../core/alternatives_cancel_multiple | 6 ++ .../core/alternatives_cancel_multiple_derived | 6 +- .../core/alternatives_infiniscroll_multiple | 10 +++ ...alternatives_multiple_derived_revalidation | 70 +++++++++++++++++++ .../core/fallback_alternatives_multiple | 10 +++ .../core/src/snapshots/core/multiple_choice | 9 +++ .../core/multiple_choice_allselected | 3 + .../core/multiple_choice_toggle_all_deselect | 4 ++ .../core/multiple_choice_toggle_all_filtered | 5 ++ .../core/multiple_choice_toggle_all_select | 3 + .../coreJS/alternatives_cancel_multiple | 6 ++ .../alternatives_cancel_multiple_derived | 6 +- .../coreJS/alternatives_infiniscroll_multiple | 10 +++ ...alternatives_multiple_derived_revalidation | 70 +++++++++++++++++++ .../coreJS/fallback_alternatives_multiple | 10 +++ .../core/src/snapshots/coreJS/multiple_choice | 9 +++ .../coreJS/multiple_choice_allselected | 3 + .../multiple_choice_toggle_all_deselect | 4 ++ .../multiple_choice_toggle_all_filtered | 5 ++ .../coreJS/multiple_choice_toggle_all_select | 3 + .../coreNative/alternatives_cancel_multiple | 6 ++ .../alternatives_cancel_multiple_derived | 6 +- .../alternatives_infiniscroll_multiple | 10 +++ ...alternatives_multiple_derived_revalidation | 70 +++++++++++++++++++ .../coreNative/fallback_alternatives_multiple | 10 +++ .../src/snapshots/coreNative/multiple_choice | 9 +++ .../coreNative/multiple_choice_allselected | 3 + .../multiple_choice_toggle_all_deselect | 4 ++ .../multiple_choice_toggle_all_filtered | 5 ++ .../multiple_choice_toggle_all_select | 3 + .../core/src/test/scala/ExampleTests.scala | 25 +++++++ .../src/main/scala-jvm-native/sync.scala | 30 ++++++-- 34 files changed, 441 insertions(+), 20 deletions(-) create mode 100644 modules/core/src/snapshots/core/alternatives_multiple_derived_revalidation create mode 100644 modules/core/src/snapshots/coreJS/alternatives_multiple_derived_revalidation create mode 100644 modules/core/src/snapshots/coreNative/alternatives_multiple_derived_revalidation diff --git a/modules/core/src/main/scala/InteractiveMultipleChoice.scala b/modules/core/src/main/scala/InteractiveMultipleChoice.scala index 5695e39..61e1509 100644 --- a/modules/core/src/main/scala/InteractiveMultipleChoice.scala +++ b/modules/core/src/main/scala/InteractiveMultipleChoice.scala @@ -63,11 +63,6 @@ private[cue4s] class InteractiveMultipleChoice( lines += "? ".focused + lab.prompt + s" $promptCue ".prompt + st.text.input lines += "Tab".emphasis + " to toggle, " + "Shift+Tab".emphasis + " to toggle all, " + "Enter".emphasis + " to submit." - status match - case Status.Running(Left(err)) => - lines += err.error - case _ => - st.display.showing match case None => lines += "no matches...".noMatches @@ -95,6 +90,12 @@ private[cue4s] class InteractiveMultipleChoice( end if end match + status match + case Status.Running(Left(err)) => + lines += err.error + case _ => + lines += "" + case Status.Finished(ids) => lines += s"$promptDone ".focused + lab.prompt diff --git a/modules/core/src/main/scala/PromptFramework.scala b/modules/core/src/main/scala/PromptFramework.scala index b2594ff..9d14c82 100644 --- a/modules/core/src/main/scala/PromptFramework.scala +++ b/modules/core/src/main/scala/PromptFramework.scala @@ -154,7 +154,10 @@ trait PromptFramework[Result](terminal: Terminal, out: Output) state: PromptState, status: Status, ): List[String] = - self.renderState(state, self.currentStatus()) + val innerStatus = status match + case Status.Running(Left(err)) => self.Status.Running(Left(err)) + case _ => self.currentStatus() + self.renderState(state, innerStatus) override def handleEvent( event: Event, @@ -163,6 +166,10 @@ trait PromptFramework[Result](terminal: Terminal, out: Output) case self.PromptAction.Update(statusChange, stateChange) => self.stateTransition(stateChange, statusChange) + val innerWasFinished = self.currentStatus() match + case self.Status.Finished(_) => true + case _ => false + val refinedStatus = self.currentStatus() match case self.Status.Finished(result) => @@ -174,12 +181,14 @@ trait PromptFramework[Result](terminal: Terminal, out: Output) case self.Status.Running(r) => Status.Running(r.flatMap(f)) case self.Status.Init => Status.Init - // propagate information backwards... + // When outer validation rejects a Finished result, + // reset the inner to Init so it can accept new events + // and doesn't carry stale error status refinedStatus match - case Status.Running(Left(err)) => + case Status.Running(Left(_)) if innerWasFinished => self.stateTransition( identity, - _ => self.Status.Running(Left(err)), + _ => self.Status.Init, ) case _ => diff --git a/modules/core/src/snapshots/core/alternatives_cancel_multiple b/modules/core/src/snapshots/core/alternatives_cancel_multiple index b6c6da6..4852a1d 100644 --- a/modules/core/src/snapshots/core/alternatives_cancel_multiple +++ b/modules/core/src/snapshots/core/alternatives_cancel_multiple @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,6 +40,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -47,6 +51,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Interrupt ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -57,4 +62,5 @@ Event.Interrupt ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/core/alternatives_cancel_multiple_derived b/modules/core/src/snapshots/core/alternatives_cancel_multiple_derived index 60caa6e..76f6046 100644 --- a/modules/core/src/snapshots/core/alternatives_cancel_multiple_derived +++ b/modules/core/src/snapshots/core/alternatives_cancel_multiple_derived @@ -7,6 +7,7 @@ Event.Init ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,28 +18,29 @@ Event.Key(TAB) ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃? What would you like for lunch › ┃ ┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ -┃show pizza some love! ┃ ┃ ◯ pizza ┃ ┃ ◉ steak ┃ ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ +┃show pizza some love! ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃? What would you like for lunch › ┃ ┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ -┃show pizza some love! ┃ ┃ ◉ pizza ┃ ┃ ◉ steak ┃ ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ diff --git a/modules/core/src/snapshots/core/alternatives_infiniscroll_multiple b/modules/core/src/snapshots/core/alternatives_infiniscroll_multiple index 3169427..dc5856e 100644 --- a/modules/core/src/snapshots/core/alternatives_infiniscroll_multiple +++ b/modules/core/src/snapshots/core/alternatives_infiniscroll_multiple @@ -6,6 +6,7 @@ Event.Init ┃ ◯ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -15,6 +16,7 @@ Event.Key(TAB) ┃ ◯ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -24,6 +26,7 @@ Event.Key(DOWN) ┃ ◯ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -33,6 +36,7 @@ Event.Key(TAB) ┃ ◉ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -42,6 +46,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ↓ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -51,6 +56,7 @@ Event.Key(DOWN) ┃ ◯ fried chicken ┃ ┃ ◯ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -60,6 +66,7 @@ Event.Key(TAB) ┃ ◉ fried chicken ┃ ┃ ◯ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -69,6 +76,7 @@ Event.Key(DOWN) ┃ ◉ fried chicken ┃ ┃ ◯ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -78,6 +86,7 @@ Event.Key(TAB) ┃ ◉ fried chicken ┃ ┃ ◉ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -87,4 +96,5 @@ Event.Key(ENTER) ┃ ◉ fried chicken ┃ ┃ ◉ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/core/alternatives_multiple_derived_revalidation b/modules/core/src/snapshots/core/alternatives_multiple_derived_revalidation new file mode 100644 index 0000000..204c9e4 --- /dev/null +++ b/modules/core/src/snapshots/core/alternatives_multiple_derived_revalidation @@ -0,0 +1,70 @@ +Event.Init +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(ENTER) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃Please select at least one. ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(TAB) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◉ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(TAB) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(ENTER) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃Please select at least one. ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(TAB) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◉ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(ENTER) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃✔ Pick at least one ┃ +┃ ◉ alpha ┃ +┃ ┃ +┃ ┃ +┃ ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/core/fallback_alternatives_multiple b/modules/core/src/snapshots/core/fallback_alternatives_multiple index 059af70..a6dd91b 100644 --- a/modules/core/src/snapshots/core/fallback_alternatives_multiple +++ b/modules/core/src/snapshots/core/fallback_alternatives_multiple @@ -6,6 +6,7 @@ Event.Init ┃ _ steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -15,6 +16,7 @@ Event.Key(TAB) ┃ _ steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -24,6 +26,7 @@ Event.Key(DOWN) ┃ _ steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -33,6 +36,7 @@ Event.Key(TAB) ┃ * steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -42,6 +46,7 @@ Event.Key(DOWN) ┃ _ sweet potato ┃ ┃ v fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -51,6 +56,7 @@ Event.Key(DOWN) ┃ _ fried chicken ┃ ┃ _ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -60,6 +66,7 @@ Event.Key(TAB) ┃ * fried chicken ┃ ┃ _ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -69,6 +76,7 @@ Event.Key(DOWN) ┃ * fried chicken ┃ ┃ _ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -78,6 +86,7 @@ Event.Key(TAB) ┃ * fried chicken ┃ ┃ * sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -87,4 +96,5 @@ Event.Key(ENTER) ┃ * fried chicken ┃ ┃ * sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/core/multiple_choice b/modules/core/src/snapshots/core/multiple_choice index 00b0d8b..ac3af5a 100644 --- a/modules/core/src/snapshots/core/multiple_choice +++ b/modules/core/src/snapshots/core/multiple_choice @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,6 +40,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -47,6 +51,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Char('h') ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -57,6 +62,7 @@ Event.Char('h') ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -67,6 +73,7 @@ Event.Key(TAB) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DELETE) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -77,6 +84,7 @@ Event.Key(DELETE) ┃ ◯ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -87,4 +95,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/core/multiple_choice_allselected b/modules/core/src/snapshots/core/multiple_choice_allselected index 59c14da..92a08f8 100644 --- a/modules/core/src/snapshots/core/multiple_choice_allselected +++ b/modules/core/src/snapshots/core/multiple_choice_allselected @@ -7,6 +7,7 @@ Event.Init ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(TAB) ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,4 +29,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/core/multiple_choice_toggle_all_deselect b/modules/core/src/snapshots/core/multiple_choice_toggle_all_deselect index 877534b..efae72d 100644 --- a/modules/core/src/snapshots/core/multiple_choice_toggle_all_deselect +++ b/modules/core/src/snapshots/core/multiple_choice_toggle_all_deselect @@ -7,6 +7,7 @@ Event.Init ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(SHIFT_TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(SHIFT_TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,4 +40,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/core/multiple_choice_toggle_all_filtered b/modules/core/src/snapshots/core/multiple_choice_toggle_all_filtered index 85a6279..5b0871c 100644 --- a/modules/core/src/snapshots/core/multiple_choice_toggle_all_filtered +++ b/modules/core/src/snapshots/core/multiple_choice_toggle_all_filtered @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Char('p') ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Char('p') ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(SHIFT_TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(SHIFT_TAB) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DELETE) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,6 +40,7 @@ Event.Key(DELETE) ┃ ◉ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -47,4 +51,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/core/multiple_choice_toggle_all_select b/modules/core/src/snapshots/core/multiple_choice_toggle_all_select index d53836a..5e52283 100644 --- a/modules/core/src/snapshots/core/multiple_choice_toggle_all_select +++ b/modules/core/src/snapshots/core/multiple_choice_toggle_all_select @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(SHIFT_TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(SHIFT_TAB) ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,4 +29,5 @@ Event.Key(ENTER) ┃ ◉ fried chicken ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreJS/alternatives_cancel_multiple b/modules/core/src/snapshots/coreJS/alternatives_cancel_multiple index b6c6da6..4852a1d 100644 --- a/modules/core/src/snapshots/coreJS/alternatives_cancel_multiple +++ b/modules/core/src/snapshots/coreJS/alternatives_cancel_multiple @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,6 +40,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -47,6 +51,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Interrupt ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -57,4 +62,5 @@ Event.Interrupt ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreJS/alternatives_cancel_multiple_derived b/modules/core/src/snapshots/coreJS/alternatives_cancel_multiple_derived index 60caa6e..76f6046 100644 --- a/modules/core/src/snapshots/coreJS/alternatives_cancel_multiple_derived +++ b/modules/core/src/snapshots/coreJS/alternatives_cancel_multiple_derived @@ -7,6 +7,7 @@ Event.Init ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,28 +18,29 @@ Event.Key(TAB) ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃? What would you like for lunch › ┃ ┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ -┃show pizza some love! ┃ ┃ ◯ pizza ┃ ┃ ◉ steak ┃ ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ +┃show pizza some love! ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃? What would you like for lunch › ┃ ┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ -┃show pizza some love! ┃ ┃ ◉ pizza ┃ ┃ ◉ steak ┃ ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ diff --git a/modules/core/src/snapshots/coreJS/alternatives_infiniscroll_multiple b/modules/core/src/snapshots/coreJS/alternatives_infiniscroll_multiple index 3169427..dc5856e 100644 --- a/modules/core/src/snapshots/coreJS/alternatives_infiniscroll_multiple +++ b/modules/core/src/snapshots/coreJS/alternatives_infiniscroll_multiple @@ -6,6 +6,7 @@ Event.Init ┃ ◯ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -15,6 +16,7 @@ Event.Key(TAB) ┃ ◯ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -24,6 +26,7 @@ Event.Key(DOWN) ┃ ◯ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -33,6 +36,7 @@ Event.Key(TAB) ┃ ◉ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -42,6 +46,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ↓ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -51,6 +56,7 @@ Event.Key(DOWN) ┃ ◯ fried chicken ┃ ┃ ◯ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -60,6 +66,7 @@ Event.Key(TAB) ┃ ◉ fried chicken ┃ ┃ ◯ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -69,6 +76,7 @@ Event.Key(DOWN) ┃ ◉ fried chicken ┃ ┃ ◯ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -78,6 +86,7 @@ Event.Key(TAB) ┃ ◉ fried chicken ┃ ┃ ◉ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -87,4 +96,5 @@ Event.Key(ENTER) ┃ ◉ fried chicken ┃ ┃ ◉ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreJS/alternatives_multiple_derived_revalidation b/modules/core/src/snapshots/coreJS/alternatives_multiple_derived_revalidation new file mode 100644 index 0000000..204c9e4 --- /dev/null +++ b/modules/core/src/snapshots/coreJS/alternatives_multiple_derived_revalidation @@ -0,0 +1,70 @@ +Event.Init +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(ENTER) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃Please select at least one. ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(TAB) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◉ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(TAB) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(ENTER) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃Please select at least one. ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(TAB) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◉ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(ENTER) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃✔ Pick at least one ┃ +┃ ◉ alpha ┃ +┃ ┃ +┃ ┃ +┃ ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreJS/fallback_alternatives_multiple b/modules/core/src/snapshots/coreJS/fallback_alternatives_multiple index 059af70..a6dd91b 100644 --- a/modules/core/src/snapshots/coreJS/fallback_alternatives_multiple +++ b/modules/core/src/snapshots/coreJS/fallback_alternatives_multiple @@ -6,6 +6,7 @@ Event.Init ┃ _ steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -15,6 +16,7 @@ Event.Key(TAB) ┃ _ steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -24,6 +26,7 @@ Event.Key(DOWN) ┃ _ steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -33,6 +36,7 @@ Event.Key(TAB) ┃ * steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -42,6 +46,7 @@ Event.Key(DOWN) ┃ _ sweet potato ┃ ┃ v fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -51,6 +56,7 @@ Event.Key(DOWN) ┃ _ fried chicken ┃ ┃ _ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -60,6 +66,7 @@ Event.Key(TAB) ┃ * fried chicken ┃ ┃ _ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -69,6 +76,7 @@ Event.Key(DOWN) ┃ * fried chicken ┃ ┃ _ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -78,6 +86,7 @@ Event.Key(TAB) ┃ * fried chicken ┃ ┃ * sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -87,4 +96,5 @@ Event.Key(ENTER) ┃ * fried chicken ┃ ┃ * sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreJS/multiple_choice b/modules/core/src/snapshots/coreJS/multiple_choice index 00b0d8b..ac3af5a 100644 --- a/modules/core/src/snapshots/coreJS/multiple_choice +++ b/modules/core/src/snapshots/coreJS/multiple_choice @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,6 +40,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -47,6 +51,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Char('h') ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -57,6 +62,7 @@ Event.Char('h') ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -67,6 +73,7 @@ Event.Key(TAB) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DELETE) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -77,6 +84,7 @@ Event.Key(DELETE) ┃ ◯ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -87,4 +95,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreJS/multiple_choice_allselected b/modules/core/src/snapshots/coreJS/multiple_choice_allselected index 59c14da..92a08f8 100644 --- a/modules/core/src/snapshots/coreJS/multiple_choice_allselected +++ b/modules/core/src/snapshots/coreJS/multiple_choice_allselected @@ -7,6 +7,7 @@ Event.Init ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(TAB) ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,4 +29,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_deselect b/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_deselect index 877534b..efae72d 100644 --- a/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_deselect +++ b/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_deselect @@ -7,6 +7,7 @@ Event.Init ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(SHIFT_TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(SHIFT_TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,4 +40,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_filtered b/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_filtered index 85a6279..5b0871c 100644 --- a/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_filtered +++ b/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_filtered @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Char('p') ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Char('p') ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(SHIFT_TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(SHIFT_TAB) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DELETE) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,6 +40,7 @@ Event.Key(DELETE) ┃ ◉ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -47,4 +51,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_select b/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_select index d53836a..5e52283 100644 --- a/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_select +++ b/modules/core/src/snapshots/coreJS/multiple_choice_toggle_all_select @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(SHIFT_TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(SHIFT_TAB) ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,4 +29,5 @@ Event.Key(ENTER) ┃ ◉ fried chicken ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreNative/alternatives_cancel_multiple b/modules/core/src/snapshots/coreNative/alternatives_cancel_multiple index b6c6da6..4852a1d 100644 --- a/modules/core/src/snapshots/coreNative/alternatives_cancel_multiple +++ b/modules/core/src/snapshots/coreNative/alternatives_cancel_multiple @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,6 +40,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -47,6 +51,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Interrupt ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -57,4 +62,5 @@ Event.Interrupt ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreNative/alternatives_cancel_multiple_derived b/modules/core/src/snapshots/coreNative/alternatives_cancel_multiple_derived index 60caa6e..76f6046 100644 --- a/modules/core/src/snapshots/coreNative/alternatives_cancel_multiple_derived +++ b/modules/core/src/snapshots/coreNative/alternatives_cancel_multiple_derived @@ -7,6 +7,7 @@ Event.Init ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,28 +18,29 @@ Event.Key(TAB) ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃? What would you like for lunch › ┃ ┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ -┃show pizza some love! ┃ ┃ ◯ pizza ┃ ┃ ◉ steak ┃ ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ +┃show pizza some love! ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃? What would you like for lunch › ┃ ┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ -┃show pizza some love! ┃ ┃ ◉ pizza ┃ ┃ ◉ steak ┃ ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ diff --git a/modules/core/src/snapshots/coreNative/alternatives_infiniscroll_multiple b/modules/core/src/snapshots/coreNative/alternatives_infiniscroll_multiple index 3169427..dc5856e 100644 --- a/modules/core/src/snapshots/coreNative/alternatives_infiniscroll_multiple +++ b/modules/core/src/snapshots/coreNative/alternatives_infiniscroll_multiple @@ -6,6 +6,7 @@ Event.Init ┃ ◯ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -15,6 +16,7 @@ Event.Key(TAB) ┃ ◯ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -24,6 +26,7 @@ Event.Key(DOWN) ┃ ◯ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -33,6 +36,7 @@ Event.Key(TAB) ┃ ◉ steak ┃ ┃ ↓ sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -42,6 +46,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ↓ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -51,6 +56,7 @@ Event.Key(DOWN) ┃ ◯ fried chicken ┃ ┃ ◯ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -60,6 +66,7 @@ Event.Key(TAB) ┃ ◉ fried chicken ┃ ┃ ◯ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -69,6 +76,7 @@ Event.Key(DOWN) ┃ ◉ fried chicken ┃ ┃ ◯ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -78,6 +86,7 @@ Event.Key(TAB) ┃ ◉ fried chicken ┃ ┃ ◉ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -87,4 +96,5 @@ Event.Key(ENTER) ┃ ◉ fried chicken ┃ ┃ ◉ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreNative/alternatives_multiple_derived_revalidation b/modules/core/src/snapshots/coreNative/alternatives_multiple_derived_revalidation new file mode 100644 index 0000000..204c9e4 --- /dev/null +++ b/modules/core/src/snapshots/coreNative/alternatives_multiple_derived_revalidation @@ -0,0 +1,70 @@ +Event.Init +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(ENTER) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃Please select at least one. ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(TAB) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◉ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(TAB) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(ENTER) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◯ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃Please select at least one. ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(TAB) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃? Pick at least one › ┃ +┃Tab to toggle, Shift+Tab to toggle all, Enter to submit.┃ +┃ ◉ alpha ┃ +┃ ◯ beta ┃ +┃ ◯ gamma ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +Event.Key(ENTER) +┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +┃✔ Pick at least one ┃ +┃ ◉ alpha ┃ +┃ ┃ +┃ ┃ +┃ ┃ +┃ ┃ +┃ ┃ +┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreNative/fallback_alternatives_multiple b/modules/core/src/snapshots/coreNative/fallback_alternatives_multiple index 059af70..a6dd91b 100644 --- a/modules/core/src/snapshots/coreNative/fallback_alternatives_multiple +++ b/modules/core/src/snapshots/coreNative/fallback_alternatives_multiple @@ -6,6 +6,7 @@ Event.Init ┃ _ steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -15,6 +16,7 @@ Event.Key(TAB) ┃ _ steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -24,6 +26,7 @@ Event.Key(DOWN) ┃ _ steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -33,6 +36,7 @@ Event.Key(TAB) ┃ * steak ┃ ┃ v sweet potato ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -42,6 +46,7 @@ Event.Key(DOWN) ┃ _ sweet potato ┃ ┃ v fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -51,6 +56,7 @@ Event.Key(DOWN) ┃ _ fried chicken ┃ ┃ _ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -60,6 +66,7 @@ Event.Key(TAB) ┃ * fried chicken ┃ ┃ _ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -69,6 +76,7 @@ Event.Key(DOWN) ┃ * fried chicken ┃ ┃ _ sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -78,6 +86,7 @@ Event.Key(TAB) ┃ * fried chicken ┃ ┃ * sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -87,4 +96,5 @@ Event.Key(ENTER) ┃ * fried chicken ┃ ┃ * sushi ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreNative/multiple_choice b/modules/core/src/snapshots/coreNative/multiple_choice index 00b0d8b..ac3af5a 100644 --- a/modules/core/src/snapshots/coreNative/multiple_choice +++ b/modules/core/src/snapshots/coreNative/multiple_choice @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,6 +40,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DOWN) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -47,6 +51,7 @@ Event.Key(DOWN) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Char('h') ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -57,6 +62,7 @@ Event.Char('h') ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -67,6 +73,7 @@ Event.Key(TAB) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DELETE) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -77,6 +84,7 @@ Event.Key(DELETE) ┃ ◯ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -87,4 +95,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreNative/multiple_choice_allselected b/modules/core/src/snapshots/coreNative/multiple_choice_allselected index 59c14da..92a08f8 100644 --- a/modules/core/src/snapshots/coreNative/multiple_choice_allselected +++ b/modules/core/src/snapshots/coreNative/multiple_choice_allselected @@ -7,6 +7,7 @@ Event.Init ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(TAB) ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,4 +29,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_deselect b/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_deselect index 877534b..efae72d 100644 --- a/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_deselect +++ b/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_deselect @@ -7,6 +7,7 @@ Event.Init ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(SHIFT_TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(SHIFT_TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(TAB) ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,4 +40,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_filtered b/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_filtered index 85a6279..5b0871c 100644 --- a/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_filtered +++ b/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_filtered @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Char('p') ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Char('p') ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(SHIFT_TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,6 +29,7 @@ Event.Key(SHIFT_TAB) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(DELETE) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -37,6 +40,7 @@ Event.Key(DELETE) ┃ ◉ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -47,4 +51,5 @@ Event.Key(ENTER) ┃ ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_select b/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_select index d53836a..5e52283 100644 --- a/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_select +++ b/modules/core/src/snapshots/coreNative/multiple_choice_toggle_all_select @@ -7,6 +7,7 @@ Event.Init ┃ ◯ sweet potato ┃ ┃ ◯ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(SHIFT_TAB) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -17,6 +18,7 @@ Event.Key(SHIFT_TAB) ┃ ◉ sweet potato ┃ ┃ ◉ fried chicken ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ Event.Key(ENTER) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ @@ -27,4 +29,5 @@ Event.Key(ENTER) ┃ ◉ fried chicken ┃ ┃ ┃ ┃ ┃ +┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ diff --git a/modules/core/src/test/scala/ExampleTests.scala b/modules/core/src/test/scala/ExampleTests.scala index 956fc42..f8ff179 100644 --- a/modules/core/src/test/scala/ExampleTests.scala +++ b/modules/core/src/test/scala/ExampleTests.scala @@ -97,6 +97,31 @@ class ExampleTests extends munit.FunSuite, TerminalTests: true, ) + terminalTestComplete("alternatives.multiple.derived.revalidation")( + Prompt.MultipleChoice + .withNoneSelected( + "Pick at least one", + List("alpha", "beta", "gamma"), + ) + .mapValidated(ls => + Either.cond( + ls.nonEmpty, + ls, + PromptError("Please select at least one."), + ), + ), + list( + TerminalEvent.Init, + ENTER, // reject: nothing selected + TAB, // select alpha + TAB, // deselect alpha + ENTER, // reject again: nothing selected + TAB, // select alpha + ENTER, // accept: alpha selected + ), + List("alpha"), + ) + terminalTestComplete("alternatives.infiniscroll.multiple")( Prompt.MultipleChoice .withNoneSelected( diff --git a/modules/example/src/main/scala-jvm-native/sync.scala b/modules/example/src/main/scala-jvm-native/sync.scala index 9c6b48f..ed7a509 100644 --- a/modules/example/src/main/scala-jvm-native/sync.scala +++ b/modules/example/src/main/scala-jvm-native/sync.scala @@ -22,11 +22,12 @@ import cue4s.Prompt.PasswordInput.Password @main def sync(which: String*) = Prompts.sync.use: prompts => val examples = Map[String, (String, SyncPrompts => Unit)]( - "confirm" -> ("Yes/No confirmation", likeCats), - "single-choice" -> ("Single choice", day), - "multi-choice" -> ("Multiple choice", letters), - "validated-int" -> ("Validated integer", seasons), - "password" -> ("Password", password), + "confirm" -> ("Yes/No confirmation", likeCats), + "single-choice" -> ("Single choice", day), + "multi-choice" -> ("Multiple choice", letters), + "validated-multi" -> ("Validated multiple choice", validatedLetters), + "validated-int" -> ("Validated integer", seasons), + "password" -> ("Password", password), ) if which.isEmpty then @@ -109,6 +110,25 @@ def letters(prompts: SyncPrompts): Completion[List[String]] = _.withWindowSize(7), ) +def validatedLetters(prompts: SyncPrompts): Unit = + val result = prompts.run( + Prompt.MultipleChoice + .withNoneSelected( + "Pick at least one letter", + ('A' to 'Z').zip(('B' to 'Z') :+ 'A').map(_.toString).toList, + ) + .withWindowSize(7) + .mapValidated(ls => + Either.cond( + ls.nonEmpty, + ls, + PromptError("Please select at least one letter."), + ), + ), + ) + println(s"Result: $result") +end validatedLetters + def seasons(prompts: SyncPrompts): Completion[Int] = prompts.int( "How many seasons of Stargate SG-1 are there",