microsoft / microsoft/AdaptiveCards
Input.ChoiceSet search/filtering UX (static list of choices)
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 2k
- Forks
- 595
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 1
Description
Description

Schema/Spec
Requirements
- Refer to the Fluent UI search control for UX requirements
Open issues
-
Do we support
isMultiSelecttrue? 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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