Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
f8bc33c
PoC
jackmcdade Feb 9, 2026
7b8275d
support aspect ratio
jackmcdade Feb 9, 2026
3577be5
Use a stack. Finetune UI. Add crop icon.
jackmcdade Feb 9, 2026
bfed514
Fill the crop box
jackmcdade Feb 9, 2026
9386fca
fix background leak
jackmcdade Feb 10, 2026
49e32fd
Preserves the crop box's aspect ratio while maintaining the original …
jackmcdade Feb 10, 2026
bbba1f2
Export cropped image as the original MIME type
jackmcdade Feb 10, 2026
b598f7d
Translatable string
jackmcdade Feb 10, 2026
34281a7
cleanup
jackmcdade Feb 10, 2026
cf6e43c
Prevent unintended upload on cancel
jackmcdade Feb 10, 2026
78e9c9f
Reset ratio/flipped state after close
jackmcdade Feb 10, 2026
6f3e865
Redirect to new asset after crop
jackmcdade Feb 10, 2026
9d3bcc1
Cache bust an image when it's replaced with a cropped version
jackmcdade Feb 10, 2026
8d51966
only clear the blob when not uploading so you don't lose the crop on …
jackmcdade Feb 10, 2026
d1d5d9f
Fix async cache bust
jackmcdade Feb 10, 2026
40e64a3
Refactor cache busting to use Vue refs instead of manipulating the DO…
jackmcdade Feb 10, 2026
89c5ab3
Use server side mimetype data
jackmcdade Feb 10, 2026
01af87b
convert gifs to pngs when cropping
jackmcdade Feb 10, 2026
ecdfa97
Fix cross-origin image handling
jackmcdade Feb 10, 2026
e3cb983
Remove setTimeout magic number in CropEditor.vue, use proper image lo…
jackmcdade Feb 10, 2026
3667ed5
accessibility and key bindings
jackmcdade Feb 10, 2026
380a25b
fix file extension/mime mapping regression
jackmcdade Feb 10, 2026
6296135
hold down opt to resize from center like photoshop
jackmcdade Feb 10, 2026
394feda
Only use Alt key.
jackmcdade Feb 10, 2026
cb23805
when replacing, update the filename extension if the MIME type change…
jackmcdade Feb 10, 2026
064897e
Update filename extension only when saving as new copy
jackmcdade Feb 10, 2026
418a092
fix cors check
jackmcdade Feb 10, 2026
239753f
cleanup dead code
jackmcdade Feb 10, 2026
f6e258b
revert change to ConfirmationModal and use a custom modal.
jasonvarga Feb 11, 2026
9797244
indent
jasonvarga Feb 12, 2026
06083bb
remove gif support. it would convert to a png and lose animation anyw…
jasonvarga Feb 12, 2026
43f4163
reuse existing image cache busting logic, which works better ...
jasonvarga Feb 12, 2026
6349115
composition api, move script to top
jasonvarga Feb 12, 2026
26cae5c
clean up event listeners
jasonvarga Feb 12, 2026
6b6efff
clean up the clean up
jasonvarga Feb 12, 2026
20460ab
closed event isnt needed as we have v-modelable open
jasonvarga Feb 12, 2026
29fccee
stack was emitting opened too early, before the slot is available. cr…
jasonvarga Feb 12, 2026
9d55e52
catch cors issues earlier and close the editor with a toast. guards n…
jasonvarga Feb 12, 2026
f9b86a4
remove guard, it'll be ready there. use decode() which works for when…
jasonvarga Feb 12, 2026
393e989
remove guard
jasonvarga Feb 12, 2026
ea26165
simplify crop event handling
jasonvarga Feb 12, 2026
a7a0fd8
guard is needed ...
jasonvarga Feb 12, 2026
5b4f2f2
escape binding isnt needed since the stack already has its own.
jasonvarga Feb 12, 2026
7c215f6
remove some cropper guards
jasonvarga Feb 12, 2026
2580633
Better cropping canvas, checkerboard bg, slight autocrop grid for bet…
jackmcdade Feb 12, 2026
9b4ca7e
pass event handlers directly to cropper. it handles unbinding them.
jasonvarga Feb 12, 2026
46b47af
allow clearing of aspect ratio
jasonvarga Feb 12, 2026
47b56b0
null
jasonvarga Feb 12, 2026
28828e9
cropper has a reset method. the way we had it, it didnt move the imag…
jasonvarga Feb 12, 2026
e11c6b6
zoomies
jasonvarga Feb 12, 2026
aa10dc5
drag the image when holding space
jasonvarga Feb 12, 2026
b3ce279
Revert "drag the image when holding space"
jasonvarga Feb 12, 2026
8145228
move uploading into cropper so the modal stays open during the upload
jasonvarga Feb 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
"clsx": "^2.1.1",
"codemirror": "5.65.12",
"cookies-js": "^1.2.2",
"cropperjs": "^1.6.2",
"cva": "^1.0.0-beta.3",
"floating-vue": "^5.2.2",
"fuzzysort": "^3.1.0",
Expand Down
Loading
Loading