Transient notification state for TUI and web UI.
@type level() :: :info | :success | :warning | :error | atom()
@type t() :: %Vibe.UI.Notification{id: term(), level: level(), text: String.t()}
@spec new(t() | map() | keyword() | String.t()) :: t()