## Background goal
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.
### Known use cases
| {F37162436} | ChipInput with menu in [[ https://en.wikipedia.org/wiki/Special:Preferences#mw-prefsection-echo | User's preferences ]]. |
| {F41915401} | {T357710} in Community Configuration. |
| {F41915318} | {T357708} in Community Configuration. |
### Design spec
| Component spec sheet |
### Open questions
- Should "show a menu" and "only allow adding certain values" be separate settings, or should they be connected?
- Connecting them could solve the problem of how we identify which values are allowed: if a value appears in the menu it's allowed, otherwise it's not.
- Even if they are connected, allowing the user to add any value could still be done, by always adding a menu item for the value that the user has typed
- Assuming we use a similar API to Lookup's (emit an `input` event and expect the parent component to update the `menu-items` prop), how do we make it easy for the parent component to not add a menu, without keeping the input in the pending state forever because we're waiting for `menu-items` to be updated?
- Perhaps this could be done by making `menu-items` optional, with a default value of `null` rather than `[]`, to signify that no menu is used?
### Acceptance criteria (or Done)
**Design**
[] Design the Figma spec sheet and add it in this task
[] Update the component in the Figma [[ https://www.figma.com/file/KoDuJMadWBXtsOtzGS4134/❖-Codex-components?node-id=1891%3A4420&viewport=287%2C338%2C0.28 | library ]]. //This step will be done by a DST member.//
[] Update the ChipInput Guidelines including this new case
**Code**
[] Implement the component's updates in Codex