          examples-strings :examples-strings
          sign :signature
          related :related} sym-doc-map
-         desc (or desc docstring)       ; some symbols don't have a description so we use
+        desc (or desc docstring) ; some symbols don't have a description so we use
                                         ; the docstring instead; docstring is a regular string,
                                         ; without markdown. Nonetheless, it will be passed to
                                         ; md->react->component function to gain some basic html
                                         ; formatting (like paragraphs)
-         examples (map (fn [html string] {:html html :strings string}) examples-htmls examples-strings)
-         popover-width  400
-         popover-height 400
-         popover-content-width (- popover-width (* 2 14) 15)] ; bootstrap padding + scrollbar width
-    [popover-content-wrapper
-     :showing? showing?
-     :position @popover-position
-     :on-cancel (handler-fn (reset! showing? false))
-     :style {:max-height (str popover-height)
-             :max-width (str popover-width)}
-     :backdrop-opacity 0.1
-     :close-button? false
-     :title [h-box
-             :gap "6px"
-             :align :center
-             :children [[title
-                         :label name
-                         :level :level4]
-                        [md-icon-button
-                         :md-icon-name "zmdi-info"
-                         :tooltip "See online documentation"
-                         :tooltip-position :right-center
-                         :size :smaller
-                         :style {:justify-content :center}
-                         :on-click #(utils/open-new-window (utils/symbol->clojuredocs-url full-name))]]]
-     :body [(fn []
-              [scroller
-               :size "1 1 auto"
-               :max-width (str popover-width)
-               :max-height (str (- popover-height 50))
-               :scroll :auto
-               :child [v-box
-                       :size "1 1 auto"
-                       :gap "8px"
-                       :width (str popover-content-width)
-                       :style {:padding "4px"}
-                       :children [(when (not-empty sign)
-                                    [build-signatures-ui sign])
-                                  (when (not-empty desc)
-                                    [build-symbol-description-ui desc])
-                                  (when (not-empty related)
-                                    [build-related-symbols-ui related])
-                                  (when (not-empty examples)
-                                    [build-examples-ui examples showing?])]]])]]))
+        examples (map (fn [html string] {:html html :strings string}) examples-htmls examples-strings)
+        popover-width  400
+        popover-height 400
+        popover-content-width (- popover-width (* 2 14) 15)] ; bootstrap padding + scrollbar width
+    (fn symbol-popover-form2 [showing-atom position-atom sym-doc-map]
+      [popover-content-wrapper
+       :showing? showing-atom
+       :position @position-atom
+       :on-cancel (handler-fn (reset! showing-atom false))
+       :style {:max-height (str popover-height)
+               :max-width (str popover-width)}
+       :backdrop-opacity 0.1
+       :close-button? false
+       :title [h-box
+               :gap "6px"
+               :align :center
+               :children [[title
+                           :label name
+                           :level :level4]
+                          [md-icon-button
+                           :md-icon-name "zmdi-info"
+                           :tooltip "See online documentation"
+                           :tooltip-position :right-center
+                           :size :smaller
+                           :style {:justify-content :center}
+                           :on-click #(utils/open-new-window (utils/symbol->clojuredocs-url full-name))]]]
+       :body [(fn []
+                [scroller
+                 :size "1 1 auto"
+                 :max-width (str popover-width)
+                 :max-height (str (- popover-height 50))
+                 :scroll :auto
+                 :child [v-box
+                         :size "1 1 auto"
+                         :gap "8px"
+                         :width (str popover-content-width)
+                         :style {:padding "4px"}
+                         :children [(when (not-empty sign)
+                                      [api-signatures sign])
+                                    (when (not-empty desc)
+                                      [api-symbol-description desc])
+                                    (when (not-empty related)
+                                      [api-related-symbols related])
+                                    (when (not-empty examples)
+                                      [api-examples showing-atom examples])]]])]])))
+
 (defn api-symbol
   "Builds the UI for a single symbol. Will be a button."
   [symbol]

                            :href (utils/symbol->clojuredocs-url rel)
                            :target "_blank"])]]])

(defn example-ui
  "The (single) example, usually monospaced, html UI. Wants a map {:html ... :strings}."
  [example-map]
  {:pre [(:strings example-map) (:html example-map)]}

              ;; AR - markdown->react component solves issue #
              [label :label [md/md->react-component desc]]]])

(defn api-related-symbols
  "Builds the UI for related symbols in the popover."
  [related]
  [v-box
