Commit graph

1651 commits

Author SHA1 Message Date
Santos Alarcón Asensio 560285bb4d
Merge branch 'master' into master 2026-05-22 19:33:45 +02:00
Santos Alarcón 0babefa30b fix: build errors 2026-05-22 19:26:28 +02:00
Danila Poyarkov bfd89b9ee9 docs: add shader layers to roadmap 2026-05-22 20:18:43 +03:00
Santos Alarcón Asensio 9bbd57299d
Merge branch 'open-pencil:master' into master 2026-05-22 19:15:23 +02:00
Danila Poyarkov bf232bac8b docs: centralize roadmap 2026-05-22 20:02:05 +03:00
Danila Poyarkov 77307e17da docs: drop README roadmap 2026-05-22 19:54:46 +03:00
Danila Poyarkov 9431c1935e docs: remove stale roadmap pages 2026-05-22 19:46:57 +03:00
Danila Poyarkov 540b706349 docs: document Figma compatibility 2026-05-22 19:31:06 +03:00
Danila Poyarkov b750d1f3dc docs: generate llms files
- Generate llms.txt and llms-full.txt from VitePress content loader

- Advertise the agent-readable docs through alternate links
2026-05-22 16:03:04 +03:00
Danila Poyarkov 11c3cfe73e test(canvas): drop brittle shadow source check
- Rely on behavioral effect tests for stroked container shadow coverage
2026-05-22 14:44:16 +03:00
Danila Poyarkov 8f4f7a47e9 fix(canvas): filter retained backing previews
- Keep stale scene backings available during zoom for smooth interaction

- Draw scaled backings with linear filtering to avoid blocky text artifacts
2026-05-22 14:44:16 +03:00
Santos Alarcón 5461b38ce5 More translations 2026-05-22 13:08:55 +02:00
Danila Poyarkov a49f626e3e fix(canvas): render stroked container shadows from bounds
- Use container bounds for stroked frames with drop shadows

- Keep stroke-geometry shadows for childless stroke-only shapes

- Cover the shadcn dropdown menu case
2026-05-22 13:39:29 +03:00
Danila Poyarkov 1c22b3f7a9 test(canvas): align shadow cleanup checks
- Keep explicit color filter deletion checks compatible with cleanup guards

- Verify text inner-shadow restore balancing through the restore-count loop

Co-authored-by: Joseph Cumines <joeycumines@gmail.com>
2026-05-22 13:17:04 +03:00
Danila Poyarkov f6e31be707 fix(canvas): delete renderer label resources
- Dispose parent outline paint during renderer teardown

- Dispose section and component label fonts with other renderer-owned fonts

- Cover renderer teardown for label resources

Co-authored-by: Joseph Cumines <joeycumines@gmail.com>
2026-05-22 13:15:35 +03:00
Danila Poyarkov 420c61e004 fix(canvas): guard retained backing surfaces
- Fall back to live rendering when CanvasKit cannot allocate the backing surface

- Match retained backing metadata against the current graph preview version

- Cover null-surface and stale-preview backing regressions

Co-authored-by: Joseph Cumines <joeycumines@gmail.com>
2026-05-22 12:51:00 +03:00
Danila Poyarkov 9f67a1086d fix(canvas): restore shadow render state on errors
- Restore canvas save layers and shared paints from shadow effect paths when rendering fails

- Delete temporary paths and color filters through error paths without suppressing failures

- Cover drop-shadow and text inner-shadow cleanup regressions

Co-authored-by: Joseph Cumines <joeycumines@gmail.com>
2026-05-22 12:47:33 +03:00
Danila Poyarkov 0b4fcc9f77 fix(canvas): render shadows from path shapes
- Use polygon, star, and vector paths for shadows when geometry blobs are unavailable
- Apply shadow spread to copied geometry paths without mutating caches
- Clip and cut out inner shadows with the same path geometry

Co-authored-by: Joseph Cumines <joeycumines@gmail.com>
2026-05-22 12:37:00 +03:00
Santos Alarcón Asensio 6b2de4ad7a
Merge branch 'open-pencil:master' into master 2026-05-22 11:27:48 +02:00
Danila Poyarkov fadb17b108 fix(canvas): clean up gradient text layers
- Delete gradient text paragraphs through the exception path
- Reset shared effect layer paint after gradient text rendering

Co-authored-by: Joseph Cumines <joeycumines@gmail.com>
2026-05-22 12:24:14 +03:00
Danila Poyarkov 2fc67e7b6a fix(canvas): clean up boolean render paths
- Delete boolean operation paths even when drawing fails
- Reset fill shaders while preserving the existing render path

