- 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>
- 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>
- 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>
- Add current Kiwi component prop fields used by Figma exports
- Preserve empty instance-swap preferred value arrays instead of dropping them during encoding
- 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
- 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
- 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
- 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
- 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
- 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 stackWrap and stackCounterSpacing beside adjacent live Figma field IDs
- Preserve clipboard-derived field numbers without appending them after newer high IDs
- 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