- Use container bounds for stroked frames with drop shadows
- Keep stroke-geometry shadows for childless stroke-only shapes
- Cover the shadcn dropdown menu case
- 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>
- 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>
- 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>
- 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>
- 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>
- Add the current Figma pageType field and EditorType enum values
- Write pageType DESIGN on exported CANVAS records so Figma initializes design-mode page state
- Keep live clipboard-derived numbers only for fields emitted by preserved payloads
- Restore unused glyph/layout fields to the schema shape Figma imports without triggering Slides state
- Move codec, NodeChange conversion, and instance overrides under kiwi/fig
- Flatten the codec entrypoint to kiwi/fig/codec
- Keep schema-runtime as the generic Kiwi parser/compiler boundary
- Move the Kiwi runtime under schema-runtime to match folder naming
- Load the Figma schema from a .kiwi text asset with static validation
- Assert Figma clipboard-derived field numbers for fragile layout/text fields
- Keep imported Figma node guids so override paths and symbol references remain stable
- Serialize imported symbolOverrides and uniform scale factors for instances
- Strip unsupported variable consumption maps from preserved overrides before encoding
- Match Figma files where INSTANCE node changes carry symbol refs, not child nodes
- Prevent exported roundtrips from expanding every populated instance subtree
- Tighten glyph blob preservation now that instance children are omitted
- Stop zeroing transforms for auto-layout children during .fig export
- Match real Figma files, which keep child transform offsets alongside layout data
- Update transform regression coverage to prevent collapsed roundtrips
- Preserve the source document root when extracting export subgraphs
- Include page descendants when exporting a single page to .fig
- Cover page subgraph extraction so CLI .fig exports are not empty
- Start selection moves only after a 4px screen-space threshold
- Keep click selection from previewing or committing 1px geometry changes
- Cover below-threshold and intentional move behavior
- Carry resolved text styling and glyph data through component-property text clones
- Align lazy cloned child placement and hidden chevrons with their resolved source
- Cover the gold-preview dropzone link lazy import regression
- Re-propagate resolved overrides after lazy instance population
- Preserve Figma showShadowBehindNode on effects
- Mask unfilled stroke shadows behind their fill geometry
- Resolve component-property refs through override keys on cloned children
- Apply instance component-property assignments through clone chains
- Use child shadow shapes for containers without visible fills
- Keep clipped export bounds from leaking hidden descendants