   [opts]
   (reify
     ptk/WatchEvent
-    (watch [_ state s]
-      (rx/from-coll
-       (->> (get-in state [:workspace :selected])
-            (map #(update-fill-attrs % opts)))))))
+    (watch [_ state stream]
+      (->> (get-in state [:workspace :selected])
+           (map #(update-fill-attrs % opts))
+           (rx/from-coll)))))
 
 (defn update-selected-shapes-stroke
   "Update the fill related attributed on


;; --- Delete Interaction

(defrecord DeleteInteracton [shape id]
  udp/IPageUpdate
  ptk/UpdateEvent
  (update [_ state]


;; --- Events (implicit) (for selected)

(deftype DeselectAll []
  ptk/UpdateEvent
  (update [_ state]
    (-> state
