/** * Detects the Fabric.js v7 module from the constructor's * first argument or from `globalThis.fabric`, and reports * whether a usable module was found. * * Two delivery channels share the same source tree: * * 1. **ESM consumers** pass the imported Fabric module explicitly: * `new ImageEditor(fabric, options)`. Detected by `Canvas` being a * function on the first argument. * * 2. **UMD / CDN consumers** rely on `