From 77ef8e6fe637985f56793c3adf69d2121ca096f4 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Thu, 11 Dec 2025 10:46:54 +0100 Subject: [PATCH 1/6] :bug: Fix scroll on move library modal (#7952) --- frontend/src/app/main/ui/delete_shared.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/main/ui/delete_shared.scss b/frontend/src/app/main/ui/delete_shared.scss index 8e06bb4720..d0f08a50e8 100644 --- a/frontend/src/app/main/ui/delete_shared.scss +++ b/frontend/src/app/main/ui/delete_shared.scss @@ -45,7 +45,7 @@ .element-list { @include t.use-typography("body-large"); color: var(--modal-text-foreground-color); - overflow-y: scroll; + overflow-y: auto; margin-block: 0; } From 3f6e44316e3b1f372c37bb0bf95acc565f873ca9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 11 Dec 2025 11:51:47 +0100 Subject: [PATCH 2/6] :bug: Add missing node depes install on render-wasm --- frontend/scripts/build | 2 +- render-wasm/build | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/frontend/scripts/build b/frontend/scripts/build index 97d8cc856b..c6fb93742d 100755 --- a/frontend/scripts/build +++ b/frontend/scripts/build @@ -20,7 +20,7 @@ echo $PATH set -ex corepack enable; -corepack install || exit 1; +corepack install; yarn install || exit 1; rm -rf resources/public; diff --git a/render-wasm/build b/render-wasm/build index 44ee13abb5..739a1cc982 100755 --- a/render-wasm/build +++ b/render-wasm/build @@ -2,8 +2,6 @@ EMSDK_QUIET=1 . /opt/emsdk/emsdk_env.sh -set -x - _BUILD_NAME="${_BUILD_NAME:-render_wasm}" _SCRIPT_DIR=$(dirname $0); @@ -11,7 +9,11 @@ pushd $_SCRIPT_DIR; . ./_build_env -set -x; +set -ex; + +corepack enable; +corepack install; +yarn install; build; copy_artifacts "../frontend/resources/public/js"; From 5a260294a18cc4fb1d3705fc1a5f66f4f02dda61 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 11 Dec 2025 11:59:16 +0100 Subject: [PATCH 3/6] :wrench: Update build-tag.yml github workflow --- .github/workflows/build-tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-tag.yml b/.github/workflows/build-tag.yml index ca51181cbd..425888e6ce 100644 --- a/.github/workflows/build-tag.yml +++ b/.github/workflows/build-tag.yml @@ -11,7 +11,7 @@ jobs: secrets: inherit with: gh_ref: ${{ github.ref_name }} - build_wasm: "no" + build_wasm: "yes" build_storybook: "yes" build-docker: From 53be6f996ba42042ff09139b5589511d1c2ef85b Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 11 Dec 2025 12:16:39 +0100 Subject: [PATCH 4/6] :bug: Fix issues on build processs related to render-wasm --- frontend/scripts/build | 4 +- render-wasm/_build_env | 2 +- render-wasm/package.json | 17 +++ render-wasm/yarn.lock | 302 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 323 insertions(+), 2 deletions(-) create mode 100644 render-wasm/package.json create mode 100644 render-wasm/yarn.lock diff --git a/frontend/scripts/build b/frontend/scripts/build index c6fb93742d..77dc6ae323 100755 --- a/frontend/scripts/build +++ b/frontend/scripts/build @@ -29,7 +29,9 @@ rm -rf target/dist; yarn run build:app:main --config-merge "{:release-version \"${CURRENT_HASH}-${TS}\"}" $EXTRA_PARAMS; if [ "$INCLUDE_WASM" = "yes" ]; then - yarn run build:wasm || exit 1; + pushd ../render-wasm; + ./build + popd fi yarn run build:app:libs || exit 1; diff --git a/render-wasm/_build_env b/render-wasm/_build_env index 3be4d13957..431b45bb5d 100644 --- a/render-wasm/_build_env +++ b/render-wasm/_build_env @@ -75,7 +75,7 @@ function copy_artifacts { sed -i "s/render_wasm.wasm/$BUILD_NAME.wasm?version=$CURRENT_VERSION/g" $DEST/$BUILD_NAME.js; - npx esbuild target/wasm32-unknown-emscripten/$BUILD_MODE/render_wasm.js \ + yarn esbuild target/wasm32-unknown-emscripten/$BUILD_MODE/render_wasm.js \ --log-level=error \ --outfile=$DEST/worker/render.js \ --platform=neutral \ diff --git a/render-wasm/package.json b/render-wasm/package.json new file mode 100644 index 0000000000..61cb22d1c6 --- /dev/null +++ b/render-wasm/package.json @@ -0,0 +1,17 @@ +{ + "name": "penpot-render-wasm", + "version": "1.20.0", + "license": "MPL-2.0", + "author": "Kaleidos INC", + "private": true, + "packageManager": "yarn@4.10.3+sha512.c38cafb5c7bb273f3926d04e55e1d8c9dfa7d9c3ea1f36a4868fa028b9e5f72298f0b7f401ad5eb921749eb012eb1c3bb74bf7503df3ee43fd600d14a018266f", + "repository": { + "type": "git", + "url": "https://github.com/penpot/penpot" + }, + "type": "module", + "devDependencies": { + "@types/node": "^20.12.7", + "esbuild": "^0.25.9" + } +} diff --git a/render-wasm/yarn.lock b/render-wasm/yarn.lock new file mode 100644 index 0000000000..b3e85c6033 --- /dev/null +++ b/render-wasm/yarn.lock @@ -0,0 +1,302 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@esbuild/aix-ppc64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/aix-ppc64@npm:0.25.12" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-arm64@npm:0.25.12" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-arm@npm:0.25.12" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/android-x64@npm:0.25.12" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/darwin-arm64@npm:0.25.12" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/darwin-x64@npm:0.25.12" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/freebsd-arm64@npm:0.25.12" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/freebsd-x64@npm:0.25.12" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-arm64@npm:0.25.12" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-arm@npm:0.25.12" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-ia32@npm:0.25.12" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-loong64@npm:0.25.12" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-mips64el@npm:0.25.12" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-ppc64@npm:0.25.12" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-riscv64@npm:0.25.12" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-s390x@npm:0.25.12" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/linux-x64@npm:0.25.12" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/netbsd-arm64@npm:0.25.12" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/netbsd-x64@npm:0.25.12" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openbsd-arm64@npm:0.25.12" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openbsd-x64@npm:0.25.12" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openharmony-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/openharmony-arm64@npm:0.25.12" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/sunos-x64@npm:0.25.12" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-arm64@npm:0.25.12" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-ia32@npm:0.25.12" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.25.12": + version: 0.25.12 + resolution: "@esbuild/win32-x64@npm:0.25.12" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@types/node@npm:^20.12.7": + version: 20.19.26 + resolution: "@types/node@npm:20.19.26" + dependencies: + undici-types: "npm:~6.21.0" + checksum: 10c0/68e7d92dd2b7bddff9dffabb9c740e655906ceac428dcf070915cdcae720579e4d72261c55ed7eccbfa907a75cbb1ff3a9148ea49878a07a72d5dd6c9e06d9d7 + languageName: node + linkType: hard + +"esbuild@npm:^0.25.9": + version: 0.25.12 + resolution: "esbuild@npm:0.25.12" + dependencies: + "@esbuild/aix-ppc64": "npm:0.25.12" + "@esbuild/android-arm": "npm:0.25.12" + "@esbuild/android-arm64": "npm:0.25.12" + "@esbuild/android-x64": "npm:0.25.12" + "@esbuild/darwin-arm64": "npm:0.25.12" + "@esbuild/darwin-x64": "npm:0.25.12" + "@esbuild/freebsd-arm64": "npm:0.25.12" + "@esbuild/freebsd-x64": "npm:0.25.12" + "@esbuild/linux-arm": "npm:0.25.12" + "@esbuild/linux-arm64": "npm:0.25.12" + "@esbuild/linux-ia32": "npm:0.25.12" + "@esbuild/linux-loong64": "npm:0.25.12" + "@esbuild/linux-mips64el": "npm:0.25.12" + "@esbuild/linux-ppc64": "npm:0.25.12" + "@esbuild/linux-riscv64": "npm:0.25.12" + "@esbuild/linux-s390x": "npm:0.25.12" + "@esbuild/linux-x64": "npm:0.25.12" + "@esbuild/netbsd-arm64": "npm:0.25.12" + "@esbuild/netbsd-x64": "npm:0.25.12" + "@esbuild/openbsd-arm64": "npm:0.25.12" + "@esbuild/openbsd-x64": "npm:0.25.12" + "@esbuild/openharmony-arm64": "npm:0.25.12" + "@esbuild/sunos-x64": "npm:0.25.12" + "@esbuild/win32-arm64": "npm:0.25.12" + "@esbuild/win32-ia32": "npm:0.25.12" + "@esbuild/win32-x64": "npm:0.25.12" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/c205357531423220a9de8e1e6c6514242bc9b1666e762cd67ccdf8fdfdc3f1d0bd76f8d9383958b97ad4c953efdb7b6e8c1f9ca5951cd2b7c5235e8755b34a6b + languageName: node + linkType: hard + +"penpot-render-wasm@workspace:.": + version: 0.0.0-use.local + resolution: "penpot-render-wasm@workspace:." + dependencies: + "@types/node": "npm:^20.12.7" + esbuild: "npm:^0.25.9" + languageName: unknown + linkType: soft + +"undici-types@npm:~6.21.0": + version: 6.21.0 + resolution: "undici-types@npm:6.21.0" + checksum: 10c0/c01ed51829b10aa72fc3ce64b747f8e74ae9b60eafa19a7b46ef624403508a54c526ffab06a14a26b3120d055e1104d7abe7c9017e83ced038ea5cf52f8d5e04 + languageName: node + linkType: hard From 2f46cbc0d47c084f3fa65f0948bb4002e84a771b Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 11 Dec 2025 13:27:20 +0100 Subject: [PATCH 5/6] :sparkles: Make render wasm import on worker http cache aware --- frontend/scripts/build | 17 +++++++++-------- frontend/shadow-cljs.edn | 2 +- render-wasm/_build_env | 8 ++++++++ render-wasm/build | 5 +---- render-wasm/watch | 1 - 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/frontend/scripts/build b/frontend/scripts/build index 77dc6ae323..e0cdb0d070 100755 --- a/frontend/scripts/build +++ b/frontend/scripts/build @@ -23,20 +23,21 @@ corepack enable; corepack install; yarn install || exit 1; -rm -rf resources/public; rm -rf target/dist; +rm -rf resources/public; + +mkdir -p resources/public; + +pushd ../render-wasm; +./build +popd yarn run build:app:main --config-merge "{:release-version \"${CURRENT_HASH}-${TS}\"}" $EXTRA_PARAMS; - -if [ "$INCLUDE_WASM" = "yes" ]; then - pushd ../render-wasm; - ./build - popd -fi - yarn run build:app:libs || exit 1; yarn run build:app:assets || exit 1; +sed -i "s/\.\/render.js/.\/render.js?version=$CURRENT_VERSION/g" resources/public/js/worker/main*.js + mkdir -p target/dist; rsync -avr resources/public/ target/dist/ diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn index ac9b01366f..e9bee8f835 100644 --- a/frontend/shadow-cljs.edn +++ b/frontend/shadow-cljs.edn @@ -94,7 +94,7 @@ {:main {:entries [app.worker] :web-worker true - :prepend-js "importScripts('/js/worker/render.js');" + :prepend-js "importScripts('./render.js');" :depends-on #{}}} :js-options diff --git a/render-wasm/_build_env b/render-wasm/_build_env index 431b45bb5d..d18526caa1 100644 --- a/render-wasm/_build_env +++ b/render-wasm/_build_env @@ -63,6 +63,12 @@ function clean { cargo clean; } +function setup { + corepack enable; + corepack install; + yarn install; +} + function build { cargo build $CARGO_PARAMS; } @@ -70,6 +76,8 @@ function build { function copy_artifacts { DEST=$1; + mkdir -p $DEST; + cp target/wasm32-unknown-emscripten/$BUILD_MODE/render_wasm.js $DEST/$BUILD_NAME.js; cp target/wasm32-unknown-emscripten/$BUILD_MODE/render_wasm.wasm $DEST/$BUILD_NAME.wasm; diff --git a/render-wasm/build b/render-wasm/build index 739a1cc982..7d95f16088 100755 --- a/render-wasm/build +++ b/render-wasm/build @@ -11,10 +11,7 @@ pushd $_SCRIPT_DIR; set -ex; -corepack enable; -corepack install; -yarn install; - +setup; build; copy_artifacts "../frontend/resources/public/js"; copy_shared_artifact; diff --git a/render-wasm/watch b/render-wasm/watch index cfe8336aab..64cf7b86e5 100755 --- a/render-wasm/watch +++ b/render-wasm/watch @@ -1,5 +1,4 @@ #!/usr/bin/env bash -set -x _SCRIPT_DIR=$(dirname $0); pushd $_SCRIPT_DIR; From 50dbe6ab127e6b6ffa1ad04b869ca6651885e7c7 Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Thu, 11 Dec 2025 21:34:18 +0100 Subject: [PATCH 6/6] :bug: Fix horizontal scroll on layer panel (#7956) --- CHANGES.md | 1 + .../src/app/main/ui/workspace/sidebar/layer_item.scss | 3 ++- frontend/src/app/main/ui/workspace/sidebar/layers.scss | 8 +++----- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index b9e4471cfa..011361113a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -94,6 +94,7 @@ example. It's still usable as before, we just removed the example. - Fix incorrect interaction betwen hower and scroll on assets sidebar [Taiga #12389](https://tree.taiga.io/project/penpot/issue/12389) - Fix switch variants with paths [Taiga #12841](https://tree.taiga.io/project/penpot/issue/12841) - Fix referencing typography tokens on font-family tokens [Taiga #12492](https://tree.taiga.io/project/penpot/issue/12492) +- Fix horizontal scroll on layer panel [Taiga #12843](https://tree.taiga.io/project/penpot/issue/12843) ## 2.11.1 diff --git a/frontend/src/app/main/ui/workspace/sidebar/layer_item.scss b/frontend/src/app/main/ui/workspace/sidebar/layer_item.scss index e37644ad63..43455c1bd0 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layer_item.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/layer_item.scss @@ -5,6 +5,7 @@ // Copyright (c) KALEIDOS INC @use "refactor/common-refactor.scss" as deprecated; +@use "ds/_utils.scss" as *; .layer-row { --layer-indentation-size: calc(#{deprecated.$s-4} * 6); @@ -87,7 +88,7 @@ height: deprecated.$s-32; width: calc(100% - (var(--depth) * var(--layer-indentation-size))); cursor: pointer; - + min-width: px2rem(140); &.filtered { width: calc(100% - deprecated.$s-12); } diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.scss b/frontend/src/app/main/ui/workspace/sidebar/layers.scss index 89818cf9c5..353eaf009e 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layers.scss +++ b/frontend/src/app/main/ui/workspace/sidebar/layers.scss @@ -211,9 +211,7 @@ overflow-x: auto; overflow-y: overlay; scrollbar-gutter: stable; - - .element-list { - width: var(--left-sidebar-width); - display: grid; - } +} +.element-list { + display: grid; }