syntaxbullet
4ad0bb8b2c
feat: enhance layer masking functionality and brush controls
...
- Refactor LayersSheet component to support mask editing state and improve layer visibility handling.
- Introduce functions to collect mask layer IDs and count display layers excluding masks.
- Update BrushControls to include mask view mode options and a Done button for exiting mask editing.
- Modify brush session handling to support brush previews when editing masks.
- Implement a new BrushPreviewRenderer for rendering brush strokes with visual feedback.
- Add document geometry utilities for transforming points and resolving layer bounds.
- Ensure proper cleanup of brush preview on pointer leave and other interactions.
2026-07-03 20:49:29 +02:00
syntaxbullet
15f3a934e0
feat(masks): add mask editing mode
2026-07-03 18:07:04 +02:00
syntaxbullet
4a21b28ed0
fix(masks): render layer masks
2026-07-03 18:00:28 +02:00
syntaxbullet
29c0d1eafd
fix(tools): respect pan while painting
2026-07-03 17:56:41 +02:00
syntaxbullet
64aebbe23a
feat(tools): add brush controls
2026-07-03 17:49:00 +02:00
syntaxbullet
e75f8bc0a7
fix(brush): stop painting after pointer release
2026-07-03 17:43:13 +02:00
syntaxbullet
c13a6f5917
feat(tools): add eraser tool
2026-07-03 17:39:00 +02:00
syntaxbullet
9fc0c18114
feat(tools): add brush raster painting
2026-07-03 17:37:43 +02:00
syntaxbullet
665f4a5340
feat(core): add raster layer type
2026-07-03 17:34:02 +02:00
syntaxbullet
c946fb4c93
feat(tools): add crop tool
2026-07-03 17:32:46 +02:00
syntaxbullet
5e4cde4df9
fix(export): apply layer masks in png export
2026-07-03 17:31:24 +02:00
syntaxbullet
0ffbc4f68b
feat(history): add undo redo stack
2026-07-03 17:30:31 +02:00
syntaxbullet
fedeaffa57
feat(layers): add layer management panel
2026-07-03 17:26:50 +02:00
syntaxbullet
ed4d419c4d
feat(view): import images from file or clipboard
2026-07-03 16:19:44 +02:00
syntaxbullet
a3b4a4a1b0
refactor(transform): resolve target bounds
2026-07-03 16:12:26 +02:00
syntaxbullet
ff5bb43382
feat(view): show transform measurements
2026-07-03 16:08:45 +02:00
syntaxbullet
166310ace0
feat(input): drag artboard transform controls
2026-07-03 16:08:08 +02:00
syntaxbullet
28fcbdceda
feat(input): support artboard selection
2026-07-03 16:04:43 +02:00
syntaxbullet
46aa1b8595
feat(view): add contextual layer controls
2026-07-03 16:04:43 +02:00
syntaxbullet
b0732c8af1
feat(view): add viewport activity island
2026-07-03 11:43:00 +02:00
syntaxbullet
84a610f019
refactor(commands): centralize command ids
2026-07-03 11:31:02 +02:00
syntaxbullet
8320203f11
Add pan tool toolbar
2026-07-03 11:27:48 +02:00
syntaxbullet
b5c7f87a20
refactor(view): extract canvas viewport hooks
2026-07-03 10:16:34 +02:00
syntaxbullet
c7730518ad
feat(input): route temporary pan through tool state
2026-07-03 10:14:43 +02:00
syntaxbullet
ac2a156a1f
style(view): overlay compact top bar
2026-07-03 10:02:22 +02:00
syntaxbullet
b4f1a149c6
feat(view): show default artboard canvas
2026-07-03 10:01:02 +02:00
syntaxbullet
a460d6ea05
feat(view): wire app instance into frontend
2026-07-03 09:47:05 +02:00
syntaxbullet
79c3748b0e
feat(input): add viewport wheel zoom and panning
2026-07-03 09:47:05 +02:00
syntaxbullet
812db180cd
feat(view): wire renderer into canvas viewport
2026-07-03 09:41:37 +02:00
syntaxbullet
90897e3993
fix(renderer): derive backing size from viewport state
2026-07-03 09:41:12 +02:00
syntaxbullet
bd60d64bc0
feat(view): add canvas viewport shell
2026-07-03 09:36:25 +02:00
syntaxbullet
51027ce535
feat(view): add read-only app state hook
2026-07-03 09:36:13 +02:00
syntaxbullet
d7406e803a
chore(architecture): enforce layer boundaries
2026-07-03 09:34:21 +02:00
syntaxbullet
64838e85ba
refactor: move frontend code into view
2026-07-02 22:50:58 +02:00