Autocomplete state model shared by TUI and future LiveView adapters.
Summary
Types
@type t() :: %Vibe.UI.Autocomplete{ empty_message: String.t() | nil, items: [Vibe.UI.Autocomplete.Item.t()], limit: pos_integer(), query: String.t(), replace_from: non_neg_integer() | nil, selected: non_neg_integer(), title: String.t() | nil }