mirror of
https://github.com/penpot/penpot.git
synced 2025-02-03 04:49:03 -05:00
176 lines
5.4 KiB
Clojure
176 lines
5.4 KiB
Clojure
(ns uxbox.ui.dashboard.elements
|
|
(:require [sablono.core :as html :refer-macros [html]]
|
|
[rum.core :as rum]
|
|
;; [uxbox.ui.library-bar :as ui.library-bar]
|
|
[uxbox.ui.icons :as i]
|
|
[uxbox.ui.lightbox :as lightbox]
|
|
[uxbox.ui.dom :as dom]
|
|
[uxbox.ui.mixins :as mx]
|
|
[uxbox.ui.util :as util]))
|
|
|
|
;; (def library-bar ui.library-bar/library-bar)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Menu
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(defn menu-render
|
|
[]
|
|
(let [pcount 20]
|
|
(html
|
|
[:section#dashboard-bar.dashboard-bar
|
|
[:div.dashboard-info
|
|
[:span.dashboard-projects pcount " projects"]
|
|
[:span "Sort by"]]
|
|
[:div.dashboard-search i/search]])))
|
|
|
|
(def ^:static menu
|
|
(util/component
|
|
{:render menu-render
|
|
:name "elements-menu"
|
|
:mixins [rum/reactive]}))
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Page Title
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(defn page-title-render
|
|
[]
|
|
(html
|
|
[:div.dashboard-title
|
|
[:h2 "Element library name"]
|
|
[:div.edition
|
|
[:span i/pencil]
|
|
[:span i/trash]]]))
|
|
|
|
(def ^:static page-title
|
|
(util/component
|
|
{:render page-title-render
|
|
:name "page-title"
|
|
:mixins [mx/static]}))
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Grid
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(defn grid-render
|
|
[own]
|
|
(html
|
|
[:div.dashboard-grid-content
|
|
[:div.grid-item.add-project
|
|
{on-click #(lightbox/set! :new-element)}
|
|
[:span "+ New element"]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]
|
|
[:div.grid-item.project-th
|
|
[:span.grid-item-image i/image]
|
|
[:h3 "Custom element"]
|
|
[:div.project-th-actions
|
|
[:div.project-th-icon.edit i/pencil]
|
|
[:div.project-th-icon.delete i/trash]]]]))
|
|
|
|
(def ^:static grid
|
|
(util/component
|
|
{:render grid-render
|
|
:name "grid"
|
|
:mixins [mx/static]}))
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Lightbox
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(defn- new-element-lightbox-render
|
|
[own]
|
|
(html
|
|
[:div.lightbox-body
|
|
[:h3 "New element"]
|
|
[:div.row-flex
|
|
[:div.lightbox-big-btn
|
|
[:span.big-svg i/shapes]
|
|
[:span.text "Go to workspace"]]
|
|
[:div.lightbox-big-btn
|
|
[:span.big-svg.upload i/exit]
|
|
[:span.text "Upload file"]]]
|
|
[:a.close {:href "#"
|
|
:on-click #(do (dom/prevent-default %)
|
|
(lightbox/close!))}
|
|
i/close]]))
|
|
|
|
(def new-element-lightbox
|
|
(util/component
|
|
{:render new-element-lightbox-render
|
|
:name "new-element-lightbox"}))
|
|
|
|
(defmethod lightbox/render-lightbox :new-element
|
|
[_]
|
|
(new-element-lightbox))
|