{"_id":"@cesarv/v-image-crop-dialog","_rev":"8-b6227155031103a8a2bf842855ff831c","name":"@cesarv/v-image-crop-dialog","dist-tags":{"latest":"2.0.0"},"versions":{"0.0.1":{"name":"@cesarv/v-image-crop-dialog","version":"0.0.1","keywords":["vue","vue3","vuetify","vuetify3","image","cropper","crop","dialog","typescript","component","image-cropper","vue-component","webp"],"author":{"name":"Cesar Vieira","email":"cesarvieira.dev@gmail.com"},"license":"ISC","_id":"@cesarv/v-image-crop-dialog@0.0.1","maintainers":[{"name":"cesarv","email":"cesarvieira.dev@gmail.com"}],"homepage":"https://github.com/cesarvieira/v-image-crop-dialog#readme","bugs":{"url":"https://github.com/cesarvieira/v-image-crop-dialog/issues"},"dist":{"shasum":"be0bcbc26e20dbe3fcff7f40568a9afe9ce80e49","tarball":"https://registry.npmjs.org/@cesarv/v-image-crop-dialog/-/v-image-crop-dialog-0.0.1.tgz","fileCount":9,"integrity":"sha512-oxRe9DzcM9x01vt67tFYsWT1fgFqErk546IRKYShNeaZeeSOHYscZQ0/Fx16coN14FxoRwB2lK9y13GVi/3Xmg==","signatures":[{"sig":"MEYCIQDkueU06AgbfbxkAVS5am+1NO+2uhXdkTycYckxaAT0GwIhAKTFEhP1QwKtPXnx3FDxqkYk4s7F0Y/J57gOY85rsRrV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":290946},"main":"dist/v-image-crop-dialog.umd.js","types":"dist/index.d.ts","module":"dist/v-image-crop-dialog.mjs","exports":{"./dist/v-image-crop-dialog.css":"./dist/v-image-crop-dialog.css"},"gitHead":"f969f7358a03bc5cddfef15969e157849975f95e","scripts":{"lint":"eslint .","build":"vite build","playground":"vite --config playground/vite.config.ts","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"cesarv","email":"cesarvieira.dev@gmail.com"},"repository":{"url":"git+https://github.com/cesarvieira/v-image-crop-dialog.git","type":"git"},"_npmVersion":"11.5.1","description":"Componente Vue 3 dialog para recorte de imagens com Vuetify 3 e TypeScript","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.5.0","dependencies":{"vue-advanced-cropper":"^2.8.9"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","vue-tsc":"^3.2.1","typescript":"^5.9.3","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.6.2","typescript-eslint":"^8.51.0","@vitejs/plugin-vue":"^6.0.3","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@stylistic/eslint-plugin":"^5.6.1","@vue/eslint-config-typescript":"^14.6.0"},"peerDependencies":{"vue":"^3.5.26","vuetify":"^3.11.5"},"_npmOperationalInternal":{"tmp":"tmp/v-image-crop-dialog_0.0.1_1767056047024_0.3988279317096106","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@cesarv/v-image-crop-dialog","version":"0.0.2","keywords":["vue","vue3","vuetify","vuetify3","image","cropper","crop","dialog","typescript","component","image-cropper","vue-component","webp"],"author":{"name":"Cesar Vieira","email":"cesarvieira.dev@gmail.com"},"license":"ISC","_id":"@cesarv/v-image-crop-dialog@0.0.2","maintainers":[{"name":"cesarv","email":"cesarvieira.dev@gmail.com"}],"homepage":"https://github.com/cesarvieira/v-image-crop-dialog#readme","bugs":{"url":"https://github.com/cesarvieira/v-image-crop-dialog/issues"},"dist":{"shasum":"144a0ecb7a11c6bb6d9500f3968412cbe5d26ebc","tarball":"https://registry.npmjs.org/@cesarv/v-image-crop-dialog/-/v-image-crop-dialog-0.0.2.tgz","fileCount":9,"integrity":"sha512-RNXDtYscZKKdViWImLPvDEEtIVagbyX1CRvIeWqu8IKHeBts7iCS88nfBAhi4s5r2AJ5rPvf7hVg0rILcUyCJw==","signatures":[{"sig":"MEUCIQCfSUM5xrVM7SU/Rs+0Mxcf5Pd1tPpdQ0xBoDETFz1RYwIgMl1W5XulisWpFsP18+yMK5dXmAI3hBWBT1XBsB0OXxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291103},"main":"dist/v-image-crop-dialog.umd.js","types":"dist/index.d.ts","module":"dist/v-image-crop-dialog.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/v-image-crop-dialog.mjs","require":"./dist/v-image-crop-dialog.umd.js"},"./dist/v-image-crop-dialog.css":"./dist/v-image-crop-dialog.css"},"gitHead":"f969f7358a03bc5cddfef15969e157849975f95e","scripts":{"lint":"eslint .","build":"vite build","playground":"vite --config playground/vite.config.ts","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"cesarv","email":"cesarvieira.dev@gmail.com"},"repository":{"url":"git+https://github.com/cesarvieira/v-image-crop-dialog.git","type":"git"},"_npmVersion":"11.5.1","description":"Componente Vue 3 dialog para recorte de imagens com Vuetify 3 e TypeScript","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.5.0","dependencies":{"vue-advanced-cropper":"^2.8.9"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","vue-tsc":"^3.2.1","typescript":"^5.9.3","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.6.2","typescript-eslint":"^8.51.0","@vitejs/plugin-vue":"^6.0.3","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@stylistic/eslint-plugin":"^5.6.1","@vue/eslint-config-typescript":"^14.6.0"},"peerDependencies":{"vue":"^3.5.26","vuetify":"^3.11.5"},"_npmOperationalInternal":{"tmp":"tmp/v-image-crop-dialog_0.0.2_1767056687760_0.8018164518940278","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@cesarv/v-image-crop-dialog","version":"1.0.0","keywords":["vue","vue3","vuetify","vuetify3","image","cropper","crop","dialog","typescript","component","image-cropper","vue-component","webp"],"author":{"name":"Cesar Vieira","email":"cesarvieira.dev@gmail.com"},"license":"ISC","_id":"@cesarv/v-image-crop-dialog@1.0.0","maintainers":[{"name":"cesarv","email":"cesarvieira.dev@gmail.com"}],"homepage":"https://github.com/cesarvieira/v-image-crop-dialog#readme","bugs":{"url":"https://github.com/cesarvieira/v-image-crop-dialog/issues"},"dist":{"shasum":"f100411790269138ce3c9fb9ca6f28702eae7ccd","tarball":"https://registry.npmjs.org/@cesarv/v-image-crop-dialog/-/v-image-crop-dialog-1.0.0.tgz","fileCount":9,"integrity":"sha512-nT5O1bvV9Dbw9MJ2BYyaj9bMTXdrOok/myWHqcorcExlfSyraM3hve11i9V4cdRK0NyS2iohQ91XxVeoM3TmFw==","signatures":[{"sig":"MEUCIA8hrZ/507EVTKLswGgcJp4sRpJ8/TUaCo4ePpIRkkeJAiEApz2QhlX1HBlu8wKCzj+RSiEq7S3KOWYmx+ceqdgh5Jk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cesarv%2fv-image-crop-dialog@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":291191},"main":"dist/v-image-crop-dialog.umd.js","types":"dist/index.d.ts","module":"dist/v-image-crop-dialog.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/v-image-crop-dialog.mjs","require":"./dist/v-image-crop-dialog.umd.js"},"./dist/v-image-crop-dialog.css":"./dist/v-image-crop-dialog.css"},"gitHead":"e5024f118bea569e4196f06c4c0a276e85a5867f","scripts":{"lint":"eslint .","build":"vite build","playground":"vite --config playground/vite.config.ts","preversion":"npm run lint && npm run type-check","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d83cb1fc-afd7-47bb-b9c1-9792633e8cb4"}},"repository":{"url":"git+https://github.com/cesarvieira/v-image-crop-dialog.git","type":"git"},"_npmVersion":"11.6.2","description":"Componente Vue 3 dialog para recorte de imagens com Vuetify 3 e TypeScript","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.12.0","dependencies":{"vue-advanced-cropper":"^2.8.9"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","vue-tsc":"^3.2.1","typescript":"^5.9.3","@eslint/compat":"^2.0.0","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.6.2","typescript-eslint":"^8.51.0","@vitejs/plugin-vue":"^6.0.3","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@stylistic/eslint-plugin":"^5.6.1","@vue/eslint-config-typescript":"^14.6.0"},"peerDependencies":{"vue":"^3.5.26","vuetify":"^3.11.5"},"_npmOperationalInternal":{"tmp":"tmp/v-image-crop-dialog_1.0.0_1767057805674_0.22169820100418125","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@cesarv/v-image-crop-dialog","version":"1.0.1","keywords":["vue","vue3","vuetify","vuetify3","image","cropper","crop","dialog","typescript","component","image-cropper","vue-component","webp"],"author":{"name":"Cesar Vieira","email":"cesarvieira.dev@gmail.com"},"license":"ISC","_id":"@cesarv/v-image-crop-dialog@1.0.1","maintainers":[{"name":"cesarv","email":"cesarvieira.dev@gmail.com"}],"homepage":"https://github.com/cesarvieira/v-image-crop-dialog#readme","bugs":{"url":"https://github.com/cesarvieira/v-image-crop-dialog/issues"},"dist":{"shasum":"a8bbd49be837ae9ffcf688121be28b6efb4ec5f3","tarball":"https://registry.npmjs.org/@cesarv/v-image-crop-dialog/-/v-image-crop-dialog-1.0.1.tgz","fileCount":9,"integrity":"sha512-IqNLethzk2aHajixCokrPu73p3FL6vtnLtZSVbfQsHtwDewUPvBTiOVZ/cfV1dduBUwxd4piG9/QXkhrh+TaKw==","signatures":[{"sig":"MEYCIQDdViZmHdrGmf8IAXgtcP2rkFEzEpaSwukrJFEJO8PvWwIhAPvrroxRswKmdG/TIpzpmFFD4oFcWuaBYyRuz1wngkO/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cesarv%2fv-image-crop-dialog@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":291191},"main":"dist/v-image-crop-dialog.umd.js","types":"dist/index.d.ts","module":"dist/v-image-crop-dialog.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/v-image-crop-dialog.mjs","require":"./dist/v-image-crop-dialog.umd.js"},"./dist/v-image-crop-dialog.css":"./dist/v-image-crop-dialog.css"},"gitHead":"dd475c49a5d1431c4d4e9b47d457fafa1fd1cdea","scripts":{"lint":"eslint .","build":"vite build","playground":"vite --config playground/vite.config.ts","preversion":"npm run lint && npm run type-check","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d83cb1fc-afd7-47bb-b9c1-9792633e8cb4"}},"repository":{"url":"git+https://github.com/cesarvieira/v-image-crop-dialog.git","type":"git"},"_npmVersion":"11.6.2","description":"Componente Vue 3 dialog para recorte de imagens com Vuetify 3 e TypeScript","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.12.0","dependencies":{"vue-advanced-cropper":"^2.8.9"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","vue-tsc":"^3.2.1","typescript":"^5.9.3","@eslint/compat":"^2.0.0","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.6.2","typescript-eslint":"^8.51.0","@vitejs/plugin-vue":"^6.0.3","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@stylistic/eslint-plugin":"^5.6.1","@vue/eslint-config-typescript":"^14.6.0"},"peerDependencies":{"vue":"^3.5.26","vuetify":"^3.11.5"},"_npmOperationalInternal":{"tmp":"tmp/v-image-crop-dialog_1.0.1_1767057808150_0.009547487332193683","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@cesarv/v-image-crop-dialog","version":"1.0.2","keywords":["vue","vue3","vuetify","vuetify3","image","cropper","crop","dialog","typescript","component","image-cropper","vue-component","webp"],"author":{"name":"Cesar Vieira","email":"cesarvieira.dev@gmail.com"},"license":"ISC","_id":"@cesarv/v-image-crop-dialog@1.0.2","maintainers":[{"name":"cesarv","email":"cesarvieira.dev@gmail.com"}],"homepage":"https://github.com/cesarvieira/v-image-crop-dialog#readme","bugs":{"url":"https://github.com/cesarvieira/v-image-crop-dialog/issues"},"dist":{"shasum":"3690769a20c85886522ec8eacc9726e6713bb459","tarball":"https://registry.npmjs.org/@cesarv/v-image-crop-dialog/-/v-image-crop-dialog-1.0.2.tgz","fileCount":9,"integrity":"sha512-iJjWF/keOFxzwHFtVNvVWychXWljkxtdESWQMjn7X4NDGSpPZVrj+4KwfpEf0djhfv5/LC9M7UdCY3LfY+qKGQ==","signatures":[{"sig":"MEQCIGBjMDT5cuEEj0BRqNqckQ12OuAd6r/vDy1PVjnTCtKdAiAJGSX0P60wibx4Jb8dMxPHI4CM0ribmLbeOBJAL7wWyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cesarv%2fv-image-crop-dialog@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":292268},"main":"dist/v-image-crop-dialog.umd.js","types":"dist/index.d.ts","module":"dist/v-image-crop-dialog.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/v-image-crop-dialog.mjs","require":"./dist/v-image-crop-dialog.umd.js"},"./dist/v-image-crop-dialog.css":"./dist/v-image-crop-dialog.css"},"gitHead":"f4ace4390bfb3cc2c3629309f4912ef116a4a9e5","scripts":{"lint":"eslint .","build":"vite build","preversion":"npm run lint && npm run type-check","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d83cb1fc-afd7-47bb-b9c1-9792633e8cb4"}},"repository":{"url":"git+https://github.com/cesarvieira/v-image-crop-dialog.git","type":"git"},"_npmVersion":"11.6.2","description":"Componente Vue 3 dialog para recorte de imagens com Vuetify 3 e TypeScript","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.12.0","dependencies":{"vue-advanced-cropper":"^2.8.9"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","vue-tsc":"^3.2.1","typescript":"^5.9.3","@eslint/compat":"^2.0.0","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.6.2","typescript-eslint":"^8.51.0","@vitejs/plugin-vue":"^6.0.3","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@stylistic/eslint-plugin":"^5.6.1","@vue/eslint-config-typescript":"^14.6.0"},"peerDependencies":{"vue":"^3.5.26","vuetify":"^3.11.5"},"_npmOperationalInternal":{"tmp":"tmp/v-image-crop-dialog_1.0.2_1767100459521_0.11596832924340572","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@cesarv/v-image-crop-dialog","version":"1.1.0","keywords":["vue","vue3","vuetify","vuetify3","image","cropper","crop","dialog","typescript","component","image-cropper","vue-component","webp"],"author":{"name":"Cesar Vieira","email":"cesarvieira.dev@gmail.com"},"license":"ISC","_id":"@cesarv/v-image-crop-dialog@1.1.0","maintainers":[{"name":"cesarv","email":"cesarvieira.dev@gmail.com"}],"homepage":"https://github.com/cesarvieira/v-image-crop-dialog#readme","bugs":{"url":"https://github.com/cesarvieira/v-image-crop-dialog/issues"},"dist":{"shasum":"bb7822cb51dbf26adeffa3a6410d7bc7ae037c8b","tarball":"https://registry.npmjs.org/@cesarv/v-image-crop-dialog/-/v-image-crop-dialog-1.1.0.tgz","fileCount":9,"integrity":"sha512-tkaS6HZnt28olg0NmPYfUplgFFAF8KwGRdM8CLj5Gn8kLg67NPtH0S8NCMzArBMM1+Ph3UCiSF+Ts9lyU9WFWQ==","signatures":[{"sig":"MEYCIQCuoVl9LRZpLeO4BDqR0m4hWtz7MZ3KBbMY/UoZrQZFBwIhALNUPafspybR+c2DAVUBmG9emk0NTykDHtiQBRPe+HSn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cesarv%2fv-image-crop-dialog@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7168826},"main":"dist/v-image-crop-dialog.umd.js","types":"dist/index.d.ts","module":"dist/v-image-crop-dialog.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/v-image-crop-dialog.mjs","require":"./dist/v-image-crop-dialog.umd.js"},"./dist/styles.css":"./dist/styles.css"},"gitHead":"b688a97e94fe729c9956d8c100724ffd1934bd0a","scripts":{"dev":"vite --config playground/vite.config.ts","lint":"eslint .","build":"vite build","prepack":"npm run build","preversion":"npm run lint && npm run type-check","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d83cb1fc-afd7-47bb-b9c1-9792633e8cb4"}},"repository":{"url":"git+https://github.com/cesarvieira/v-image-crop-dialog.git","type":"git"},"_npmVersion":"11.6.2","description":"Componente Vue 3 dialog para recorte de imagens com Vuetify 3 e TypeScript","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.13.0","dependencies":{"@mdi/font":"^7.4.47","vue-advanced-cropper":"^2.8.9"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","vue-tsc":"^3.2.1","typescript":"^5.9.3","@eslint/compat":"^2.0.0","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.6.2","typescript-eslint":"^8.51.0","@vitejs/plugin-vue":"^6.0.3","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@stylistic/eslint-plugin":"^5.6.1","@vue/eslint-config-typescript":"^14.6.0"},"peerDependencies":{"vue":"^3.5.26","vuetify":"^3.11.5"},"_npmOperationalInternal":{"tmp":"tmp/v-image-crop-dialog_1.1.0_1769117602696_0.42713580293055387","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@cesarv/v-image-crop-dialog","version":"1.1.1","keywords":["vue","vue3","vuetify","vuetify3","image","cropper","crop","dialog","typescript","component","image-cropper","vue-component","webp"],"author":{"name":"Cesar Vieira","email":"cesarvieira.dev@gmail.com"},"license":"ISC","_id":"@cesarv/v-image-crop-dialog@1.1.1","maintainers":[{"name":"cesarv","email":"cesarvieira.dev@gmail.com"}],"homepage":"https://github.com/cesarvieira/v-image-crop-dialog#readme","bugs":{"url":"https://github.com/cesarvieira/v-image-crop-dialog/issues"},"dist":{"shasum":"611512115d46a6e93f8d911e3628bb1ca01f3f31","tarball":"https://registry.npmjs.org/@cesarv/v-image-crop-dialog/-/v-image-crop-dialog-1.1.1.tgz","fileCount":9,"integrity":"sha512-NpYytZSMxMzW1bARrbu8e/dQYY3iuqepUDVPPcs0cc/n1cML4tqEiH0MfdqIFJ6Ux2ERyqSmRw8GgquxJs1UbA==","signatures":[{"sig":"MEUCIQCOVB6OmViCr+xdUrk1al46xehjDuIWdFMMxkqEPKQ72AIgZmboED8wWXxwzJPG9JwMbSSmt7xCTk6+BnAHgFRT9dA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cesarv%2fv-image-crop-dialog@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":292523},"main":"dist/v-image-crop-dialog.umd.js","types":"dist/index.d.ts","module":"dist/v-image-crop-dialog.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/v-image-crop-dialog.mjs","require":"./dist/v-image-crop-dialog.umd.js"},"./dist/styles.css":"./dist/styles.css"},"gitHead":"e861cf8c1ee334073594a3404f04425b08b6fede","scripts":{"dev":"vite --config playground/vite.config.ts","lint":"eslint .","build":"vite build","prepack":"npm run build","preversion":"npm run lint && npm run type-check","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d83cb1fc-afd7-47bb-b9c1-9792633e8cb4"}},"repository":{"url":"git+https://github.com/cesarvieira/v-image-crop-dialog.git","type":"git"},"_npmVersion":"11.6.2","description":"Componente Vue 3 dialog para recorte de imagens com Vuetify 3 e TypeScript","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.13.0","dependencies":{"vue-advanced-cropper":"^2.8.9"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.0","eslint":"^9.39.2","vue-tsc":"^3.2.1","typescript":"^5.9.3","@eslint/compat":"^2.0.0","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.6.2","typescript-eslint":"^8.51.0","@vitejs/plugin-vue":"^6.0.3","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@stylistic/eslint-plugin":"^5.6.1","@vue/eslint-config-typescript":"^14.6.0"},"peerDependencies":{"vue":"^3.5.26","vuetify":"^3.11.5","@mdi/font":"^7.4.47"},"_npmOperationalInternal":{"tmp":"tmp/v-image-crop-dialog_1.1.1_1769785654384_0.6600296319002907","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@cesarv/v-image-crop-dialog","version":"2.0.0","description":"Componente Vue 3 dialog para recorte de imagens com Vuetify 4 e TypeScript","main":"dist/v-image-crop-dialog.umd.js","module":"dist/v-image-crop-dialog.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/v-image-crop-dialog.mjs","require":"./dist/v-image-crop-dialog.umd.js"},"./dist/styles.css":"./dist/styles.css"},"sideEffects":["**/*.css"],"scripts":{"dev":"vite --config playground/vite.config.ts","type-check":"vue-tsc --noEmit","lint":"eslint .","build":"vite build","prepack":"npm run build","preversion":"npm run lint && npm run type-check"},"keywords":["vue","vue3","vuetify","vuetify4","image","cropper","crop","dialog","typescript","component","image-cropper","vue-component","webp"],"author":{"name":"Cesar Vieira","email":"cesarvieira.dev@gmail.com"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/cesarvieira/v-image-crop-dialog.git"},"bugs":{"url":"https://github.com/cesarvieira/v-image-crop-dialog/issues"},"homepage":"https://github.com/cesarvieira/v-image-crop-dialog#readme","devDependencies":{"@eslint/compat":"^2.0.0","@stylistic/eslint-plugin":"^5.6.1","@vitejs/plugin-vue":"^6.0.3","@vue/eslint-config-typescript":"^14.6.0","eslint":"^9.39.2","eslint-config-prettier":"^10.1.8","eslint-plugin-import":"^2.32.0","eslint-plugin-prettier":"^5.5.4","eslint-plugin-vue":"^10.6.2","typescript":"^5.9.3","typescript-eslint":"^8.51.0","vite":"^7.3.0","vite-plugin-dts":"^4.5.4","vue-tsc":"^3.2.1"},"peerDependencies":{"@mdi/font":"^7.4.47","vue":"^3.5.26","vuetify":"^4.0.0"},"dependencies":{"vue-advanced-cropper":"^2.8.9"},"gitHead":"e3b8c9767acca95d4482aa13c813cacabbddb7e2","_id":"@cesarv/v-image-crop-dialog@2.0.0","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-m2Qfp3aIEwJmwYbA3bzqQ0YqmGwkkKuDxpqkoaV7LUMIQ3QUWTDZGTUhNpZ3qBanXOv2HyxE4W5cLvQuK0LTJw==","shasum":"f03003e774d04dae56c1c8d43ba2b0450e7d84ae","tarball":"https://registry.npmjs.org/@cesarv/v-image-crop-dialog/-/v-image-crop-dialog-2.0.0.tgz","fileCount":9,"unpackedSize":298480,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cesarv%2fv-image-crop-dialog@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGdv/a10uMzoQYIiMQc0jkYJ30T9O1f7MmDexkh8jGefAiAxZrV4ukgrkMIYApn1DASyWzbwuxUiIHYmlz99X8xUgg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d83cb1fc-afd7-47bb-b9c1-9792633e8cb4"}},"directories":{},"maintainers":[{"name":"cesarv","email":"cesarvieira.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/v-image-crop-dialog_2.0.0_1774556709922_0.5388256764658181"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-30T00:54:06.950Z","modified":"2026-03-26T20:25:10.379Z","0.0.1":"2025-12-30T00:54:07.170Z","0.0.2":"2025-12-30T01:04:47.900Z","1.0.0":"2025-12-30T01:23:25.832Z","1.0.1":"2025-12-30T01:23:28.303Z","1.0.2":"2025-12-30T13:14:19.675Z","1.1.0":"2026-01-22T21:33:23.001Z","1.1.1":"2026-01-30T15:07:34.537Z","2.0.0":"2026-03-26T20:25:10.085Z"},"bugs":{"url":"https://github.com/cesarvieira/v-image-crop-dialog/issues"},"author":{"name":"Cesar Vieira","email":"cesarvieira.dev@gmail.com"},"license":"ISC","homepage":"https://github.com/cesarvieira/v-image-crop-dialog#readme","keywords":["vue","vue3","vuetify","vuetify4","image","cropper","crop","dialog","typescript","component","image-cropper","vue-component","webp"],"repository":{"type":"git","url":"git+https://github.com/cesarvieira/v-image-crop-dialog.git"},"description":"Componente Vue 3 dialog para recorte de imagens com Vuetify 4 e TypeScript","maintainers":[{"name":"cesarv","email":"cesarvieira.dev@gmail.com"}],"readme":"# V-Image-Crop-Dialog\n\nA Vue 3 dialog component for image cropping, built with Vuetify 4 and TypeScript. Based on `vue-advanced-cropper` for a powerful and intuitive cropping experience.\n\n## Features\n\n- 🎨 Full integration with **Vuetify 4**\n- 🔄 Support for **rectangular** and **circular** cropping\n- 🖼️ Support for images via **File** or **URL**\n- 🔧 Advanced controls: rotation, flip, zoom, and reset\n- 📐 Customizable aspect ratio\n- 🎯 Configurable output dimensions\n- 💾 Automatic export in WebP format\n- 📱 Fully responsive\n- 🎭 TypeScript support\n- 🎨 Customizable icons and button text\n\n## Requirements\n\n- Vue 3.5+\n- Vuetify 4+\n\n## Installation\n\n```bash\nnpm install @cesarv/v-image-crop-dialog\n```\n\nIf you use the default toolbar icons (Material Design Icons), install the font and import it in your app:\n\n```bash\nnpm install @mdi/font\n```\n\n```typescript\n// In main.ts or your entry file\nimport '@mdi/font/css/materialdesignicons.css';\n```\n\nAlternatively, you can pass custom icon names (compatible with your existing icon set) via the icon props and skip the MDI font.\n\n## Usage\n\n### Setup\n\nIf you're using the component as a plugin:\n\n```typescript\nimport { createApp } from 'vue';\nimport VImageCropDialog from '@cesarv/v-image-crop-dialog';\n\nconst app = createApp(App);\napp.use(VImageCropDialog);\n```\n\nOr import the component directly:\n\n```html\n<script setup lang=\"ts\">\nimport VImageCropDialog from '@cesarv/v-image-crop-dialog';\nimport '@cesarv/v-image-crop-dialog/dist/style.css';\n// If you use the default icons (Material Design Icons), import the font in your app:\n// import '@mdi/font/css/materialdesignicons.css';\n</script>\n```\n\n### Basic Example\n\n```html\n<template>\n  <div>\n    <VBtn @click=\"open = true\">Open Cropper</VBtn>\n    \n    <VImageCropDialog\n      v-model=\"open\"\n      :url=\"imageUrl\"\n      @update:file=\"handleCroppedImage\"\n    />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport VImageCropDialog from '@cesarv/v-image-crop-dialog';\n\nconst open = ref(false);\nconst imageUrl = ref('https://example.com/image.jpg');\n\nconst handleCroppedImage = (file: File) => {\n  console.log('Cropped image:', file);\n  // Upload or process the file here\n};\n</script>\n```\n\n## Examples\n\n### Cropping with File\n\n```html\n<template>\n  <div>\n    <input type=\"file\" @change=\"handleFileSelect\" accept=\"image/*\" />\n    \n    <VImageCropDialog\n      v-model=\"open\"\n      :file=\"selectedFile\"\n      @update:file=\"handleCroppedImage\"\n    />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\n\nconst open = ref(false);\nconst selectedFile = ref<File | null>(null);\n\nconst handleFileSelect = (event: Event) => {\n  const target = event.target as HTMLInputElement;\n  if (target.files && target.files[0]) {\n    selectedFile.value = target.files[0];\n    open.value = true;\n  }\n};\n\nconst handleCroppedImage = (file: File) => {\n  console.log('Cropped image:', file);\n};\n</script>\n```\n\n### Circular Crop with Fixed Aspect Ratio\n\n```html\n<template>\n  <VImageCropDialog\n    v-model=\"open\"\n    :url=\"imageUrl\"\n    stencil=\"circle\"\n    :aspect-ratio=\"1\"\n    @update:file=\"handleCroppedImage\"\n  />\n</template>\n```\n\n### Custom Dimensions\n\n```html\n<template>\n  <VImageCropDialog\n    v-model=\"open\"\n    :url=\"imageUrl\"\n    :img-width=\"800\"\n    :img-height=\"600\"\n    :aspect-ratio=\"4/3\"\n    @update:file=\"handleCroppedImage\"\n  />\n</template>\n```\n\n### Persistent Dialog\n\n```html\n<template>\n  <VImageCropDialog\n    v-model=\"open\"\n    :url=\"imageUrl\"\n    persistent\n    max-width=\"800px\"\n    @update:file=\"handleCroppedImage\"\n  />\n</template>\n```\n\n### Custom Icons and Button Text\n\n```html\n<template>\n  <VImageCropDialog\n    v-model=\"open\"\n    :url=\"imageUrl\"\n    icon-rotate-right=\"mdi-rotate-clockwise\"\n    icon-flip-horizontal=\"mdi-swap-horizontal\"\n    crop-button-text=\"Confirm\"\n    icon-crop=\"mdi-check-circle\"\n    @update:file=\"handleCroppedImage\"\n  />\n</template>\n```\n\n## API\n\n### Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `modelValue` | `boolean` | `false` | Controls dialog visibility |\n| `file` | `File \\| null` | `null` | Image file to crop |\n| `url` | `string \\| null` | `null` | Image URL to crop |\n| `stencil` | `'rect' \\| 'circle'` | `'rect'` | Type of crop stencil |\n| `imgWidth` | `number` | `undefined` | Output image width in pixels |\n| `imgHeight` | `number` | `undefined` | Output image height in pixels |\n| `aspectRatio` | `number` | `undefined` | Crop aspect ratio (e.g., 16/9, 1) |\n| `persistent` | `boolean` | `false` | Prevents dialog from closing when clicking outside |\n| `maxWidth` | `string \\| number` | `'auto'` | Maximum dialog width |\n| `iconFlipVertical` | `string` | `'mdi-flip-vertical'` | Icon for vertical flip control |\n| `iconFlipHorizontal` | `string` | `'mdi-flip-horizontal'` | Icon for horizontal flip control |\n| `iconRotateRight` | `string` | `'mdi-rotate-right'` | Icon for rotate right control |\n| `iconRotateLeft` | `string` | `'mdi-rotate-left'` | Icon for rotate left control |\n| `iconZoomIn` | `string` | `'mdi-magnify-plus-outline'` | Icon for zoom in control |\n| `iconZoomOut` | `string` | `'mdi-magnify-minus-outline'` | Icon for zoom out control |\n| `iconReset` | `string` | `'mdi-refresh'` | Icon for reset control |\n| `iconCrop` | `string` | `'mdi-check'` | Icon for crop button |\n| `cropButtonText` | `string` | `'Crop'` | Text for crop button |\n\n### Events\n\n| Event | Payload | Description |\n|-------|---------|-------------|\n| `update:modelValue` | `boolean` | Emitted when dialog visibility changes |\n| `update:file` | `File` | Emitted when image is cropped, returns WebP file |\n\n### Slots\n\n| Slot | Props | Description |\n|------|-------|-------------|\n| `activator` | `activatorProps` | Slot for element that activates the dialog |\n| `crop-button` | `{ processing: boolean, crop: () => void }` | Slot for custom crop button |\n\n### Activator Slot\n\nUse the activator slot to customize the element that opens the dialog:\n\n```html\n<template>\n  <VImageCropDialog v-model=\"open\" :url=\"imageUrl\">\n    <template #activator=\"{ props: activatorProps }\">\n      <VBtn v-bind=\"activatorProps\" color=\"primary\">\n        Crop Image\n      </VBtn>\n    </template>\n  </VImageCropDialog>\n</template>\n```\n\n### Crop Button Slot\n\nUse the crop-button slot to completely customize the crop button:\n\n```html\n<template>\n  <VImageCropDialog v-model=\"open\" :url=\"imageUrl\">\n    <template #crop-button=\"{ processing, crop }\">\n      <VBtn\n        color=\"success\"\n        :loading=\"processing\"\n        @click=\"crop\"\n      >\n        <VIcon icon=\"mdi-check\" start />\n        Confirm Crop\n      </VBtn>\n    </template>\n  </VImageCropDialog>\n</template>\n```\n\n## Cropper Controls\n\nThe component includes built-in controls for:\n\n- **Rotate**: Rotate image 90° left or right\n- **Flip**: Flip image horizontally or vertically\n- **Zoom**: Zoom in or out\n- **Reset**: Restore image to original state\n\nThese controls are displayed as floating buttons over the cropper and can be customized via icon props.\n\n## Notes\n\n- The cropped image is always exported in **WebP** format\n- If `imgWidth` and `imgHeight` are not specified, the image will maintain its original dimensions\n- The component requires either `file` or `url` to be provided to function\n- Make sure Vuetify is properly configured in your project\n- Default icons use Material Design Icons (mdi-*). Import `@mdi/font/css/materialdesignicons.css` in your app when using defaults, or pass icon props compatible with your own icon set (e.g. Vuetify's VIcon).\n\n## License\n\nISC\n\n## Author\n\n[Cesar Vieira](https://github.com/cesarvieira)\n","readmeFilename":"README.md"}