This library provides a dropdown that can deal with items of any type t.
Items are not part of this component's internal model, meaning that there is a
single source of truth: your own Model.
It sets the selected item by value, rather than by index, which can be useful
when the set of items is dynamic. User selection is communicated by returning
an Event that contains the selected item.
@docs Events that are used to communicate changes in state relevant to users of this component.
@docs Opaque type representing messages used to change internal state.
@docs Initialize a Dropdown.
@docs Update a Dropdown. Returns the updated Dropdown and an Event that communicates changes that are relevant to the outside world, if any (e.g. item selection).
@docs Render a Dropdown using provided items, optional selected item, and function that returns a string representation of an item.
@docs The Dropdown (opaque) model.