861 Commits

Author SHA1 Message Date
Elena Torro 6285b1de60 🐛 Fix masked group position in flex layout on child visibility change 2026-07-15 08:58:48 +02:00
Elena Torró ab58d00d66 ⚡ Improve bool intersection perfomance (#10671) 2026-07-14 07:43:52 +02:00
Belén Albeza 0a2570c9eb 🐛 Fix text editor not repainting text if there was not a geometry change (#10553) 2026-07-07 11:18:44 +02:00
Elena Torró 28b5371901 🔧 Improve text strokes in texts with emoji (#10519) 2026-07-01 18:10:46 +02:00
Alejandro Alonso f25317ac47 🐛 Fix text inner stroke fill seam by compositing fill inside SrcIn (#10509)
* 🐛 Fix text inner stroke fill seam by compositing fill inside SrcIn

* 🔧 Update e2e Playwright screenshots
2026-07-01 16:24:23 +02:00
Aitor Moreno 851fde01c1 🐛 Fix SVG Raw not being saved (#10492) 2026-07-01 14:08:54 +02:00
Elena Torró c8f586a197 🐛 Fix async text rendering on tiles (#10504) 2026-07-01 11:09:57 +02:00
Andrey Antukh e2b52d88fc ⬆️ Update dependencies 2026-06-30 16:15:30 +02:00
Elena Torró 21f646aeee 🐛 Fix decimal rounding and format in WebGL rulers (#10487) 2026-06-30 10:35:03 +02:00
Alonso Torres f993f203bd 🐛 Fix problems with plugins API (#10412)
* ✨ Adds static dispatch safe stubs in tests

* 🐛 Fix shapesColors metadata key to match ColorShapeInfo

* 🐛 Fix CommentThread.remove rejecting the owner's own threads

* 🐛 Fix page.removeCommentThread throwing on a spurious Promise

* ✨ Implement ShapeBase.swapComponent in the plugin API

* ✨ Expose File.revn in the plugin API

* 🐛 Fix FileVersion.createdAt calling Luxon method on a js/Date

* 🐛 Fix plugin font/typography application to text and ranges

* 🐛 Default plugin overlay interaction position for non-manual types

* 🐛 Fix plugin interaction setters passing an id-only shape

* 🐛 Fix grid addColumnAtIndex rejecting valid track types

* 🐛 Expose libraryId on library color/typography/component proxies

* ✨ Implement LibraryTypography.setFont in the plugin API

* 🐛 Fix typography.applyToTextRange reading unexposed range bounds

* 🐛 Fix utils.geometry.center argument mismatch

* 🐛 Fix localStorage.removeItem calling getItem

* 🐛 Fix shape backgroundBlur proxy key casing

* 🐛 Report boolean shape type as 'boolean' in the plugin API

* 🐛 Return the resulting paths from plugin flatten

* 🐛 Make plugin z-order methods act on the target shape

* 🐛 Make is-variant-container? return a boolean

* ✨ Implement Group.isMask in the plugin API

* 🐛 Return a shape proxy from TextRange.shape

* 🐛 Return the duplicated set from TokenSet.duplicate

* 🐛 Fix theme addSet/removeSet reading set name with a keyword

* 🐛 Accept string fontFamilies token value in the plugin API

* 🐛 Fix combineAsVariants ignoring the passed component ids

* 🐛 Fix board removeRulerGuide ignoring its argument

* 🐛 Fix board guides setter schema and parser

* 🐛 Avoid 0-byte allocation when syncing empty grid tracks

* 🐛 Validate grid track indices in the plugin API

* 🐛 Return null for empty input in group() and centerShapes()

* 🐛 Return TokenTypographyValue[] from a typography token's resolvedValue

* 🐛 Return TokenShadowValue[] from a shadow token's resolvedValue

* 🐛 Return string[] from a fontFamilies token's resolvedValue

* 🐛 Clear mutually-exclusive reps when setting LibraryColor gradient/image

* 🐛 Add readonly tags to types, deprecate Image type

* 📚 Update plugins changelog
2026-06-29 17:32:15 +02:00
Alejandro Alonso 345affc687 🐛 Fix premature WASM view-interaction end during pan (#10425) 2026-06-25 15:07:37 +02:00
Elena Torró 67386a0358 🐛 Fix missing tiles on the left (#10421) 2026-06-25 13:30:53 +02:00
Belén Albeza d323aa9693 🐛 Fix guides not clipping (#10423) 2026-06-25 11:50:58 +02:00
Elena Torró 149caaf292 🐛 Fix rulers values visibility (#10408) 2026-06-25 07:20:41 +02:00
Alejandro Alonso 9b22d96553 🐛 Fix render from cache 2026-06-24 14:00:57 +02:00
Elena Torró 07de0e92d5 ⚡ Fix slow zoom/edit on Firefox+NVIDIA WebGL renderer (#10371) 2026-06-23 10:58:14 +02:00
Elena Torró 8e548c8c54 🐛 Fix blank tiles and atlas crash on render-wasm zoom/pan (#10367)
* 🐛 Fix missing tiles on page switch and pan/zoom end

* 🐛 Fix blank tiles and atlas crash on render-wasm zoom/pan
2026-06-23 10:25:45 +02:00
Elena Torró b91eece5bf 🐛 Fix rulers shown on thumbnails 2026-06-19 13:01:26 +02:00
Alejandro Alonso b9ebe9f4ee 🐛 Fix viewer tile artifacts 2026-06-19 12:51:17 +02:00
Alejandro Alonso 2a5c29421f 🐛 Cap GPU max texture size at 4096 2026-06-19 09:38:38 +02:00
Alejandro Alonso c6ecfb7794 Merge pull request #10320 from penpot/superalex-fix-performance-regression-3
🐛 Fix performance regression
2026-06-18 18:37:40 +02:00
Alejandro Alonso 01fc3c3e7d 🐛 Defer tile atlas composition to full frames only 2026-06-18 18:33:10 +02:00
Alejandro Alonso f6f716de3a 🐛 Fix performance regression 2026-06-18 18:30:51 +02:00
Elena Torro bfef6ea089 ⚡ Improve rulers loading time 2026-06-18 14:38:30 +02:00
Elena Torró 80abc3fe3d 🐛 Fix shape fill flickering from color picker (#10273) 2026-06-17 18:41:41 +02:00
Alonso Torres 0afa108804 🐛 Fix stacked backdrop blurs 2026-06-17 17:44:40 +02:00
Alejandro Alonso 61cd9fe886 🐛 Fix performance regression
* 🔧 Preserve atlas on zoom interaction 

Co-authored-by: Elena Torro <elenatorro@gmail.com>
2026-06-17 14:52:12 +02:00
Elena Torro 82cd11a1ad 🐛 Fix DocAtlas cap 2026-06-17 09:52:57 +02:00
Eva Marco 2a098e5b16 🎉 Add background blur (#10034)
* 🎉 Add background blur

* 🎉 Add test

* 🎉 Add background blur info to plugins API

* 🎉 Suport in wasm for both layer and background blur

* 🐛 Fix failing test

* ♻️ Fix comments

---------

Co-authored-by: alonso.torres <alonso.torres@kaleidos.net>
2026-06-16 19:46:03 +02:00
Andrey Antukh c55d910e95 Merge remote-tracking branch 'origin/staging' into develop 2026-06-16 13:07:59 +02:00
Alejandro Alonso cd239d24f8 🐛 Fix transparent tile holes in viewer WASM render
Use direct backbuffer tile compositing for render_sync_shape (viewer/thumbnails)
instead of the tile texture atlas cache, which left 512×512 transparent holes.
2026-06-16 09:52:19 +02:00
Belén Albeza d1dd5d9016 🎉 Render guides in wasm (#10014)
* ✨ Remove guides from svg overlay

* 🎉 Draw guides in wasm

* 🎉 Serialize guides to wasm

* ✨ Store separate and sorted horizontal and vertical guides

* 🎉 Implement collision detection with guides

* 🎉 Right click on guides to change color or remove

* ✨ Implement dragging guides

* 🎉 Edit wasm guides by double clicking them

* 🎉 Implement changing mouse cursor on hovering a guide

* ✨ Show guide pill on hover

* 🎉 Implement removing guide on hovering + Del

* 🔧 Fix lint + fmt errors

* 🎉 Clip out outer board guide lines

* ♻️ Extract common code into guide-pill* component

* 🎉 Draw dotted lines on hovering board guides

* 🐛 Fix board rotation when it has guides

* 🎉 Make foreign guides not visible in focus mode
2026-06-16 09:19:58 +02:00
Aitor Moreno c54ab3bd34 🐛 Fix frame stroke 2026-06-15 16:09:23 +02:00
Alejandro Alonso 9d7a8eaeda 🐛 Fix rendering artifacts from previous frames 2026-06-15 11:00:56 +02:00
Elena Torró 6ebefa2c16 ✨ Add single-file export to PDF using the WebGL render (#9860) 2026-06-11 10:41:21 +02:00
Andrey Antukh 9f5a0f767e Merge remote-tracking branch 'origin/staging' into develop 2026-06-10 11:26:48 +02:00
Alejandro Alonso becba0a82b 🐛 Fix frame inner strokes ignoring focus mode in wasm renderer 2026-06-10 09:36:28 +02:00
Andrey Antukh 51a9eed02e ⏪ Backport from develop AGENTS.md changes 2026-06-08 14:35:19 +02:00
Alejandro Alonso 9f5e89d5f8 🎉 Basic viewer with wasm 2026-06-05 16:41:30 +02:00
Andrey Antukh adcc2ebd1a Merge remote-tracking branch 'origin/staging' into develop 2026-06-05 11:44:50 +02:00
Elena Torró 47ce68eed0 🐛 Fix masked group applied blur and bounds (#10028) 2026-06-05 11:01:47 +02:00
Elena Torró 60d3c81450 ✨ Add wasm rulers (#9858)
* ✨ Add wasm rulers

* 🔧 Fix dpr on page zoom

Co-authored-by: Alejandro Alonso <alejandroalonsofernandez@gmail.com>
Co-authored-by: Elena Torro <elenatorro@gmail.com>

* 🔧 Change page-switch behavior to refresh rulers and keep blurred snapshot

* 🐛 Restore WASM rulers after WebGL context recovery

Co-Authored-By: Elena Torro <elenatorro@gmail.com>
Co-Authored-By: Alejandro Alonso <alejandroalonsofernandez@gmail.com>

---------

Co-authored-by: Alejandro Alonso <alejandroalonsofernandez@gmail.com>
2026-06-05 07:51:35 +02:00
Andrey Antukh 7ddc93a4df Merge remote-tracking branch 'origin/staging' into develop 2026-06-03 14:19:47 +02:00
Elena Torró 0fe4337359 🐛 Fix webgl thumbnail label (#10009) 2026-06-03 14:06:05 +02:00
Aitor Moreno ff3587ca2d Merge pull request #9997 from penpot/elenatorro-fix-background-clear
🐛 Fix clear canvas
2026-06-03 12:02:48 +02:00
Andrey Antukh feca7cef41 Merge remote-tracking branch 'origin/staging' into develop 2026-06-02 17:50:45 +02:00
Elena Torro d9fea603f8 🐛 Fix clear canvas 2026-06-02 17:14:25 +02:00
Belén Albeza d5fe5f82f3 🐛 Fix wasm info label positioning (#9981) 2026-06-02 15:18:37 +02:00
Aitor Moreno d0f6d5b3a1 ♻️ Refactor render pipeline (#9891)
* ♻️ Refactor viewbox

* 🎉 Add draw_atlas alternative to draw tiles

* 🐛 Fix minor glitches

* ♻️ Change how process_animation_frame works

* ♻️ Refactor document atlas

* ♻️ Refactor max texture size

* ♻️ Refactor entrypoints and dead_code
2026-06-02 09:38:52 +02:00
Andrey Antukh 4a8fb5af53 Merge remote-tracking branch 'origin/staging' into develop 2026-06-01 13:15:57 +02:00