diff --git a/CHANGES.md b/CHANGES.md index 2667f4c75..39f0a47a3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -76,6 +76,10 @@ - Fix fill collapsed options [Taiga #8351](https://tree.taiga.io/project/penpot/issue/8351) - Fix scroll on color picker modal [Taiga #8353](https://tree.taiga.io/project/penpot/issue/8353) - Fix components are not dragged from the group to the assets tab [Taiga #8273](https://tree.taiga.io/project/penpot/issue/8273) +- Fix problem with SVG import [Github #4888](https://github.com/penpot/penpot/issues/4888) +- Fix problem with overlay positions in viewer [Taiga #8464](https://tree.taiga.io/project/penpot/issue/8464) +- Fix layer panel overflowing [Taiga #8665](https://tree.taiga.io/project/penpot/issue/8665) +- Fix problem when creating a component instance from grid layout [Github #4881](https://github.com/penpot/penpot/issues/4881) ## 2.1.5 diff --git a/common/src/app/common/types/shape/layout.cljc b/common/src/app/common/types/shape/layout.cljc index a999145cb..9a71931cc 100644 --- a/common/src/app/common/types/shape/layout.cljc +++ b/common/src/app/common/types/shape/layout.cljc @@ -1622,13 +1622,17 @@ (defn remap-grid-cells "Remaps the shapes ids inside the cells" [shape ids-map] - (let [do-remap-cells + (let [remap-shape + (fn [id] + (get ids-map id id)) + + remap-cell (fn [cell] (-> cell - (update :shapes #(into [] (keep ids-map) %)))) + (update :shapes #(into [] (keep remap-shape) %)))) shape (-> shape - (update :layout-grid-cells update-vals do-remap-cells))] + (update :layout-grid-cells update-vals remap-cell))] shape)) (defn merge-cells diff --git a/frontend/src/app/main/data/workspace/svg_upload.cljs b/frontend/src/app/main/data/workspace/svg_upload.cljs index 169e2dd3e..6f04e7c66 100644 --- a/frontend/src/app/main/data/workspace/svg_upload.cljs +++ b/frontend/src/app/main/data/workspace/svg_upload.cljs @@ -73,7 +73,6 @@ (let [id (d/nilv id (uuid/next)) page-id (:current-page-id state) objects (wsh/lookup-page-objects state page-id) - frame-id (ctst/top-nested-frame objects position) selected (if ignore-selection? #{} (wsh/lookup-selected state)) base (cfh/get-base-shape objects selected) @@ -81,9 +80,16 @@ selected-frame? (and (= 1 (count selected)) (= :frame (dm/get-in objects [selected-id :type]))) + base-id (:parent-id base) + + frame-id (if (or selected-frame? (empty? selected) + (not= :frame (dm/get-in objects [base-id :type]))) + (ctst/top-nested-frame objects position) + base-id) + parent-id (if (or selected-frame? (empty? selected)) frame-id - (:parent-id base)) + base-id) [new-shape new-children] (csvg.shapes-builder/create-svg-shapes id svg-data position objects frame-id parent-id selected true) diff --git a/frontend/src/app/main/ui/viewer/shapes.cljs b/frontend/src/app/main/ui/viewer/shapes.cljs index 833a9fd79..0f9aec6bf 100644 --- a/frontend/src/app/main/ui/viewer/shapes.cljs +++ b/frontend/src/app/main/ui/viewer/shapes.cljs @@ -427,7 +427,8 @@ (let [childs (mapv #(get objects %) (:shapes (unchecked-get props "shape"))) props (obj/merge! #js {} props #js {:childs childs - :objects objects})] + :objects objects + :all-objects all-objects})] (when (not-empty childs) [:> group-wrapper props]))))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss b/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss index cd12ae572..c24801d0f 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss @@ -55,6 +55,7 @@ overflow-x: hidden; overflow-y: overlay; scrollbar-gutter: stable; + max-width: var(--width); } .pages-list {