{"_id":"@aw3r1se/vue-dragresize","_rev":"13-5ce17368a67ffc9236a129b1b68799d5","name":"@aw3r1se/vue-dragresize","dist-tags":{"latest":"1.1.0"},"versions":{"0.0.2":{"name":"@aw3r1se/vue-dragresize","version":"0.0.2","keywords":["drag","resize","svg","vue"],"author":{"name":"aw3r1se"},"license":"GPL-3.0","_id":"@aw3r1se/vue-dragresize@0.0.2","maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"homepage":"https://github.com/aw3r1se/vue-dragresize#readme","bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"dist":{"shasum":"81d13240c042d4d8d065cdaa82c45ac0e37c2c2a","tarball":"https://registry.npmjs.org/@aw3r1se/vue-dragresize/-/vue-dragresize-0.0.2.tgz","fileCount":5,"integrity":"sha512-UAwcnYhGXkZmxpd8qzDWak28WEsylfTNP/z0E4iXjbUcnzARAQ7ImLnsygZBMQ3S6rhgF1OTKPFya4fHLOyjCg==","signatures":[{"sig":"MEQCIC7BWyXWfpqzGq5pw8KDQTF5w3ju2OBBMc+mFgIgeXQaAiBqhCnMyHck2o3XaNXRjCQMgFAB9FzIxAtM+WKWtUg7eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8853},"main":"./src/useDragResize.js","gitHead":"07db4a0d841760e3e48f5c323ad0d6e09db5918a","_npmUser":{"name":"aw3r1se","email":"aw3r1se@gmail.com"},"repository":{"url":"git+https://github.com/aw3r1se/vue-dragresize.git","type":"git"},"_npmVersion":"10.9.3","description":"Drag and resize vue-component","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-dragresize_0.0.2_1754321107328_0.5373079929686342","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@aw3r1se/vue-dragresize","version":"0.0.3","keywords":["drag","resize","svg","vue"],"author":{"name":"aw3r1se"},"license":"GPL-3.0","_id":"@aw3r1se/vue-dragresize@0.0.3","maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"homepage":"https://github.com/aw3r1se/vue-dragresize#readme","bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"dist":{"shasum":"4a0cc712ffd34b3038e224f6d3d14fa215366702","tarball":"https://registry.npmjs.org/@aw3r1se/vue-dragresize/-/vue-dragresize-0.0.3.tgz","fileCount":5,"integrity":"sha512-XV895kcEHpQSQvHnYS6E8xCF/mlNxHiQX8LPPSd6rbnFk0IKnUnq0RCjUvwlI4K6ku6cCkeTMUjtIPoMArQlew==","signatures":[{"sig":"MEQCIG8AzNtyymRvH4U9oHoX7qmznFVoxCWZwuBavYu25ljiAiA76xsqHqxJlb/UECmbT0of++om1j8YJvdOA+aZjjUtwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8845},"main":"./src/index.js","gitHead":"d956ca58b1172ec7f4c9090e8c378b7155118bd5","_npmUser":{"name":"aw3r1se","email":"aw3r1se@gmail.com"},"repository":{"url":"git+https://github.com/aw3r1se/vue-dragresize.git","type":"git"},"_npmVersion":"10.9.3","description":"Drag and resize vue-component","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-dragresize_0.0.3_1754322532409_0.21997714854950434","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@aw3r1se/vue-dragresize","version":"0.0.4","keywords":["drag","resize","svg","vue"],"author":{"name":"aw3r1se"},"license":"GPL-3.0","_id":"@aw3r1se/vue-dragresize@0.0.4","maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"homepage":"https://github.com/aw3r1se/vue-dragresize#readme","bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"dist":{"shasum":"64bcb6bfe751e0c2c1fca086b2e98966ace9966a","tarball":"https://registry.npmjs.org/@aw3r1se/vue-dragresize/-/vue-dragresize-0.0.4.tgz","fileCount":5,"integrity":"sha512-OjBTsRdklo6aGsGAgauyO8dXf3zLj7oFalXBdBoIykHS+j2W9WkcmUIw4JpDcd58oMia+50fy4gkfiL8dTzK2g==","signatures":[{"sig":"MEYCIQDbRZpwWSnosefuoXlUitKbscFKezWrZkqRj+KLc2ZbggIhAMLhulZRtrbRz4PPm55mXtPGXxDCvdfKmjy/+SHkdbpL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8845},"main":"./src/index.js","gitHead":"d696af3ce3a57dad0dc787d525ed99573ee57282","_npmUser":{"name":"aw3r1se","email":"aw3r1se@gmail.com"},"repository":{"url":"git+https://github.com/aw3r1se/vue-dragresize.git","type":"git"},"_npmVersion":"10.9.3","description":"Drag and resize vue-component","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-dragresize_0.0.4_1754322848720_0.5422842130318657","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@aw3r1se/vue-dragresize","version":"0.0.5","keywords":["drag","resize","svg","vue"],"author":{"name":"aw3r1se"},"license":"GPL-3.0","_id":"@aw3r1se/vue-dragresize@0.0.5","maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"homepage":"https://github.com/aw3r1se/vue-dragresize#readme","bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"dist":{"shasum":"1e2554cffe0c466a915e40ee252fd4ba37410cc0","tarball":"https://registry.npmjs.org/@aw3r1se/vue-dragresize/-/vue-dragresize-0.0.5.tgz","fileCount":6,"integrity":"sha512-NL5csT8etpo5r/YBRvymhKIJeQfjd6ajR04S131mccPP++VuaW+h4wt6LHGQKH8xMtG3IDoKrdg7C9uvN8VPIA==","signatures":[{"sig":"MEUCIQC4pthpqpnhyB8q8x+ErK31wRadWfFTMi7oi8cmEpJRXwIgF5DB6PQVyccXaZnlLrQrU9MeGXsZkXfiMn/hIAe7DmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8916},"main":"./src/index.js","gitHead":"b5f2fe6a8a1b9287bf430db86fc49b9be0b91fb8","_npmUser":{"name":"aw3r1se","email":"aw3r1se@gmail.com"},"repository":{"url":"git+https://github.com/aw3r1se/vue-dragresize.git","type":"git"},"_npmVersion":"10.9.3","description":"Drag and resize vue-component","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-dragresize_0.0.5_1754323579834_0.760872216121049","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@aw3r1se/vue-dragresize","version":"0.0.6","keywords":["drag","resize","svg","vue"],"author":{"name":"aw3r1se"},"license":"GPL-3.0","_id":"@aw3r1se/vue-dragresize@0.0.6","maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"homepage":"https://github.com/aw3r1se/vue-dragresize#readme","bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"dist":{"shasum":"d867c2a57f14833bd65b1a57e3963d8207beabba","tarball":"https://registry.npmjs.org/@aw3r1se/vue-dragresize/-/vue-dragresize-0.0.6.tgz","fileCount":6,"integrity":"sha512-pxHsHO0CA/4xfQsDs6alzRuhAQeQNtHcttGER8j2cDi4FrBgcXeVNyth/rF+iBJCXs018xKM/+GwHzoZnRs2ag==","signatures":[{"sig":"MEUCIQCQG8UJExr3enudooCe9vGZ5dk8X97QrEWOdLkg9OPrdAIgbO/SabpDYHPmnpvZ0DBgt4Ni2bR1DWsNiE62T7ug1Y0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8918},"module":"./src/index.js","gitHead":"e9bc9f307861694fb9950c604f6a202a7cb5c382","_npmUser":{"name":"aw3r1se","email":"aw3r1se@gmail.com"},"repository":{"url":"git+https://github.com/aw3r1se/vue-dragresize.git","type":"git"},"_npmVersion":"10.9.3","description":"Drag and resize vue-component","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-dragresize_0.0.6_1754324046086_0.22348159375128973","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@aw3r1se/vue-dragresize","version":"1.0.0","keywords":["drag","resize","svg","vue"],"author":{"name":"aw3r1se"},"license":"GPL-3.0","_id":"@aw3r1se/vue-dragresize@1.0.0","maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"homepage":"https://github.com/aw3r1se/vue-dragresize#readme","bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"dist":{"shasum":"dff176c9006193030b20151d23d3003c89982c4c","tarball":"https://registry.npmjs.org/@aw3r1se/vue-dragresize/-/vue-dragresize-1.0.0.tgz","fileCount":6,"integrity":"sha512-+Riat5SPLb31BQYo2UDi+gvWrA8gsoq6HP8gDrKfUnye4paMAGGKDzq3o5h3sbRMIxDS/8GY8T8I0wmBn1qm0w==","signatures":[{"sig":"MEUCIAGbfreADNv+3Tci/7yVbaTAGNPh/sL/cuXDePRBd1sOAiEAxxyePevNs41e+2fEs7j5vvVscQS2WYtHx+fl6HizC4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8878},"module":"./src/index.js","gitHead":"13e34ffa450f7cd12f69decfb909b3ee6dc50f33","_npmUser":{"name":"aw3r1se","email":"aw3r1se@gmail.com"},"repository":{"url":"git+https://github.com/aw3r1se/vue-dragresize.git","type":"git"},"_npmVersion":"10.9.3","description":"Drag and resize vue-component","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-dragresize_1.0.0_1754324220862_0.9519679618959882","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aw3r1se/vue-dragresize","version":"1.0.1","keywords":["drag","resize","svg","vue"],"author":{"name":"aw3r1se"},"license":"GPL-3.0","_id":"@aw3r1se/vue-dragresize@1.0.1","maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"homepage":"https://github.com/aw3r1se/vue-dragresize#readme","bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"dist":{"shasum":"e81a99b142d14a6347f31fce6f71648a3405117f","tarball":"https://registry.npmjs.org/@aw3r1se/vue-dragresize/-/vue-dragresize-1.0.1.tgz","fileCount":6,"integrity":"sha512-QpYhHh/KvHRUo/uuI5tmTQV8WkfICDwygSYJ50Y87D8ecbMJtIs6f++fF7QKq8zgF8D+fh71a4p3/sQoeqXsvw==","signatures":[{"sig":"MEYCIQCndJssHDDLnAUio0WnoarZraoGIn7txeDEjDOtG+E9iQIhAJck7C/RZqiY4MqN0aa1VYjkTdAypEpUMOyZcGNnNyTA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9223},"module":"./src/index.js","gitHead":"29213074f650b52270baa610648698ee55c32763","_npmUser":{"name":"aw3r1se","email":"aw3r1se@gmail.com"},"repository":{"url":"git+https://github.com/aw3r1se/vue-dragresize.git","type":"git"},"_npmVersion":"10.9.2","description":"Drag and resize vue-component","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-dragresize_1.0.1_1754439711934_0.4423236895147975","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aw3r1se/vue-dragresize","version":"1.0.2","keywords":["drag","resize","svg","vue"],"author":{"name":"aw3r1se"},"license":"GPL-3.0","_id":"@aw3r1se/vue-dragresize@1.0.2","maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"homepage":"https://github.com/aw3r1se/vue-dragresize#readme","bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"dist":{"shasum":"94b0712359c5ddfc93237381a3a80c456c863563","tarball":"https://registry.npmjs.org/@aw3r1se/vue-dragresize/-/vue-dragresize-1.0.2.tgz","fileCount":6,"integrity":"sha512-H5cEsMoXb02C32gpR1DHk608QzMc689x0mUA7HS0RqKUXukYuMn648rapu9k00xKcpjJLEjmqwaI1Ro77nRjwg==","signatures":[{"sig":"MEQCIFIQeYnOzoVEdPnqZLW1A036aFwlY7xFPblJloRJE7EzAiAUgAyd78TRMulhT3C77qKEWjMa+NrpZ7e1Z5HbKWSVjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9755},"module":"./src/index.js","gitHead":"af4b96923ad400b35def355585eed0e57945196a","_npmUser":{"name":"aw3r1se","email":"aw3r1se@gmail.com"},"repository":{"url":"git+https://github.com/aw3r1se/vue-dragresize.git","type":"git"},"_npmVersion":"10.9.2","description":"Drag and resize vue-component","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-dragresize_1.0.2_1754440507573_0.46224866977322177","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aw3r1se/vue-dragresize","version":"1.0.3","keywords":["drag","resize","svg","vue"],"author":{"name":"aw3r1se"},"license":"GPL-3.0","_id":"@aw3r1se/vue-dragresize@1.0.3","maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"homepage":"https://github.com/aw3r1se/vue-dragresize#readme","bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"dist":{"shasum":"f1d3b0b9a7e0b1b6699bba649cdcadb12e718efa","tarball":"https://registry.npmjs.org/@aw3r1se/vue-dragresize/-/vue-dragresize-1.0.3.tgz","fileCount":6,"integrity":"sha512-zAEoaak2++h8BhpwtlDDXyjnPMN79LIQrrYYnnoL8g/0mAQcoN2W+cAlfXJszjoXfC17yaIC66hu93gZce4yqg==","signatures":[{"sig":"MEUCIBCW5wwikNcYvYvX9J2OY3txyXFIu02zuOgTW6k7zf5KAiEAl5cEWvQvOGVZJFShIq2K+aMl6mlt5wB8RLQopBUfdWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9803},"module":"./src/index.js","gitHead":"59b29411c8f6d774da1d801932fd6c987e180a27","_npmUser":{"name":"aw3r1se","email":"aw3r1se@gmail.com"},"repository":{"url":"git+https://github.com/aw3r1se/vue-dragresize.git","type":"git"},"_npmVersion":"10.9.2","description":"Drag and resize vue-component","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-dragresize_1.0.3_1754440852836_0.7234645914858524","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@aw3r1se/vue-dragresize","version":"1.0.4","keywords":["drag","resize","svg","vue"],"author":{"name":"aw3r1se"},"license":"GPL-3.0","_id":"@aw3r1se/vue-dragresize@1.0.4","maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"homepage":"https://github.com/aw3r1se/vue-dragresize#readme","bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"dist":{"shasum":"83af777031f26c92a2b03cdb59de383b88e89894","tarball":"https://registry.npmjs.org/@aw3r1se/vue-dragresize/-/vue-dragresize-1.0.4.tgz","fileCount":6,"integrity":"sha512-MxC8q23bVLMyuxmzC+k3gc2Omj26Qoh59zcifXE6X402iwiPUBD4C4gmUonS99dxgK3e+vb27mc0boEvIo3cIw==","signatures":[{"sig":"MEYCIQDeW+KDj/Yv5vxzugKNwSFZwLzLzOi537Nby8EAXaBlqQIhAI7UfBp3a4D5eh36umzfitXgkgko9tmvpNtl4f12Gns3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9991},"module":"./src/index.js","gitHead":"1d5b41e1a47cbfce6c861397eef387a73412f7c0","_npmUser":{"name":"aw3r1se","email":"aw3r1se@gmail.com"},"repository":{"url":"git+https://github.com/aw3r1se/vue-dragresize.git","type":"git"},"_npmVersion":"10.9.2","description":"Drag and resize vue-component","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"peerDependencies":{"vue":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue-dragresize_1.0.4_1754442029118_0.15894743901261865","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@aw3r1se/vue-dragresize","version":"1.1.0","description":"Drag and resize vue-component","module":"./src/index.js","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/aw3r1se/vue-dragresize.git"},"peerDependencies":{"vue":"^3.0.0"},"keywords":["drag","resize","vue"],"author":{"name":"Bogdan Koch","email":"aw3r1se@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"_id":"@aw3r1se/vue-dragresize@1.1.0","gitHead":"f132c07d2e8a847adf0b5220f4b1d473d671993e","homepage":"https://github.com/aw3r1se/vue-dragresize#readme","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-eVG8Z0jydg+aQoiv1SEkHAAUxAAW9UN28aqAfgHrFlxVXu8G9eQjGxjy7aDM+E90cE+vSw6q5jBLMv+U1mok5g==","shasum":"4ba9c4075712386eae85991083a84a88954b8d37","tarball":"https://registry.npmjs.org/@aw3r1se/vue-dragresize/-/vue-dragresize-1.1.0.tgz","fileCount":6,"unpackedSize":13011,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDp180P+La0Ryy7nqjuJMLrBQMB6Q0K6pHNX2gqzvTCzAiEAvbhPksJa0zUn7M5Nn74/1pSj+QiNc0Y9Fzr2N4EQzeQ="}]},"_npmUser":{"name":"aw3r1se","email":"aw3r1se@gmail.com"},"directories":{},"maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue-dragresize_1.1.0_1781043039006_0.6569569416685646"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-04T15:25:07.205Z","modified":"2026-06-09T22:10:39.240Z","0.0.1":"2025-08-04T15:10:44.968Z","0.0.2":"2025-08-04T15:25:07.523Z","0.0.3":"2025-08-04T15:48:52.585Z","0.0.4":"2025-08-04T15:54:08.902Z","0.0.5":"2025-08-04T16:06:20.083Z","0.0.6":"2025-08-04T16:14:06.287Z","1.0.0":"2025-08-04T16:17:01.046Z","1.0.1":"2025-08-06T00:21:52.128Z","1.0.2":"2025-08-06T00:35:07.761Z","1.0.3":"2025-08-06T00:40:53.059Z","1.0.4":"2025-08-06T01:00:29.311Z","1.1.0":"2026-06-09T22:10:39.140Z"},"bugs":{"url":"https://github.com/aw3r1se/vue-dragresize/issues"},"author":{"name":"Bogdan Koch","email":"aw3r1se@gmail.com"},"license":"MIT","homepage":"https://github.com/aw3r1se/vue-dragresize#readme","keywords":["drag","resize","vue"],"repository":{"type":"git","url":"git+https://github.com/aw3r1se/vue-dragresize.git"},"description":"Drag and resize vue-component","maintainers":[{"name":"aw3r1se","email":"aw3r1se@gmail.com"}],"readme":"# vue-dragresize\n\nA tiny, dependency-free drag-and-resize primitive for Vue 3. It ships a `useDragResize`\ncomposable that owns the geometry/state and a `Resizers` component that renders the eight\nresize handles — you bring your own markup and styling for the box itself.\n\n- 🪶 No runtime dependencies (Vue 3 peer only)\n- 🧲 Grid snapping, min-size and viewport clamping built in\n- 🔳 Maximize / restore with an animated transition\n- 🎨 Self-contained handle styles — no Tailwind or global CSS required\n\n## 🔧 Installation\n\n```sh\nnpm i @aw3r1se/vue-dragresize\n```\n\n> The package is published as Vue source (`.vue` + ESM), so your bundler needs a Vue SFC\n> compiler (Vite, Vue CLI, etc.) — which any Vue 3 app already has.\n\n## ✏️ Usage\n\n```vue\n<script setup>\nimport { useDragResize, Resizers } from '@aw3r1se/vue-dragresize';\n\nconst {\n  style,\n  beginDrag,\n  beginResize,\n  toggleMaximize,\n} = useDragResize({ minSize: 400 });\n</script>\n\n<template>\n  <div\n    class=\"box\"\n    :style=\"style\"\n    @mousedown=\"beginDrag\"\n    @dblclick=\"toggleMaximize\"\n  >\n    <!-- your content -->\n    <Resizers @resize-start=\"beginResize\" />\n  </div>\n</template>\n\n<style>\n.box {\n  position: absolute; /* required — geometry is driven by left/top/width/height */\n}\n</style>\n```\n\nThe element must be `position: absolute` (or `fixed`); `style` sets `left`, `top`,\n`width`, and `height` in pixels.\n\n## ⚙️ API\n\n### `useDragResize(options?)`\n\n| Option     | Type     | Default | Description                                          |\n| ---------- | -------- | ------- | ---------------------------------------------------- |\n| `minSize`  | `number` | `200`   | Minimum width and height, in pixels.                 |\n| `marginPx` | `number` | `10`    | Gap kept between the box and the viewport edges.     |\n| `stepPx`   | `number` | `12`    | Grid step the box snaps to while resizing.           |\n| `animMs`   | `number` | `250`   | Duration of the maximize/restore transition, in ms.  |\n\nReturns:\n\n| Key              | Type                       | Description                                                        |\n| ---------------- | -------------------------- | ----------------------------------------------------------------- |\n| `geom`           | `reactive({ w,h,x,y })`    | Current size and position in pixels.                              |\n| `flags`          | `reactive`                 | `{ isDragging, isResizing, isMax, isAnimating }`.                 |\n| `style`          | `ComputedRef<object>`      | Bind to the box's `:style`.                                       |\n| `beginDrag`      | `(e: MouseEvent) => void`  | Wire to the box's `@mousedown` to start dragging.                 |\n| `beginResize`    | `(e, handle) => void`      | Wire to `Resizers`' `@resize-start`.                             |\n| `toggleMaximize` | `() => void`               | Toggle maximized / restored state.                                |\n| `clampToViewport`| `() => void`               | Re-clamp the box into the viewport (called automatically).        |\n\nThe composable registers `mousemove`, `mouseup` and `resize` listeners on `window` while\nmounted and removes them on unmount.\n\n### `<Resizers />`\n\n| Prop   | Type      | Default | Description                  |\n| ------ | --------- | ------- | ---------------------------- |\n| `show` | `boolean` | `true`  | Toggle handle visibility.    |\n\n| Event          | Payload                              | Description                          |\n| -------------- | ------------------------------------ | ------------------------------------ |\n| `resize-start` | `(e: MouseEvent, handle: string)`    | Emitted on handle `mousedown`.       |\n\n`handle` is one of `top-left`, `top`, `top-right`, `right`, `bottom-right`, `bottom`,\n`bottom-left`, `left`. The component is positioned `absolute`ly, so its parent (the box)\nshould be a positioned element.\n\n## 🤝 Contributing\n\nIf you want to add or improve something — you're welcome:\n\n* Fork → Branch → Commit with a `feat:` / `fix:` prefix\n* Test locally\n* Open a pull request\n","readmeFilename":"README.md"}