microsoft / microsoft/AdaptiveCards

Input.ChoiceSet search/filtering UX (static list of choices)

Open
#4,713 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Epic Feature Spec
Dominant language
C#
Stars
2k
Forks
595
Avg merge
1d 19h
Merged PRs (30d)
1

Description

Description

image

Schema/Spec

Requirements

  1. Refer to the Fluent UI search control for UX requirements

Open issues

  • Do we support isMultiSelect true? Not for this release, possibly for people picker in the future (see #5525)

  • Decide what the filtering logic is: start of string, anywhere, etc: Match anywhere in the string, matching fluent northstar behavior.

  • Should we just make this the default experience if "style": "compact" and "isMultiSelect": false? No, filtered will be an explicit value for choice set style.

  • Do we want the equivalent of Fluent's Freeform? We want to allow typing of anything (unless we're using an existing control that doesn't support it), but not to return a freeform value. If the value in the control is not one of the choices in the choice set on submit, that will trigger input validation.

  • Do we really mean auto-complete? No, we want fluent northstar search behavior

  • Do we need an error message for no matches? What about localization? No error message for now to avoid solving localization

  • Do we open the drop down autocomplete options on first character? On focus? Try to use first character typed if easily configurable, if not then stick with platform defaults

  • Should validation be case sensitive? No

Examples

{
   "type": "Input.ChoiceSet",
   "label": "Select a user",
   "isMultiSelect": false,
   "choices":  [
      { "title": "User 1", "value": "User1" },
      { "title": "User 2", "value": "User2" }
    ],
   "style": "filtered"
}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no implementation files, tests, or entry points. Start by locating the existing Input.ChoiceSet implementations and compare their platform behavior with the linked Fluent UI search control. Done means supporting explicit "style": "filtered" for single-select static choices, matching anywhere case-insensitively, allowing typed input without returning freeform values, and validating submitted values against the choices.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.