 ;; Attribute transformations
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(defn- extract-style-attrs
-  "Extract predefinet attrs from shapes."
-  [shape]
-  (select-keys shape [:fill :opacity :stroke :stroke-opacity :stroke-width
-                      :stroke-type]))
+(def ^:static ^:private +style-attrs+
+  #{:fill :opacity :stroke :stroke-opacity :stroke-width :stroke-type})
 
 (defn- transform-stroke-type
   [attrs]

  [{:keys [data id] :as shape} _]
  (let [key (str id)
        rfm (svg/calculate-transform shape)
        attrs (-> (extract-style-attrs shape)
                  (transform-attrs))
        attrs (merge {:id key :key key :transform rfm}
                     ;; (select-keys shape [:x :y :width :height])
                     (make-debug-attrs shape)
                     attrs)]
    (html
     [:g attrs data])))


  (let [key (str id)
        props (select-keys shape [:x1 :x2 :y2 :y1])
        attrs (-> (extract-style-attrs shape)
                  (merge {:id key :key key})
                  (merge props))]
    (html
