Commit Graph

1594 Commits

Author SHA1 Message Date
Maze Winther cef8766acb fix(desktop): fall back to XWayland under WSL2 2026-07-24 14:25:29 +02:00
Maze Winther 96cad76ed2 style(desktop): sort imports in theme.rs 2026-07-24 14:25:29 +02:00
Maze Winther 91c714c469 chore(tooling): prepare workspace configs for a crates/ directory 2026-07-24 14:25:03 +02:00
Maze Winther df6c16413c Merge remote-tracking branch 'upstream/main' 2026-07-23 22:06:28 +02:00
Maze Winther 5a445a3a08 feat(desktop): start the main window maximized 2026-07-23 21:49:45 +02:00
Maze Winther be605d8479 feat(desktop): follow system appearance with semantic themes 2026-07-23 21:49:21 +02:00
Maze Winther 179dd7dded
docs: add Windows proto install instructions
Co-authored-by: Maze <mazeincoding@users.noreply.github.com>
2026-07-23 19:08:51 +00:00
Maze Winther 0b5310a17b fix: upload brand marks to R2 bucket root 2026-07-22 21:08:31 +02:00
Maze Winther ce5d396856 chore: add brand marks, changelogs, and logo upload 2026-07-22 17:22:58 +02:00
Maze Winther ed572093e9 chore: add Cargo lockfile 2026-07-22 17:22:58 +02:00
Cursor Agent 5e0696bc9b
fix(tooling): set bun as javascript package manager so moon auto-installs deps
With 'javascript: {}', moon v2 never adds an InstallDependencies action
to the graph, so fresh clones fail with 'vite: command not found' when
running any web/api task (#846). The javascript toolchain drives
installs and must be told bun is the package manager.

Also drop 'bun.installDependencies: true' (defaults to true, and was
inert without packageManager set) and stale comments.

Fixes #846

Co-authored-by: Maze <mazeincoding@users.noreply.github.com>
2026-07-17 21:19:13 +00:00
Maze Winther bab8af831b
Merge branch 'rewrite'
Co-authored-by: Maze <mazeincoding@users.noreply.github.com>
2026-07-10 19:57:55 +00:00
Maze Winther b59255cca8
feat(desktop): scaffold desktop app
Co-authored-by: Maze <mazeincoding@users.noreply.github.com>
2026-07-10 19:57:05 +00:00
Maze Winther a2b520fbb6 ci: update workflow for rewrite 2026-06-21 15:14:01 +02:00
Maze Winther a53cd53f55 Merge branch 'rewrite' 2026-06-21 15:09:34 +02:00
Maze Winther 7ae51862b6 chore(tooling): remove root package.json, let moon manage per-project 2026-06-21 14:59:52 +02:00
Maze Winther 6c81db47c0 chore(tooling): replace turbo with moon, add proto toolchain 2026-06-21 14:59:52 +02:00
Maze Winther 8768f6dd8f feat(api): add elysia server for cloudflare workers 2026-06-21 14:59:52 +02:00
Maze Winther 107d7ab714 chore: gitignore 2026-06-14 21:05:15 +02:00
Maze Winther b315020416 feat: add hello world to home page 2026-05-28 00:51:29 +02:00
Maze Winther a5888e2087 chore: remove architecture reference from package.json 2026-05-28 00:37:25 +02:00
Maze Winther b601ab4b24 docs: fix readme conflict markers 2026-05-27 22:34:49 +02:00
Maze Winther 6482461a63 docs: use readme from origin/main 2026-05-27 22:29:47 +02:00
Maze Winther f402fb8337 chore: replace codebase with rewrite 2026-05-27 22:27:11 +02:00
Maze Winther 446e68e65e chore: monorepo setup and web foundation 2026-05-27 00:30:10 +02:00
Maze Winther 238750c025 docs: refocus readme on rewrite 2026-05-18 17:06:40 +02:00
Senthil Raja R 6fdb1559aa
feat: display keyboard shortcuts on toolbar buttons (#788)
- Add shortcut hints to toolbar buttons via tooltip text
- Integrate useKeyboardShortcutsHelp hook for consistent shortcut retrieval
- Timeline toolbar: split, duplicate, delete, snapping, bookmark buttons
- Preview toolbar: play/pause button
- Format: tooltip text appended with '(Key)' or '(Key1 or Key2)'
- Gracefully handle actions without defined shortcuts
2026-05-17 04:27:16 +02:00
Maze Winther 3f2d5cfcaa chore: init 2026-05-09 00:42:26 +02:00
Maze Winther b3d35fbc2a chore: clean state 2026-05-06 22:59:08 +02:00
Maze fbe3db74d7
chore: update copyright year 2026-05-06 22:53:51 +02:00
Maze Winther d1f4cb615b docs: fix readme 2026-05-02 16:51:01 +02:00
Maze Winther 19f1086492 Merge branch 'domain-import' 2026-05-02 16:46:13 +02:00
Maze Winther 8ab3aeba7c docs: move NOTES.md file 2026-05-02 16:38:06 +02:00
Maze Winther 6423b352d6 chore: ignore migrations file 2026-05-02 16:26:09 +02:00
Maze Winther 7b942b363d chore: remove file 2026-05-02 03:27:23 +02:00
Maze Winther 8b8d65b509 refactor: collapse mask definition registry to a single keyed registry
The freeform mask was assembled on every getMaskDefinition("freeform") call,
re-spreading params and injecting a wrong SquareIcon placeholder, with a type
cast to suppress the structural mismatch. Root cause: MasksRegistry was keyed
on BuiltinMaskType, so freeform had no entry.

- Re-key MasksRegistry from BuiltinMaskType to MaskType
- Register freeform alongside builtins in registerDefaultMasks, with
  PenToolAddIcon as its menu icon
- getMaskDefinition and getMaskDefinitionsForMenu become plain registry
  lookups with no branching, no manual spreading, no cast
- Rename RegisteredBuiltinMaskDefinition to RegisteredMaskDefinition and
  tighten computeParamUpdate return type to Partial<BaseMaskParams>

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-02 03:27:23 +02:00
Maze Winther 23187b0b6a refactor: remove dead tangent handle variant
The { kind: "tangent" } MaskHandleId variant was never constructed — neither
getFreeformDisplayHandles nor any other code ever produced a tangent handle
object. The in/out control-arm branches in computeFreeformParamUpdate, the
tangent case in maskHandleIdKey, and the CUSTOM_MASK_TANGENT_SIZE rendering
path in mask-handles.tsx were all unreachable. Removed all four dead paths
and removed "tangent" from MaskHandleKind.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-02 03:27:23 +02:00
Maze Winther f66cdbfeb2 fix: address review findings in masks substrate
- Remove dead ternary in getPreferredEdges (always returned undefined; the
  all-false object was never reached by Object.values().some(Boolean))
- Document why drawWithFeather descriptors zero the feather field in the
  compositor (analytical renderer handles softness itself; zeroing prevents
  a second JFA feather pass)
- Remove legacyType from V30→V31 migration (not consumed anywhere; a
  down-migration can map type:"freeform" back to "custom" directly)
- Add V30→V31 test coverage: skip-guard branches, freeform passthrough,
  elements without a masks array
- Add snap tests for vertical-edge (bottom) and uniform-scale handle paths

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-02 03:27:23 +02:00
Maze Winther 99137fe493 docs: capture mask rust migration notes
Made-with: Cursor
2026-05-02 03:27:23 +02:00
Maze Winther 79dcec8a2e refactor: split builtin and freeform masks
Made-with: Cursor
2026-05-02 03:27:23 +02:00
Maze Winther 97f8d1968f refactor: type mask handle identifiers
Made-with: Cursor
2026-05-02 03:27:23 +02:00
Maze Winther ae1292a14b refactor: make mask renderer dispatch explicit
Made-with: Cursor
2026-05-02 03:27:23 +02:00
Maze Winther 6ea5a156b6 refactor: split mask snap dispatch
Made-with: Cursor
2026-05-02 03:27:23 +02:00
Maze Winther 401cc35743 refactor: animate params over time 2026-05-02 03:27:23 +02:00
Maze Winther b8d08df244 chore: cleanup 2026-05-02 03:27:23 +02:00
Maze Winther 2ee0a44735 refactor: unify element params 2026-05-02 03:27:23 +02:00
Maze Winther a9b9cf6bf5 chore: switch from biome to eslint + prettier; fix ton of lint issues 2026-05-02 03:27:23 +02:00
Maze Winther d6622dc6b3 chore: untrack cargo-tools files 2026-05-02 03:10:08 +02:00
Maze Winther 6ec818fc11 chore: remove accidental file
Made-with: Cursor
2026-04-26 21:31:12 +02:00
Maze Winther 6daa69635b fix: restore README header, badges, links, and star chart
Made-with: Cursor
2026-04-26 20:51:32 +02:00