mirror of
https://github.com/penpot/penpot.git
synced 2025-06-14 20:41:39 +02:00
Merge remote-tracking branch 'origin/staging' into develop
This commit is contained in:
commit
b676ea7127
17 changed files with 66 additions and 17 deletions
2
.github/workflows/commit-checker.yml
vendored
2
.github/workflows/commit-checker.yml
vendored
|
@ -26,7 +26,7 @@ jobs:
|
||||||
- name: Check Commit Type
|
- name: Check Commit Type
|
||||||
uses: gsactions/commit-message-checker@v2
|
uses: gsactions/commit-message-checker@v2
|
||||||
with:
|
with:
|
||||||
pattern: '^:(lipstick|globe_with_meridians|wrench|books|arrow_up|zap|ambulance|construction|boom|fire|whale|bug|sparkles|paperclip|tada|recycle):\s[A-Z].*[^.]$'
|
pattern: '^:(lipstick|globe_with_meridians|wrench|books|arrow_up|arrow_down|zap|ambulance|construction|boom|fire|whale|bug|sparkles|paperclip|tada|recycle):\s[A-Z].*[^.]$'
|
||||||
flags: 'gm'
|
flags: 'gm'
|
||||||
error: 'Commit should match CONTRIBUTING.md guideline'
|
error: 'Commit should match CONTRIBUTING.md guideline'
|
||||||
checkAllCommitMessages: 'true' # optional: this checks all commits associated with a pull request
|
checkAllCommitMessages: 'true' # optional: this checks all commits associated with a pull request
|
||||||
|
|
|
@ -84,6 +84,7 @@ Where type is:
|
||||||
- :whale: `:whale:` a commit for docker related stuff
|
- :whale: `:whale:` a commit for docker related stuff
|
||||||
- :paperclip: `:paperclip:` a commit with other not relevant changes
|
- :paperclip: `:paperclip:` a commit with other not relevant changes
|
||||||
- :arrow_up: `:arrow_up:` a commit with dependencies updates
|
- :arrow_up: `:arrow_up:` a commit with dependencies updates
|
||||||
|
- :arrow_down: `:arrow_down:` a commit with dependencies downgrades
|
||||||
- :fire: `:fire:` a commit that removes files or code
|
- :fire: `:fire:` a commit that removes files or code
|
||||||
|
|
||||||
More info:
|
More info:
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
org.postgresql/postgresql {:mvn/version "42.7.5"}
|
org.postgresql/postgresql {:mvn/version "42.7.5"}
|
||||||
org.xerial/sqlite-jdbc {:mvn/version "3.48.0.0"}
|
org.xerial/sqlite-jdbc {:mvn/version "3.48.0.0"}
|
||||||
|
|
||||||
com.zaxxer/HikariCP {:mvn/version "6.0.0"}
|
com.zaxxer/HikariCP {:mvn/version "6.2.1"}
|
||||||
|
|
||||||
io.whitfin/siphash {:mvn/version "2.0.0"}
|
io.whitfin/siphash {:mvn/version "2.0.0"}
|
||||||
|
|
||||||
|
@ -59,8 +59,7 @@
|
||||||
|
|
||||||
;; Pretty Print specs
|
;; Pretty Print specs
|
||||||
pretty-spec/pretty-spec {:mvn/version "0.1.4"}
|
pretty-spec/pretty-spec {:mvn/version "0.1.4"}
|
||||||
software.amazon.awssdk/s3 {:mvn/version "2.30.7"}
|
software.amazon.awssdk/s3 {:mvn/version "2.28.26"}}
|
||||||
}
|
|
||||||
|
|
||||||
:paths ["src" "resources" "target/classes"]
|
:paths ["src" "resources" "target/classes"]
|
||||||
:aliases
|
:aliases
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
[app.common.exceptions :as ex]
|
[app.common.exceptions :as ex]
|
||||||
[app.common.flags :as flags]
|
[app.common.flags :as flags]
|
||||||
[app.common.schema :as sm]
|
[app.common.schema :as sm]
|
||||||
|
[app.common.uri :as u]
|
||||||
[app.common.version :as v]
|
[app.common.version :as v]
|
||||||
[app.util.overrides]
|
[app.util.overrides]
|
||||||
[app.util.time :as dt]
|
[app.util.time :as dt]
|
||||||
|
@ -230,7 +231,14 @@
|
||||||
|
|
||||||
(defn- parse-flags
|
(defn- parse-flags
|
||||||
[config]
|
[config]
|
||||||
(flags/parse flags/default (:flags config)))
|
(let [public-uri (c/get config :public-uri)
|
||||||
|
public-uri (some-> public-uri (u/uri))
|
||||||
|
extra-flags (if (and public-uri
|
||||||
|
(= (:scheme public-uri) "http")
|
||||||
|
(not= (:host public-uri) "localhost"))
|
||||||
|
#{:disable-secure-session-cookies}
|
||||||
|
#{})]
|
||||||
|
(flags/parse flags/default extra-flags (:flags config))))
|
||||||
|
|
||||||
(defn read-env
|
(defn read-env
|
||||||
[prefix]
|
[prefix]
|
||||||
|
|
|
@ -58,7 +58,8 @@
|
||||||
[:welcome-file-id {:optional true} [:maybe ::sm/boolean]]
|
[:welcome-file-id {:optional true} [:maybe ::sm/boolean]]
|
||||||
[:release-notes-viewed {:optional true}
|
[:release-notes-viewed {:optional true}
|
||||||
[::sm/text {:max 100}]]
|
[::sm/text {:max 100}]]
|
||||||
[:notifications {:optional true} schema:props-notifications]])
|
[:notifications {:optional true} schema:props-notifications]
|
||||||
|
[:workspace-visited {:optional true} ::sm/boolean]])
|
||||||
|
|
||||||
(def schema:profile
|
(def schema:profile
|
||||||
[:map {:title "Profile"}
|
[:map {:title "Profile"}
|
||||||
|
|
|
@ -51,6 +51,7 @@
|
||||||
[app.main.data.workspace.collapse :as dwco]
|
[app.main.data.workspace.collapse :as dwco]
|
||||||
[app.main.data.workspace.colors :as dwcl]
|
[app.main.data.workspace.colors :as dwcl]
|
||||||
[app.main.data.workspace.comments :as dwcm]
|
[app.main.data.workspace.comments :as dwcm]
|
||||||
|
[app.main.data.workspace.common :as dwc]
|
||||||
[app.main.data.workspace.drawing :as dwd]
|
[app.main.data.workspace.drawing :as dwd]
|
||||||
[app.main.data.workspace.edition :as dwe]
|
[app.main.data.workspace.edition :as dwe]
|
||||||
[app.main.data.workspace.fix-broken-shapes :as fbs]
|
[app.main.data.workspace.fix-broken-shapes :as fbs]
|
||||||
|
@ -393,7 +394,7 @@
|
||||||
|
|
||||||
(defn finalize-workspace
|
(defn finalize-workspace
|
||||||
[file-id]
|
[file-id]
|
||||||
(ptk/reify ::finalize-file
|
(ptk/reify ::finalize-workspace
|
||||||
ptk/UpdateEvent
|
ptk/UpdateEvent
|
||||||
(update [_ state]
|
(update [_ state]
|
||||||
(-> state
|
(-> state
|
||||||
|
@ -416,6 +417,7 @@
|
||||||
(dpj/finalize-project project-id)
|
(dpj/finalize-project project-id)
|
||||||
(dwsl/finalize-shape-layout)
|
(dwsl/finalize-shape-layout)
|
||||||
(dwcl/stop-picker)
|
(dwcl/stop-picker)
|
||||||
|
(dwc/set-workspace-visited)
|
||||||
(modal/hide)
|
(modal/hide)
|
||||||
(ntf/hide))))))
|
(ntf/hide))))))
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
(ns app.main.data.workspace.common
|
(ns app.main.data.workspace.common
|
||||||
(:require
|
(:require
|
||||||
[app.common.logging :as log]
|
[app.common.logging :as log]
|
||||||
|
[app.config :as cf]
|
||||||
|
[app.main.data.profile :as du]
|
||||||
[app.main.data.workspace.layout :as dwl]
|
[app.main.data.workspace.layout :as dwl]
|
||||||
[beicon.v2.core :as rx]
|
[beicon.v2.core :as rx]
|
||||||
[potok.v2.core :as ptk]))
|
[potok.v2.core :as ptk]))
|
||||||
|
@ -29,6 +31,15 @@
|
||||||
[e]
|
[e]
|
||||||
(= e :interrupt))
|
(= e :interrupt))
|
||||||
|
|
||||||
|
(defn set-workspace-visited
|
||||||
|
[]
|
||||||
|
(ptk/reify ::set-workspace-visited
|
||||||
|
ptk/WatchEvent
|
||||||
|
(watch [_ state _]
|
||||||
|
(let [profile (:profile state)
|
||||||
|
props (get profile :props)]
|
||||||
|
(when (and (cf/external-feature-flag "boards-03" "test") (not (:workspace-visited props)))
|
||||||
|
(rx/of (du/update-profile-props {:workspace-visited true})))))))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; UNDO
|
;; UNDO
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
[app.main.data.changes :as dch]
|
[app.main.data.changes :as dch]
|
||||||
[app.main.data.helpers :as dsh]
|
[app.main.data.helpers :as dsh]
|
||||||
[app.main.data.persistence :as-alias dps]
|
[app.main.data.persistence :as-alias dps]
|
||||||
|
[app.main.data.workspace.common :as dwc]
|
||||||
[app.main.data.workspace.notifications :as-alias wnt]
|
[app.main.data.workspace.notifications :as-alias wnt]
|
||||||
[app.main.rasterizer :as thr]
|
[app.main.rasterizer :as thr]
|
||||||
[app.main.refs :as refs]
|
[app.main.refs :as refs]
|
||||||
|
@ -291,4 +292,10 @@
|
||||||
(rx/mapcat #(into #{} %))
|
(rx/mapcat #(into #{} %))
|
||||||
(rx/map #(update-thumbnail file-id page-id % "frame" "watch-state-changes"))))
|
(rx/map #(update-thumbnail file-id page-id % "frame" "watch-state-changes"))))
|
||||||
|
|
||||||
|
;; WARNING: This is a workaround for an AB test, in case we consolidate this change we should
|
||||||
|
;; find a better way to handle this.
|
||||||
|
(->> notifier-s
|
||||||
|
(rx/take 1)
|
||||||
|
(rx/map dwc/set-workspace-visited))
|
||||||
|
|
||||||
(rx/take-until stopper-s))))))
|
(rx/take-until stopper-s))))))
|
||||||
|
|
|
@ -1258,8 +1258,8 @@
|
||||||
[:div {:class (stl/css :cover)
|
[:div {:class (stl/css :cover)
|
||||||
:on-click on-click*}
|
:on-click on-click*}
|
||||||
[:div {:class (stl/css :location)}
|
[:div {:class (stl/css :location)}
|
||||||
[:> icon* {:icon-id "comments"
|
[:div {:class (stl/css :location-icon)}
|
||||||
:class (stl/css :location-icon)}]
|
[:> icon* {:icon-id "comments"}]]
|
||||||
[:div {:class (stl/css :location-text)}
|
[:div {:class (stl/css :location-text)}
|
||||||
(str "#" (:seqn item))
|
(str "#" (:seqn item))
|
||||||
(str " " (:file-name item))
|
(str " " (:file-name item))
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
color: var(--comment-subtitle-color);
|
color: var(--comment-subtitle-color);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: $s-8;
|
gap: $s-6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.location-icon {
|
.location-icon {
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
.thread-groups {
|
.thread-groups {
|
||||||
height: calc(100% - $s-32);
|
height: calc(100% - $s-32);
|
||||||
overflow-y: scroll;
|
|
||||||
max-height: $s-440;
|
max-height: $s-440;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
@ -72,6 +71,7 @@
|
||||||
max-height: $s-480;
|
max-height: $s-480;
|
||||||
min-height: $s-200;
|
min-height: $s-200;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
overflow: hidden;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
z-index: $z-index-4;
|
z-index: $z-index-4;
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
[app.common.data.macros :as dm]
|
[app.common.data.macros :as dm]
|
||||||
[app.common.geom.point :as gpt]
|
[app.common.geom.point :as gpt]
|
||||||
[app.common.media :as cm]
|
[app.common.media :as cm]
|
||||||
|
[app.config :as cf]
|
||||||
[app.main.data.event :as ev]
|
[app.main.data.event :as ev]
|
||||||
[app.main.data.modal :as modal]
|
[app.main.data.modal :as modal]
|
||||||
[app.main.data.workspace :as dw]
|
[app.main.data.workspace :as dw]
|
||||||
|
@ -120,7 +121,15 @@
|
||||||
(mf/use-fn
|
(mf/use-fn
|
||||||
(fn [event]
|
(fn [event]
|
||||||
(dom/blur! (dom/get-target event))
|
(dom/blur! (dom/get-target event))
|
||||||
(st/emit! (dwc/toggle-toolbar-visibility))))]
|
(st/emit! (dwc/toggle-toolbar-visibility))))
|
||||||
|
|
||||||
|
profile (mf/deref refs/profile)
|
||||||
|
props (get profile :props)
|
||||||
|
test-tooltip-board-text
|
||||||
|
(if (and (cf/external-feature-flag "boards-03" "test")
|
||||||
|
(not (:workspace-visited props)))
|
||||||
|
(tr "workspace.toolbar.frame-first-time" (sc/get-tooltip :draw-frame))
|
||||||
|
(tr "workspace.toolbar.frame" (sc/get-tooltip :draw-frame)))]
|
||||||
|
|
||||||
(when-not ^boolean read-only?
|
(when-not ^boolean read-only?
|
||||||
[:aside {:class (stl/css-case :main-toolbar true
|
[:aside {:class (stl/css-case :main-toolbar true
|
||||||
|
@ -140,7 +149,7 @@
|
||||||
[:*
|
[:*
|
||||||
[:li
|
[:li
|
||||||
[:button
|
[:button
|
||||||
{:title (tr "workspace.toolbar.frame" (sc/get-tooltip :draw-frame))
|
{:title test-tooltip-board-text
|
||||||
:aria-label (tr "workspace.toolbar.frame" (sc/get-tooltip :draw-frame))
|
:aria-label (tr "workspace.toolbar.frame" (sc/get-tooltip :draw-frame))
|
||||||
:class (stl/css-case :main-toolbar-options-button true :selected (= selected-drawtool :frame))
|
:class (stl/css-case :main-toolbar-options-button true :selected (= selected-drawtool :frame))
|
||||||
:on-click select-drawtool
|
:on-click select-drawtool
|
||||||
|
|
|
@ -301,6 +301,7 @@
|
||||||
|
|
||||||
(when show-comments?
|
(when show-comments?
|
||||||
[:> comments/comments-layer* {:vbox vbox
|
[:> comments/comments-layer* {:vbox vbox
|
||||||
|
:page-id page-id
|
||||||
:file-id file-id
|
:file-id file-id
|
||||||
:vport vport
|
:vport vport
|
||||||
:zoom zoom
|
:zoom zoom
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
[rumext.v2 :as mf]))
|
[rumext.v2 :as mf]))
|
||||||
|
|
||||||
(mf/defc comments-layer*
|
(mf/defc comments-layer*
|
||||||
[{:keys [vbox vport zoom drawing file-id]}]
|
[{:keys [vbox vport zoom drawing file-id page-id]}]
|
||||||
(let [vbox-x (dm/get-prop vbox :x)
|
(let [vbox-x (dm/get-prop vbox :x)
|
||||||
vbox-y (dm/get-prop vbox :y)
|
vbox-y (dm/get-prop vbox :y)
|
||||||
vport-w (dm/get-prop vport :width)
|
vport-w (dm/get-prop vport :width)
|
||||||
|
@ -31,8 +31,9 @@
|
||||||
threads-map (mf/deref refs/threads)
|
threads-map (mf/deref refs/threads)
|
||||||
|
|
||||||
threads
|
threads
|
||||||
(mf/with-memo [threads-map local profile]
|
(mf/with-memo [threads-map local profile page-id]
|
||||||
(->> (vals threads-map)
|
(->> (vals threads-map)
|
||||||
|
(filter #(= (:page-id %) page-id))
|
||||||
(dcm/apply-filters local profile)))
|
(dcm/apply-filters local profile)))
|
||||||
|
|
||||||
viewport
|
viewport
|
||||||
|
|
|
@ -343,6 +343,7 @@
|
||||||
|
|
||||||
(when show-comments?
|
(when show-comments?
|
||||||
[:> comments/comments-layer* {:vbox vbox
|
[:> comments/comments-layer* {:vbox vbox
|
||||||
|
:page-id page-id
|
||||||
:vport vport
|
:vport vport
|
||||||
:zoom zoom
|
:zoom zoom
|
||||||
:drawing drawing}])
|
:drawing drawing}])
|
||||||
|
|
|
@ -6761,10 +6761,14 @@ msgstr "Curve (%s)"
|
||||||
msgid "workspace.toolbar.ellipse"
|
msgid "workspace.toolbar.ellipse"
|
||||||
msgstr "Ellipse (%s)"
|
msgstr "Ellipse (%s)"
|
||||||
|
|
||||||
#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
|
#: src/app/main/ui/workspace/top_toolbar.cljs:128, src/app/main/ui/workspace/top_toolbar.cljs:144
|
||||||
msgid "workspace.toolbar.frame"
|
msgid "workspace.toolbar.frame"
|
||||||
msgstr "Board (%s)"
|
msgstr "Board (%s)"
|
||||||
|
|
||||||
|
#: src/app/main/ui/workspace/top_toolbar.cljs:128, src/app/main/ui/workspace/top_toolbar.cljs:144
|
||||||
|
msgid "workspace.toolbar.frame-first-time"
|
||||||
|
msgstr "Create board. Click and drag to define its size. (%s)"
|
||||||
|
|
||||||
#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
|
#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
|
||||||
msgid "workspace.toolbar.image"
|
msgid "workspace.toolbar.image"
|
||||||
msgstr "Image (%s)"
|
msgstr "Image (%s)"
|
||||||
|
|
|
@ -6761,10 +6761,14 @@ msgstr "Curva (%s)"
|
||||||
msgid "workspace.toolbar.ellipse"
|
msgid "workspace.toolbar.ellipse"
|
||||||
msgstr "Elipse (%s)"
|
msgstr "Elipse (%s)"
|
||||||
|
|
||||||
#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
|
#: src/app/main/ui/workspace/top_toolbar.cljs:128, src/app/main/ui/workspace/top_toolbar.cljs:144
|
||||||
msgid "workspace.toolbar.frame"
|
msgid "workspace.toolbar.frame"
|
||||||
msgstr "Tablero (%s)"
|
msgstr "Tablero (%s)"
|
||||||
|
|
||||||
|
#: src/app/main/ui/workspace/top_toolbar.cljs:128, src/app/main/ui/workspace/top_toolbar.cljs:144
|
||||||
|
msgid "workspace.toolbar.frame-first-time"
|
||||||
|
msgstr "Crear tablero. Click y arrastrar para definir el tamaño. (%s)"
|
||||||
|
|
||||||
#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
|
#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
|
||||||
msgid "workspace.toolbar.image"
|
msgid "workspace.toolbar.image"
|
||||||
msgstr "Imagen (%s)"
|
msgstr "Imagen (%s)"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue