   (:require [reagent.core :as r]))
 
 (declare DataFrisk)
+
+(def styles
+  {:shell {:backgroundColor "#FAFAFA"
+           :fontFamily "Consolas,Monaco,Courier New,monospace"
+           :fontSize "12px"
+           :z-index 9999}
+   :strings {:color "#4Ebb4E"}
+   :keywords {:color "purple"}
+   :numbers {:color "blue"}
+   :nil {:color "red"}
+   :shell-visible-button {:backgroundColor "#4EE24E"}})
 
 (defn ExpandButton [{:keys [expanded? path emit-fn]}]
   [:button {:style {:border 0

                  expanded-paths))))
      expanded-paths)))

(defn emit-fn-factory [state-atom id swappable]
  (fn [event & args]
    (case event

      :expand-all (swap! state-atom assoc-in [:data-frisk id :expanded-paths] (expand-all-paths (first args)))
      :contract (swap! state-atom update-in [:data-frisk id :expanded-paths] disj (first args))
      :collapse-all (swap! state-atom assoc-in [:data-frisk id :expanded-paths] #{})
      :copy (copy-to-clipboard (first args))
      :changed (let [[path value] args]
                 (if (seq path)
                   (swap! swappable assoc-in path value)
