openpencil/package.json
Danila Poyarkov ec90f35df8 PoC 2 & 3: Yoga WASM layout + Kiwi codec
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
2026-02-27 17:16:21 +03:00

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"
}
}