                            :attr {:on-mouse-over #(swap! state-atom suggestion-select-set i)
                                   :on-mouse-down #(do (.preventDefault %) (swap! state-atom suggestion-select-choose))
                                   }])]])]]))))
-
-(defn typeahead
-  [& args]
-  (apply typeahead-base args))

      :tab   (swap! state-atom suggestion-select-next)
      true)))

(defn- typeahead-base
  "Returns markup for a typeahead text input"
  [& {:keys [model data-source] :as args}]
  {:pre [(validate-args-macro typeahead-args-desc args "typeahead")]}

      [& {:keys [model placeholder width height status-icon? status status-tooltip disabled? class style]
          :as   args}]
      {:pre [(validate-args-macro typeahead-args-desc args "typeahead")]}
      (let [{:keys [suggestions waiting? model suggestion-selected-index]} @state-atom
            width (or width "250px")]
        [v-box
         :width width
         :children
