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.
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?