mirror of
https://github.com/penpot/penpot.git
synced 2026-09-10 14:09:17 +00:00
Merge tag '2.13.0-RC10'
This commit is contained in:
commit
d215a5c402
@ -45,6 +45,15 @@
|
|||||||
:potok/reify-type
|
:potok/reify-type
|
||||||
{:level :error}
|
{:level :error}
|
||||||
|
|
||||||
|
:redundant-primitive-coercion
|
||||||
|
{:level :off}
|
||||||
|
|
||||||
|
:unused-excluded-var
|
||||||
|
{:level :off}
|
||||||
|
|
||||||
|
:unresolved-excluded-var
|
||||||
|
{:level :off}
|
||||||
|
|
||||||
:missing-protocol-method
|
:missing-protocol-method
|
||||||
{:level :off}
|
{:level :off}
|
||||||
|
|
||||||
|
|||||||
14
.github/workflows/plugins-deploy-api-doc.yml
vendored
14
.github/workflows/plugins-deploy-api-doc.yml
vendored
@ -110,4 +110,16 @@ jobs:
|
|||||||
workingDirectory: plugins
|
workingDirectory: plugins
|
||||||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
command: deploy --config wrangle-penpot-plugins-api-doc.toml --name ${{ env.WORKER_NAME }}
|
command: deploy --config wrangler-penpot-plugins-api-doc.toml --name ${{ env.WORKER_NAME }}
|
||||||
|
|
||||||
|
- name: Notify Mattermost
|
||||||
|
if: failure()
|
||||||
|
uses: mattermost/action-mattermost-notify@master
|
||||||
|
with:
|
||||||
|
MATTERMOST_WEBHOOK_URL: ${{ secrets.MATTERMOST_WEBHOOK }}
|
||||||
|
MATTERMOST_CHANNEL: bot-alerts-cicd
|
||||||
|
TEXT: |
|
||||||
|
❌ 🧩📚 *[PENPOT PLUGINS] Error deploying API documentation.*
|
||||||
|
📄 Triggered from ref: `${{ inputs.gh_ref }}`
|
||||||
|
🔗 Run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||||
|
@infra
|
||||||
|
|||||||
@ -36,7 +36,8 @@
|
|||||||
- Fix exception on uploading large fonts [Github #8135](https://github.com/penpot/penpot/pull/8135)
|
- Fix exception on uploading large fonts [Github #8135](https://github.com/penpot/penpot/pull/8135)
|
||||||
- Fix unhandled exception on open-new-window helper [Github #7787](https://github.com/penpot/penpot/issues/7787)
|
- Fix unhandled exception on open-new-window helper [Github #7787](https://github.com/penpot/penpot/issues/7787)
|
||||||
- Fix incorrect handling of input values on layout gap and padding inputs [Github #8113](https://github.com/penpot/penpot/issues/8113)
|
- Fix incorrect handling of input values on layout gap and padding inputs [Github #8113](https://github.com/penpot/penpot/issues/8113)
|
||||||
|
- Fix several race conditions on path editor [Github #8187](https://github.com/penpot/penpot/pull/8187)
|
||||||
|
- Fix app freeze when introducing an error on a very long token name [Taiga #13214](https://tree.taiga.io/project/penpot/issue/13214)
|
||||||
|
|
||||||
## 2.12.1
|
## 2.12.1
|
||||||
|
|
||||||
|
|||||||
@ -873,11 +873,8 @@
|
|||||||
(import-storage-objects cfg)
|
(import-storage-objects cfg)
|
||||||
|
|
||||||
(let [files (get manifest :files)
|
(let [files (get manifest :files)
|
||||||
result (reduce (fn [result {:keys [id] :as file}]
|
result (reduce (fn [result file]
|
||||||
(let [name' (get file :name)
|
(let [name' (get file :name)
|
||||||
name' (if (map? name)
|
|
||||||
(get name id)
|
|
||||||
name')
|
|
||||||
file (assoc file :name name')]
|
file (assoc file :name name')]
|
||||||
(conj result (import-file cfg file))))
|
(conj result (import-file cfg file))))
|
||||||
[]
|
[]
|
||||||
|
|||||||
@ -99,7 +99,7 @@
|
|||||||
|
|
||||||
(def token-name-ref
|
(def token-name-ref
|
||||||
[:re {:title "TokenNameRef" :gen/gen sg/text}
|
[:re {:title "TokenNameRef" :gen/gen sg/text}
|
||||||
#"^(?!\$)([a-zA-Z0-9-$_]+\.?)*(?<!\.)$"])
|
#"^[a-zA-Z0-9_-][a-zA-Z0-9$_-]*(\.[a-zA-Z0-9$_-]+)*$"])
|
||||||
|
|
||||||
(def ^:private schema:color
|
(def ^:private schema:color
|
||||||
[:map
|
[:map
|
||||||
|
|||||||
@ -70,20 +70,22 @@
|
|||||||
(= (-> content last :command) :move-to))
|
(= (-> content last :command) :move-to))
|
||||||
(into [] (take (dec (count content)) content))
|
(into [] (take (dec (count content)) content))
|
||||||
content)]
|
content)]
|
||||||
(-> state
|
(st/set-content state content)))
|
||||||
(st/set-content content))))
|
|
||||||
|
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [it state _]
|
(watch [it state _]
|
||||||
(let [page-id (:current-page-id state)
|
(let [page-id (:current-page-id state)
|
||||||
objects (dsh/lookup-page-objects state page-id)
|
local (get state :workspace-local)
|
||||||
id (dm/get-in state [:workspace-local :edition])
|
id (get local :edition)
|
||||||
old-content (dm/get-in state [:workspace-local :edit-path id :old-content])
|
objects (dsh/lookup-page-objects state page-id)]
|
||||||
shape (st/get-path state)]
|
|
||||||
|
|
||||||
(if (and (some? old-content) (some? (:id shape)))
|
;; NOTE: we proceed only if the shape is present on the
|
||||||
(let [changes (generate-path-changes it objects page-id shape old-content (:content shape))]
|
;; objects, if shape is a ephimeral drawing shape, we should
|
||||||
(rx/of (dch/commit-changes changes)))
|
;; do nothing
|
||||||
(rx/empty)))))))
|
(when-let [shape (get objects id)]
|
||||||
|
(when-let [old-content (dm/get-in local [:edit-path id :old-content])]
|
||||||
|
(let [new-content (get shape :content)
|
||||||
|
changes (generate-path-changes it objects page-id shape old-content new-content)]
|
||||||
|
(rx/of (dch/commit-changes changes))))))))))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,6 @@
|
|||||||
(:require
|
(:require
|
||||||
[app.common.data :as d]
|
[app.common.data :as d]
|
||||||
[app.common.data.macros :as dm]
|
[app.common.data.macros :as dm]
|
||||||
[app.common.files.helpers :as cfh]
|
|
||||||
[app.common.geom.point :as gpt]
|
[app.common.geom.point :as gpt]
|
||||||
[app.common.types.path :as path]
|
[app.common.types.path :as path]
|
||||||
[app.common.types.path.helpers :as path.helpers]
|
[app.common.types.path.helpers :as path.helpers]
|
||||||
@ -289,34 +288,34 @@
|
|||||||
|
|
||||||
(declare stop-path-edit)
|
(declare stop-path-edit)
|
||||||
|
|
||||||
|
|
||||||
(defn start-path-edit
|
(defn start-path-edit
|
||||||
[id]
|
[id]
|
||||||
(ptk/reify ::start-path-edit
|
(ptk/reify ::start-path-edit
|
||||||
ptk/UpdateEvent
|
ptk/UpdateEvent
|
||||||
(update [_ state]
|
(update [_ state]
|
||||||
(let [objects (dsh/lookup-page-objects state)
|
(let [objects (dsh/lookup-page-objects state)
|
||||||
edit-path (dm/get-in state [:workspace-local :edit-path id])
|
shape (get objects id)]
|
||||||
content (st/get-path state :content)
|
|
||||||
state (cond-> state
|
|
||||||
(cfh/path-shape? objects id)
|
|
||||||
(st/set-content (path/close-subpaths content)))]
|
|
||||||
|
|
||||||
(cond-> state
|
(-> state
|
||||||
(or (not edit-path)
|
(st/set-content (path/close-subpaths (:content shape)))
|
||||||
(= :draw (:edit-mode edit-path)))
|
(update-in [:workspace-local :edit-path id]
|
||||||
(assoc-in [:workspace-local :edit-path id] {:edit-mode :move
|
(fn [state]
|
||||||
:selected #{}
|
(let [state (if state
|
||||||
:snap-toggled false})
|
(if (= :move (:edit-mode state))
|
||||||
(and (some? edit-path)
|
(assoc state :edit-mode :draw)
|
||||||
(= :move (:edit-mode edit-path)))
|
state)
|
||||||
(assoc-in [:workspace-local :edit-path id :edit-mode] :draw))))
|
{:edit-mode :move
|
||||||
|
:selected #{}
|
||||||
|
:snap-toggled false})]
|
||||||
|
(assoc state :old-content (:content shape))))))))
|
||||||
|
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [_ _ stream]
|
(watch [_ _ stream]
|
||||||
(let [stopper (->> stream
|
(let [stopper (rx/filter #(let [type (ptk/type %)]
|
||||||
(rx/filter #(let [type (ptk/type %)]
|
(= type ::dwe/clear-edition-mode)
|
||||||
(= type ::dwe/clear-edition-mode)
|
(= type ::start-path-edit))
|
||||||
(= type ::start-path-edit))))]
|
stream)]
|
||||||
(rx/concat
|
(rx/concat
|
||||||
(rx/of (undo/start-path-undo))
|
(rx/of (undo/start-path-undo))
|
||||||
(->> stream
|
(->> stream
|
||||||
@ -325,7 +324,8 @@
|
|||||||
(rx/map #(stop-path-edit id))
|
(rx/map #(stop-path-edit id))
|
||||||
(rx/take-until stopper)))))))
|
(rx/take-until stopper)))))))
|
||||||
|
|
||||||
(defn stop-path-edit [id]
|
(defn stop-path-edit
|
||||||
|
[id]
|
||||||
(ptk/reify ::stop-path-edit
|
(ptk/reify ::stop-path-edit
|
||||||
ptk/UpdateEvent
|
ptk/UpdateEvent
|
||||||
(update [_ state]
|
(update [_ state]
|
||||||
@ -335,13 +335,12 @@
|
|||||||
(watch [_ _ _]
|
(watch [_ _ _]
|
||||||
(rx/of (ptk/data-event :layout/update {:ids [id]})))))
|
(rx/of (ptk/data-event :layout/update {:ids [id]})))))
|
||||||
|
|
||||||
(defn split-segments
|
(defn- split-segments
|
||||||
[{:keys [from-p to-p t]}]
|
[id {:keys [from-p to-p t]}]
|
||||||
(ptk/reify ::split-segments
|
(ptk/reify ::split-segments
|
||||||
ptk/UpdateEvent
|
ptk/UpdateEvent
|
||||||
(update [_ state]
|
(update [_ state]
|
||||||
(let [id (st/get-path-id state)
|
(let [content (st/get-path state :content)]
|
||||||
content (st/get-path state :content)]
|
|
||||||
(-> state
|
(-> state
|
||||||
(assoc-in [:workspace-local :edit-path id :old-content] content)
|
(assoc-in [:workspace-local :edit-path id :old-content] content)
|
||||||
(st/set-content (-> content
|
(st/set-content (-> content
|
||||||
@ -353,10 +352,10 @@
|
|||||||
(rx/of (changes/save-path-content {:preserve-move-to true})))))
|
(rx/of (changes/save-path-content {:preserve-move-to true})))))
|
||||||
|
|
||||||
(defn create-node-at-position
|
(defn create-node-at-position
|
||||||
[event]
|
[params]
|
||||||
(ptk/reify ::create-node-at-position
|
(ptk/reify ::create-node-at-position
|
||||||
ptk/WatchEvent
|
ptk/WatchEvent
|
||||||
(watch [_ state _]
|
(watch [_ state _]
|
||||||
(let [id (st/get-path-id state)]
|
(let [id (st/get-path-id state)]
|
||||||
(rx/of (dwsh/update-shapes [id] path/convert-to-path)
|
(rx/of (dwsh/update-shapes [id] path/convert-to-path)
|
||||||
(split-segments event))))))
|
(split-segments id params))))))
|
||||||
|
|||||||
@ -1,4 +0,0 @@
|
|||||||
name = "penpot-plugins-api-doc"
|
|
||||||
compatibility_date = "2025-01-01"
|
|
||||||
|
|
||||||
assets = { directory = "dist/doc" }
|
|
||||||
Loading…
x
Reference in New Issue
Block a user