Yoga WASM (yoga-layout v3.2.1): - Vertical/horizontal auto-layout with gap, padding, alignment ✅ - Nested frames with flex-grow ✅ - Space-between distribution ✅ - 1000-node layout in 3ms ✅ Kiwi binary codec (from figma-use multiplayer module): - 194-definition Figma schema (2178 lines) compiles in 6ms - Encode 4 nodes → 237 bytes Zstd-compressed - Full round-trip: encode → Zstd compress → decompress → decode ✅ - Patch kiwi-schema to allow sparse field IDs (Figma uses IDs > 312) Extracted files: schema.ts, codec.ts, protocol.ts, client.ts, index.ts
40 lines
1 KiB
JSON
40 lines
1 KiB
JSON
{
|
|
"name": "open-pencil-app",
|
|
"private": true,
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc && vite build",
|
|
"preview": "vite preview",
|
|
"tauri": "tauri",
|
|
"lint": "oxlint -c oxlint.json src/",
|
|
"format": "oxfmt --write src/",
|
|
"typecheck": "tsgo --noEmit",
|
|
"check": "bun run lint && bun run typecheck"
|
|
},
|
|
"dependencies": {
|
|
"@tauri-apps/api": "^2",
|
|
"@tauri-apps/plugin-opener": "^2",
|
|
"canvaskit-wasm": "^0.40.0",
|
|
"kiwi-schema": "^0.5.0",
|
|
"react": "^19.1.0",
|
|
"react-dom": "^19.1.0",
|
|
"yoga-layout": "^3.2.1"
|
|
},
|
|
"devDependencies": {
|
|
"@tauri-apps/cli": "^2",
|
|
"@types/react": "^19.1.8",
|
|
"@types/react-dom": "^19.1.6",
|
|
"@typescript/native-preview": "^7.0.0-dev.20260227.1",
|
|
"@vitejs/plugin-react": "^4.6.0",
|
|
"oxfmt": "^0.35.0",
|
|
"oxlint": "^1.50.0",
|
|
"typescript": "~5.8.3",
|
|
"vite": "^7.0.4"
|
|
},
|
|
"patchedDependencies": {
|
|
"kiwi-schema@0.5.0": "patches/kiwi-schema@0.5.0.patch"
|
|
}
|
|
}
|