Co-authored-by: Joseph Cumines <joeycumines@gmail.com>
2026-05-22 12:19:14 +03:00
Santos Alarcón 74709ffc6c Fix in the tooltip and more i18n strings 2026-05-21 20:19:15 +02:00
Danila Poyarkov 598989da8d build: prepare packages before app checks 2026-05-21 18:16:18 +03:00
Danila Poyarkov 3850be9512 build: publish node-compatible packages 2026-05-21 17:03:19 +03:00
Santos Alarcón f155aeb98e fix: AppSelect dropdown doesn't show 2026-05-21 15:19:16 +02:00
Danila Poyarkov 59f769e2ef docs: expand unreleased changelog 2026-05-21 15:01:33 +03:00
Danila Poyarkov dff56cff2f docs: update changelog 2026-05-21 14:57:58 +03:00
Danila Poyarkov 24ac31d4ab fix(fig): restore lazy badge visibility overrides 2026-05-21 14:54:18 +03:00
Danila Poyarkov d3e82fba44 fix(fig): preserve source metadata during lazy import 2026-05-21 14:54:17 +03:00
Danila Poyarkov da9dbbb9c6 fix(editor): preserve edits over imported metadata 2026-05-21 14:54:17 +03:00
Danila Poyarkov b5451c354f fix(fig): preserve kiwi version in export worker 2026-05-21 14:54:17 +03:00
Danila Poyarkov a48b23129f fix(fig): stabilize engine test suite 2026-05-21 14:54:17 +03:00
Danila Poyarkov 302ed838f5 fix(fig): sanitize preserved payload enums 2026-05-21 14:54:17 +03:00
Danila Poyarkov dfea52475c test(fig): cover source metadata roundtrips 2026-05-21 14:54:17 +03:00
Danila Poyarkov 749585d737 refactor(fig): group source roundtrip metadata 2026-05-21 14:54:17 +03:00
Danila Poyarkov d78bcb3b40 fix(fig): render headless export thumbnails 2026-05-21 14:54:16 +03:00
Danila Poyarkov c85e06466c fix(fig): preserve imported canvas strokes 2026-05-21 14:54:16 +03:00
Danila Poyarkov dd0a5317fd fix(fig): preserve imported node ordering 2026-05-21 14:54:16 +03:00
Danila Poyarkov 8eedaba84f fix(fig): preserve imported canvas guids 2026-05-21 14:54:16 +03:00
Danila Poyarkov 12d726eee1 Revert "fix(cli): export fig documents by default"
This reverts commit 682e5991a4bf76753ae22046e952070aaa242de9.
2026-05-21 14:54:16 +03:00
Danila Poyarkov 5830b9f976 fix(cli): export fig documents by default 2026-05-21 14:54:16 +03:00
Danila Poyarkov 2ef237f5e1 fix(fig): preserve imported text and paint fallbacks 2026-05-21 14:54:16 +03:00
Danila Poyarkov b784882e88 fix(fig): preserve component prop reference maps
- Export component sets with Figma-compatible frame state-group metadata
- Emit internal component definitions before page instances
- Preserve prop-ref variable maps while continuing to strip unsafe alias maps
2026-05-21 14:54:15 +03:00
Danila Poyarkov 2897e0b20f fix(fig): preserve component prop preferred values
- Add current Kiwi component prop fields used by Figma exports
- Preserve empty instance-swap preferred value arrays instead of dropping them during encoding
2026-05-21 14:54:15 +03:00
Danila Poyarkov e6508c191b fix(fig): preserve import edit metadata
- Add EditInfo to the export schema so preserved raw Figma edit metadata is encoded
- Emit false symbol publishability for components to match imported Figma payloads
2026-05-21 14:54:15 +03:00
Danila Poyarkov 5dff0d4285 fix(fig): keep variable maps inside instance payloads
- Continue stripping top-level variable maps that crash Figma import
- Preserve nested variable maps in symbol overrides, component assignments, and derived symbol data for better instance reconstruction
2026-05-21 14:54:15 +03:00
Danila Poyarkov 450ca16b28 fix(fig): preserve component prop default values
- Add ComponentPropDef.varValue to the static Kiwi schema
- Keep imported boolean component defaults instead of degrading them to empty strings
2026-05-21 14:54:14 +03:00
Danila Poyarkov 35b146b4c6 fix(fig): preserve component variant metadata
- Preserve raw component property definitions, refs, variant specs, and source library metadata
- Add current Figma schema entries needed to encode variantPropSpecs and modern component prop types
2026-05-21 14:54:14 +03:00
Danila Poyarkov ef802b4681 fix(fig): skip unresolved paint variables
- Drop preserved colorVar and opacityVar payload fields together with variable maps
- Keep concrete paint colors as fallbacks so Figma does not render unresolved variables as missing content
2026-05-21 14:54:14 +03:00
Danila Poyarkov 6586b497bb fix(fig): skip variable maps in preserved payloads
- Keep preserving style IDs and paint variable metadata
- Drop variableConsumptionMap and parameterConsumptionMap on export because Figma imports enter invalid Slides rail state with these raw maps
2026-05-21 14:54:14 +03:00