Background
Right now, ChipInput allows the user to add chips with whatever values they want, and doesn't suggest values. We should supporting adding a Menu below the input to suggest values, and support restricting the values that can be added to only those that appear in the menu.
Description
This behavior is similar to the Lookup component, but with multiselect enabled, and using chips to display selected items. It is different enough from a single-select Lookup that we do not want to combine them into a single Lookup component with single- and multiselect modes. For these reasons, we decided to name the new component MultiselectLookup.
User stories
- As a user, I want to be able to select multiple items from a dropdown menu of options.
Known use cases
| ChipInput with menu in User's preferences. | |
| T357710: Page titles selector control in Community Configuration. | |
| T357708: Namespaces selector control in Community Configuration. | |
| Commons/Wikiversity from T365532: Add Lookup component based on ChipInput to Codex. | |
| Multiblock project | |
Existing implementations
These artifacts are listed for historical context. The Figma spec, linked below, is the source of truth for the new component.
Wikimedia community:
- Vue: - we created a very simplified version of this as a demo of multiselect behavior in the Menu component
Codex implementation
Component task owners
- Designer: @bmartinezcalvo
- Developer: @AnneT
Open questions
Design spec
Guidelines
Acceptance criteria
Minimum viable product
This task covers the minimum viable product (MVP) version of this component. MVP includes basic layout, default states, and most important functionality.
MVP scope
- List all parts of the MVP scope for this component
Design
- Design the Figma spec sheet and document its Guidelines T366006
- Update the component in the Figma library. This step will be done by a DST member.
- Include the component's Guidelines in Codex
Code
- Implement the component in Codex
Future work
- If applicable, list future work that should be done for this component after the MVP is implemented as part of this task. You should open new, standalone tasks for all future work.








