Find a file
Danila Poyarkov 859afdce45 Add .fig file import (Kiwi codec → scene graph)
File parser:
- .fig files are ZIP archives with Kiwi-encoded canvas data
- Detects canvas blob by name (canvas.fig) or largest binary entry
- Decodes Kiwi Message → NodeChange[] → SceneGraph

Node conversion:
- Maps Figma types to OpenPencil types (COMPONENT → FRAME, etc.)
- Extracts position from transform matrix (m02, m12)
- Extracts rotation from transform matrix (atan2)
- Converts fillPaints/strokePaints to Fill[]/Stroke[]
- Converts effects (shadows, blurs)
- Handles independent corner radii
- Preserves text properties (font, size, alignment, spacing)
- Builds parent-child tree from parentIndex GUIDs
- Sorts children by parentIndex.position

Browser compatibility:
- fzstd for Zstd decompression (replaces Bun.zstd*)
- fflate for ZIP extraction
- Cmd+O opens file dialog for .fig files
- UndoManager.clear() for resetting on file open
2026-02-27 23:01:35 +03:00
.vscode Initial commit: Tauri + CanvasKit + React editor scaffold 2026-02-27 15:48:29 +03:00
patches PoC 2 & 3: Yoga WASM layout + Kiwi codec 2026-02-27 17:16:21 +03:00
public Add text editing with Paragraph API and inline overlay 2026-02-27 22:57:39 +03:00
src Add .fig file import (Kiwi codec → scene graph) 2026-02-27 23:01:35 +03:00
src-tauri Initial commit: Tauri + CanvasKit + React editor scaffold 2026-02-27 15:48:29 +03:00
.gitignore Initial commit: Tauri + CanvasKit + React editor scaffold 2026-02-27 15:48:29 +03:00
.oxfmtrc.json Add oxlint, oxfmt, typescript-go 2026-02-27 15:52:55 +03:00
bun.lock Add .fig file import (Kiwi codec → scene graph) 2026-02-27 23:01:35 +03:00
FIGMA_UI3_CDP_FINDINGS.md Migrate React → Vue 3 + VueUse + Reka UI 2026-02-27 21:25:31 +03:00
index.html Migrate React → Vue 3 + VueUse + Reka UI 2026-02-27 21:25:31 +03:00
oxlint.json Migrate React → Vue 3 + VueUse + Reka UI 2026-02-27 21:25:31 +03:00
package.json Add .fig file import (Kiwi codec → scene graph) 2026-02-27 23:01:35 +03:00
PLAN.md Initial commit: Tauri + CanvasKit + React editor scaffold 2026-02-27 15:48:29 +03:00
README.md Initial commit: Tauri + CanvasKit + React editor scaffold 2026-02-27 15:48:29 +03:00
tsconfig.json Migrate React → Vue 3 + VueUse + Reka UI 2026-02-27 21:25:31 +03:00
tsconfig.node.json Initial commit: Tauri + CanvasKit + React editor scaffold 2026-02-27 15:48:29 +03:00
vite.config.ts Migrate React → Vue 3 + VueUse + Reka UI 2026-02-27 21:25:31 +03:00

Tauri + React + Typescript

This template should help get you started developing with Tauri, React and Typescript in Vite.