     {}
     (cmp/react-select
       (merge props
-             {:components {:Control        autocomplete-control
-                           :Option         autocomplete-option
-                           :ValueContainer autocomplete-value-container
-                           :SingleValue    autocomplete-single-value
-                           }}))))+             {:components {:Control          autocomplete-control
+                           :Option           autocomplete-option
+                           :ValueContainer   autocomplete-value-container
+                           :SingleValue      autocomplete-single-value
+                           :Placeholder      autocomplete-placeholder
+                           :NoOptionsMessage autocomplete-no-options-mssg
+                           :Menu             autocomplete-menu}}))))
              :InputProps {:inputComponent autocomplete-input
                           :inputProps     (merge innerProps
                                                  {:style    {:display "flex"
                                                              :padding "10px 5px"}
                                                   :inputRef innerRef
                                                   :children children})}}))))


                    :backspaceRemovesValue true}
                   (dissoc p :inputRef))])))

(defn autocomplete-no-options-mssg [props]
  (let [{:keys [innerProps children]} (keywordize-keys (js->clj props))]
    (cmp/typography
      (merge innerProps
             {:color "textSecondary"
              :style {:padding "8px 16px"}}) children)))

(defn autocomplete-placeholder [props]
  (let [{:keys [innerProps children]} (keywordize-keys (js->clj props))]
    (cmp/typography
      (merge innerProps
             {:color "textSecondary"
              :style {:position "absolute"
                      :left     2
                      :fontSize 16
                      :padding  "10px 15px"}}) children)))

(defn autocomplete-single-value [props]
  (let [{:keys [innerProps children]} (keywordize-keys (js->clj props))]
    (cmp/typography
      (merge innerProps
             {:style {:fontSize 16}}) children)))

(defn autocomplete-menu [props]
  (let [{:keys [innerProps]} (keywordize-keys (js->clj props))]
    (cmp/paper
      (merge innerProps
             {:style {:position  "absolute"
                      :zIndex    1
                      :marginTop 8
                      :left      0
                      :right     0}}) (goog.object/get props "children"))))

(defn autocomplete-value-container [props]
  (html
