You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a public isBusy() helper so demo integrations can avoid private loading and crop state.
Fixed
Preserve selected mask labels, editable mask styling, and active selection after both merged and plain exports.
Validate custom fabricGenerator results before applying mask setup, returning null with a warning instead of throwing a raw TypeError.
Reject broken restored image elements instead of treating a completed zero-dimension image as ready.
Clamp the crop rectangle inside the image bounds during move and resize operations.
Roll back crop state when mask preparation fails before crop export.
Decode exported files without requiring a global atob, and handle more transparent CSS background forms before JPEG compositing.
Guard invalid downsample dimensions and remove stale load-rollback state captured during image replacement.
Use a global internal operation token so duplicate module evaluations do not break merge-owned load calls.
Keep the docs demo busy-state checks on public API, clear successful Base64 loads, and align follow-up UI refreshes with the configured animation duration.
Declare Fabric as a dev dependency as well as a peer dependency so local production audits do not treat the test peer install as runtime package surface.