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
|
ba3f253ee5
|
feat(renderer): enhance image rendering with asset synchronization and clipping
|
2026-07-03 16:34:31 +02:00 |
|
syntaxbullet
|
bc0fbea029
|
feat(renderer): render image textures
|
2026-07-03 16:23:38 +02:00 |
|
syntaxbullet
|
71e97388da
|
feat(input): select image layers on canvas
|
2026-07-03 16:20:15 +02:00 |
|
syntaxbullet
|
ed4d419c4d
|
feat(view): import images from file or clipboard
|
2026-07-03 16:19:44 +02:00 |
|
syntaxbullet
|
44295b1b2d
|
feat(renderer): render image layer placeholders
|
2026-07-03 16:19:05 +02:00 |
|
syntaxbullet
|
75466d2aa6
|
feat(commands): add image asset layer commands
|
2026-07-03 16:18:40 +02:00 |
|
syntaxbullet
|
97c3d3b7ae
|
feat(core): add intrinsic asset dimensions
|
2026-07-03 16:14:00 +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
|
bf5d9f5371
|
feat(transform): add transform session commands
|
2026-07-03 16:06:58 +02:00 |
|
syntaxbullet
|
03d4d4a3b9
|
feat(renderer): draw transform handles
|
2026-07-03 16:05:42 +02:00 |
|
syntaxbullet
|
e90b829e62
|
feat(commands): add artboard bounds command
|
2026-07-03 16:05:15 +02:00 |
|
syntaxbullet
|
4d77288450
|
feat(renderer): draw selection overlay
|
2026-07-03 16:04:43 +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
|
8965532c3a
|
feat(viewport): add fit artboard command
|
2026-07-03 11:31:55 +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
|
9e1050e5f3
|
feat(commands): add tool mode commands
|
2026-07-03 10:12:28 +02:00 |
|
syntaxbullet
|
c23efeb397
|
feat(editor): add tool interaction state
|
2026-07-03 10:10:50 +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
|
fb0c424745
|
refactor(renderer): extract artboard checkerboard drawing
|
2026-07-03 09:56:03 +02:00 |
|
syntaxbullet
|
3d32e8fbef
|
feat(renderer): draw transparent artboard checkerboard
|
2026-07-03 09:52:24 +02:00 |
|
syntaxbullet
|
f4ad35a7f8
|
feat(commands): add transparent artboard creation
|
2026-07-03 09:52:00 +02:00 |
|
syntaxbullet
|
ca9e265614
|
feat(commands): add selection commands
|
2026-07-03 09:51:26 +02:00 |
|
syntaxbullet
|
d77bdc22a9
|
feat(commands): type command payload dispatch
|
2026-07-03 09:50:39 +02:00 |
|
syntaxbullet
|
af71a49b09
|
test(commands): cover viewport command flow
|
2026-07-03 09:50:03 +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
|
dd1b892034
|
feat(input): add DOM event command adapters
|
2026-07-03 09:37:25 +02:00 |
|
syntaxbullet
|
91436086a8
|
feat(renderer): add WebGL renderer skeleton
|
2026-07-03 09:36:43 +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
|
9422494458
|
feat(app): add composition root
|
2026-07-03 09:36:04 +02:00 |
|
syntaxbullet
|
d7406e803a
|
chore(architecture): enforce layer boundaries
|
2026-07-03 09:34:21 +02:00 |
|
syntaxbullet
|
a8dbd26474
|
feat(commands): add app state dispatcher foundation
|
2026-07-03 09:28:06 +02:00 |
|
syntaxbullet
|
697d12725d
|
feat(editor): add transient app state foundation
|
2026-07-03 09:24:08 +02:00 |
|
syntaxbullet
|
02df52c978
|
feat: add core domain model foundations
|
2026-07-02 23:11:14 +02:00 |
|
syntaxbullet
|
5f767a6688
|
refactor: move server entrypoint to root
|
2026-07-02 22:52:46 +02:00 |
|
syntaxbullet
|
64838e85ba
|
refactor: move frontend code into view
|
2026-07-02 22:50:58 +02:00 |
|
syntaxbullet
|
f9ec3e5528
|
init: bootstrap image studio
|
2026-07-02 22:39:35 +02:00 |
|