 
                 (when (:keep me)
                   (if-let [prompt (first (:prompt me))]
-                    [:div.panel.blue-shade
+                    [:div.panel.blue-shade { :on-mouse-over #(if-let [code (get-card-code %1)] (put! zoom-channel {:code code}))
+                                             :on-mouse-out #(if-let [code (get-card-code %1)] (put! zoom-channel false))}
                      [:h4 (for [item (get-message-parts (:msg prompt))] (create-span item))]
                      (if-let [n (get-in prompt [:choices :number])]
                        [:div

(defn get-message-parts [text]
  (let [with-image-codes (add-image-codes (if (nil? text) "" text))]
      (.split with-image-codes (js/RegExp. "(\\[[^\\]]*])" "g"))))

(defn log-pane [messages owner]
  (reify

  (if-let [class (anr-icons item)]
    [:span {:class (str "anr-icon " class)}]
  (if-let [[title code] (extract-card-info item)]
    [:span {:class "fake-link" :title code} title]
  [:span item])))

(defn add-image-codes [text]
