Adds the shared image cropper + immediate-save upload host that Turf Monster
had built locally, so any consumer can add a cropped image upload (avatar,
banner, logo) with one imageUploadHost(...) x-data + the cropper assets.
- studio/_cropper_assets — cropper.js 1.6.2 CSS+JS + the three inline factories
(engine ships JS inline): cropPhotoModal (modal x-data), submitFormWithProgress
(loading card + toast around a Turbo submit), imageUploadHost (crop -> hidden
input -> immediate submit). The JS rides with the page-scoped assets, NOT the
modal host, so it works even when a consumer overrides studio/modals/_host
(Turf Monster does, substantially — the swap/advance animation host).
- studio/modals/_crop_photo — the cropper modal content.
- studio/modals/_saving — generic loading card (title from props.title).
Register both in your studio/modals/host block (see CHANGELOG Integration).
Bump 0.4.11 -> 0.4.12 + CHANGELOG.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>