                         (contains? legal-sizes size) (str " c-icon--" (name size)))
          props        (-> props
                         (assoc :className classes)
-                        (dissoc :size :color))]
+                        (dissoc :size :color :glyph))]
      (dom/span (clj->js props) (if glyph
                                  (icon glyph)
                                  child)))))


(defn ui-card
  "Card component
   usage
   (c/ui-card {:title          \"Some Title\"
               :color          :primary | :accent
               :type           :bordered | :transparent | :square

      (when actions
        (dom/div #js {:className "c-card__actions"} actions))
      ;; TODO
      #_(when menu-items
        (dom/div #js {:className "c-card__menu"}
          (menu/menu :a
            (icon (if menu-icon menu-icon :more_vert))
            menu-items))))))

(defn ui-icon-bar
  "Render an icon bar using a vector of icons (each a map of attributes).
   Can optionally render vertically and/or shifting.
   Normal HTML/React attributes can be included, and should be a cljs map (not a js object).

   Usage
   (c/ui-icon-bar {:orientation  :vertical or :horizontal (default)
                   :shifting     :true
   ...)
   all parameters are optional
   "
  [{:keys [className orientation shifting] :as props :or {className ""}} & children]
  (let [user-classes    (get props :className "")
        top-level-class (cond-> (str user-classes " o-iconbar")
