diff --git a/CHANGELOG.md b/CHANGELOG.md index f57c84c01..5162e64ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -556,6 +556,7 @@ - Fix component property override resolution through clone chains. - Fix text/property overrides clobbered by second transitive sync. + - Fix text rendering with wrong fonts on file open — all font weights (including default family) are now loaded before the first render. - Fix `weightToStyle` mapping: weight 400 now correctly maps to "Regular" instead of "Medium". - Fix detached ArrayBuffer crash when switching pages after saving — export worker now copies image buffers before transferring. @@ -679,6 +680,7 @@ - Add `geometry.ts` with shared rotation math (`degToRad`, `radToDeg`, `rotatePoint`, `rotatedCorners`, `rotatedBBox`). - Extract `isArrayMixed()` helper for multi-selection property panels. + - Add `motion-v` for declarative animations — used in mobile drawer (spring-animated height with pan gestures) and toolbar (layout-animated category switching with directional slide transitions). - Mobile drawer: replace `useSwipe` + manual rAF animation with `motion.div` `:animate` + `@pan`/`@panEnd`; always-on tab state (no more null `activeRibbonTab`); content stays rendered when closed. - Mobile toolbar: replace manual `scrollWidth` measuring + inline CSS transitions with `motion.div layout` + `AnimatePresence` directional slide variants. @@ -829,15 +831,18 @@ - Fix font picker dropdown truncating long font names. - Show explanation in font picker when Local Font Access API unavailable (Safari/Firefox). + - Auto-populate GitHub Release notes from CHANGELOG.md via `ffurrer2/extract-release-notes@v2`. - Skip already-published npm versions on CI re-runs instead of failing. - Exclude non-app directories from Vite file watcher. + - Extract shared color constants (`BLACK`, `TRANSPARENT`, `DEFAULT_SHADOW_COLOR`) — replaces 8 inline literals across core. - Extract shared `NodeContextMenuContent` component to avoid menu duplication. - Fix `@open-pencil/core` dep in MCP package: `workspace:*` for local dev (pnpm resolves at publish time). - Replace store thunks with a late-binding proxy. + - Clipboard roundtrip tests: encode to Figma Kiwi binary → decode → verify. - 9 visual regression snapshot tests for effects rendering. - Zoom/pan E2E tests and pipeline benchmark. @@ -869,6 +874,7 @@ - Import additional properties from Figma clipboard: `layoutAlignSelf`, `clipsContent`, `fontWeight`, `italic`, `letterSpacing`, `lineHeight`. - Convert `letterSpacing` PERCENT units to pixels based on font size. + - 7 new clipboard import unit tests (14 total). ### Fixed @@ -1008,11 +1014,13 @@ First public alpha. The editor is functional but not production-ready. - ScrubInput drag-to-change number controls. - Resizable side panels via reka-ui Splitter. + - .fig file import via Kiwi binary codec (194 definitions, ~390 fields). - .fig file export with Kiwi encoding, Zstd compression, thumbnail generation. - Figma clipboard: copy/paste between OpenPencil and Figma. - Round-trip fidelity for supported node types. + - Built-in AI chat in properties panel (⌘J). - Direct browser → OpenRouter communication, no backend. - Model selector: Claude, Gemini, GPT, DeepSeek, Qwen, Kimi, Llama. @@ -1020,10 +1028,12 @@ First public alpha. The editor is functional but not production-ready. - Streaming markdown responses (vue-stream-markdown). - Tool call timeline with collapsible details. + - JSX export of selected nodes with Tailwind-like shorthand props. - Syntax highlighting via Prism.js. - Copy to clipboard. + - `info` — document stats, node types, fonts. - `tree` — visual node tree. - `find` — search by name/type. @@ -1038,21 +1048,25 @@ First public alpha. The editor is functional but not production-ready. - `analyze clusters` — repeated patterns. - All commands support `--json`. + - Scene graph with flat Map storage and parentIndex tree. - FigmaAPI with ~65% Figma plugin API compatibility. - JSX renderer (TreeNode builder functions with shorthand props). - Kiwi binary codec (encode/decode). - Vector network blob encoder/decoder. + - Tauri v2 (~5 MB). - Native menu bar, save/open dialogs. - System font enumeration via font-kit. - Zstd compression in Rust. - macOS and Windows builds via GitHub Actions. + - Runs at [app.openpencil.dev](https://app.openpencil.dev). - No installation required. - File System Access API for save/open (Chrome/Edge), download fallback elsewhere. + - [openpencil.dev](https://openpencil.dev) — VitePress site with user guide, reference, and development docs. - Deployed via Cloudflare Pages.