Danila Poyarkov
70a6c86da6
test(canvas): cover outlined complex text fills
2026-05-30 12:49:27 +03:00
Danila Poyarkov
94dd6cf3aa
fix(canvas): tune Figma pattern origin
2026-05-26 21:21:49 +03:00
Danila Poyarkov
c1532610db
fix(canvas): tighten Figma text and pattern fidelity
2026-05-26 18:30:08 +03:00
Danila Poyarkov
b95943697a
test(canvas): cover pattern fill visuals
2026-05-26 17:41:36 +03:00
Danila Poyarkov
b3570cb588
test(canvas): cover text decoration visuals
2026-05-26 15:34:05 +03:00
Danila Poyarkov
abd795bd9a
chore: format codebase
2026-05-24 12:15:29 +03:00
Danila Poyarkov
8c85d2b953
fix(canvas): improve Figma mask and text fidelity
2026-05-23 00:18:33 +03:00
Danila Poyarkov
5b12b1597f
test(canvas): make luminance tile fixture visible
2026-05-22 23:55:20 +03:00
Danila Poyarkov
ea08ea1370
test(canvas): cover luminance masks and tile transforms
2026-05-22 23:52:47 +03:00
Danila Poyarkov
f8db73949e
test(canvas): cover renderer showcase visuals
2026-05-22 23:24:26 +03:00
Danila Poyarkov
e65d53c9d3
test(canvas): add visual blend and mask fixtures
2026-05-22 23:13:46 +03:00
Danila Poyarkov
ad0b984057
test(canvas): cover smoothed corner visuals
2026-05-22 23:09:55 +03:00
Danila Poyarkov
3a85632f38
refactor(ui): localize tooltip labels
2026-05-19 15:41:38 +03:00
Danila Poyarkov
8cb6d008fc
fix(ai): allow custom OpenRouter models
2026-05-19 15:10:32 +03:00
Danila Poyarkov
83af1453d8
fix(fonts): load Google font previews
2026-05-19 13:02:15 +03:00
Danila Poyarkov
59550c1c07
fix(fonts): restore font picker selection
2026-05-19 12:52:11 +03:00
Danila Poyarkov
f3649550f2
chore: enable stricter oxlint rules
2026-05-18 18:58:30 +03:00
Danila Poyarkov
a4d4cf1bee
fix(canvas): switch edited text on click
2026-05-17 20:49:25 +03:00
Danila Poyarkov
a535c6be8a
fix(canvas): edit nested text on drill double-click
2026-05-17 20:46:13 +03:00
Danila Poyarkov
28f7ef165b
feat(text): wrap styled outline text
2026-05-17 20:23:55 +03:00
Danila Poyarkov
1c8fe1ee8b
feat(editor): add outline stroke command
2026-05-17 20:18:14 +03:00
Danila Poyarkov
655f4fcb89
test(ui): cover boolean outline menu placement
2026-05-17 20:09:53 +03:00
Danila Poyarkov
197e19b6f4
test(e2e): cover live move repaint and component labels
2026-05-17 02:11:04 +03:00
Danila Poyarkov
7cfa08aec5
fix(clipboard): normalize glyph advance by fontSize
...
Figma expects derivedTextData glyph advance values normalized to
font-size units (advance / fontSize), not absolute pixel values.
This caused pasted text to appear horizontally mirrored because
Figma multiplied the already-absolute advances by fontSize again.
2026-05-16 18:02:10 +03:00
Danila Poyarkov
680350cdcb
test(e2e): extract shared editor setup and store helpers
...
- useEditorSetup() / useEditorSetupWithClear() in tests/e2e/fixtures.ts
- Migrated 15 simple specs to shared fixture
- Moved getSelectedNode/getSelectedNodes to tests/helpers/store.ts
- Replaced inline getSelectedNode in 4 specs
- Reverted 8 specs with custom beforeAll setup (not fixture-compatible)
- Test duplication in tests/: 329 → 307 clones (10.12% → 8.95%)
2026-05-16 16:55:34 +03:00
Danila Poyarkov
11e38b626a
test(e2e): extract shared editor setup fixture
...
- useEditorSetup() / useEditorSetupWithClear() in tests/e2e/fixtures.ts
- Migrated 17 specs to shared fixture, removing ~300 lines of boilerplate
- Moved getSelectedNode/getSelectedNodes to shared store helpers
- Replaced inline getSelectedNode in 4 specs with shared import
- Test duplication: 329 → 308 clones (10.12% → 9.08%)
2026-05-16 16:19:03 +03:00
Danila Poyarkov
23583525f5
test(e2e): hide rulers in visual regression snapshots
...
- Add &no-rulers to all E2E test URLs that use &no-chrome
- Regenerate snapshots without ruler ticks/selection badges
- Remove stale snapshot dirs from old test paths
2026-05-16 15:36:37 +03:00
Danila Poyarkov
698bcde00b
refactor(vue): share generated test id helpers
2026-05-15 13:10:44 +03:00
Danila Poyarkov
6b406002dd
test(e2e): remove remaining raw test id strings
2026-05-15 13:02:41 +03:00
Danila Poyarkov
1583181d3a
test(e2e): remove raw test id selectors
2026-05-15 12:55:01 +03:00
Danila Poyarkov
2f94ce6510
test(e2e): use Playwright test id locators
2026-05-15 12:49:49 +03:00
Danila Poyarkov
b46295a7bb
fix(editor): close padding editor on canvas click
2026-05-15 11:49:18 +03:00
Danila Poyarkov
031897c73a
test(editor): cover auto-layout padding editor
2026-05-14 22:37:16 +03:00
Danila Poyarkov
686ca5326f
chore: enforce Vue style and state boundaries
2026-05-14 22:05:43 +03:00
Danila Poyarkov
9ab6bfa3bf
fix(app): restore left panel scrolling
2026-05-13 05:47:32 +03:00
Danila Poyarkov
8cf51ffefd
perf(editor): use repaint previews while resizing
2026-05-13 05:38:14 +03:00
Danila Poyarkov
1242fa7086
fix(editor): keep drag previews in sync
2026-05-13 05:34:04 +03:00
Danila Poyarkov
4e64644385
perf(editor): use repaint previews while dragging
2026-05-13 05:23:06 +03:00
Danila Poyarkov
3708b4fd1b
perf(editor): avoid layout during drag moves
2026-05-13 05:15:15 +03:00
Danila Poyarkov
49620ef26b
fix(vue): distinguish layer child drops
2026-05-13 05:10:29 +03:00
Danila Poyarkov
1f273f880e
fix(editor): guard drill selection text editing
2026-05-13 05:07:27 +03:00
Danila Poyarkov
aa9f03407a
Revert "fix(editor): delay text editing after drill selection"
...
This reverts commit b23bb9d3e7 .
2026-05-13 04:59:24 +03:00
Danila Poyarkov
b23bb9d3e7
fix(editor): delay text editing after drill selection
2026-05-13 04:58:42 +03:00
Danila Poyarkov
fb01bcb433
fix(editor): hide noop auto-layout drag indicators
2026-05-13 04:52:40 +03:00
Danila Poyarkov
08b9e56a15
fix(editor): restore auto-layout instance dragging
2026-05-13 04:47:28 +03:00
Danila Poyarkov
c38778094d
fix(vue): restore layer tree reordering
2026-05-13 04:47:23 +03:00
Danila Poyarkov
9daf260471
feat(components): render asset detail previews
...
- Generate PNG previews for the selected component/default variant in the details dialog
- Revoke stale preview URLs and refresh on scene changes
- Assert the rendered preview image in assets e2e coverage
2026-05-12 22:24:16 +03:00
Danila Poyarkov
0a53c91a46
feat(components): add asset details dialog
...
- Add a Figma-style component details dialog from local Assets
- Show preview, description, library key, documentation link, variant properties, and insert action
- Cover details metadata in the Assets panel e2e test
2026-05-12 22:16:07 +03:00
Danila Poyarkov
880fcf3d5b
feat(components): surface library metadata in assets
...
- Show imported library badges in the local Assets panel
- Display component descriptions and documentation links from Figma metadata
- Cover library metadata rendering in the Assets panel test
2026-05-12 21:56:07 +03:00
Danila Poyarkov
4bf161b983
fix(components): sync instances when switching variants
...
- Swap instance contents when changing variants instead of only updating componentId
- Recreate instance redo state without stale child IDs
- Insert assets into entered containers using local coordinates
- Fall back to Windows paths when URL parsing fails
2026-05-12 18:43:11 +03:00