{"_id":"vue3-smooth-dnd","_rev":"8-c0467c1739a4db826cabb7d6843c78be","name":"vue3-smooth-dnd","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.1":{"name":"vue3-smooth-dnd","version":"0.0.1","keywords":["Vue 3","Vue next","Vue","Vue.js","sortable","drag and drop","drag&drop","drag","drop","draggable","dnd","smooth-dnd"],"author":{"name":"Gilbert Ndresaj"},"license":"MIT","_id":"vue3-smooth-dnd@0.0.1","maintainers":[{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"}],"homepage":"https://github.com/gilnd/vue3-smooth-dnd#readme","bugs":{"url":"https://github.com/gilnd/vue3-smooth-dnd/issues"},"dist":{"shasum":"d775047f582ec52fbe31095a656ebe3606f91949","tarball":"https://registry.npmjs.org/vue3-smooth-dnd/-/vue3-smooth-dnd-0.0.1.tgz","fileCount":7,"integrity":"sha512-QiiULTuzfdIt+gsPIKG53hnlr5+JFm4UmUVBdJX/rjTgT4suLFCxq+jvzgA533TE4mIyrxPLx5YLlFi9pOKO8A==","signatures":[{"sig":"MEYCIQDOP7eUTaoNpv8lwfMGLNS+bS8xTLZhdbSd6gU0SqyNtgIhALPLmunQPFglgLLW89+Ofh8w4eKWcbFZr0crhJxuO/o6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtV8+CRA9TVsSAnZWagAAAMsQAJzmJSO6BLPkweZBDrRK\n/QorkFcvyG9PiorurTkpqDMAFVnEGqf7CsWPukcR54mKFrIq62Vaw2hkMU4G\ntojb43LNlaTEPJgqS9wOnSBIz36NV3peixI+5crn0413dXfusmLEp/jS/glW\niR3QwHjK6epmCzMJO4cIkflOQRxJWXIhyeACH8eeFHwytLUnjrVZzyqZS+6o\nqcg1sgi9GnIxk2ElTqlzVbhF6rvEFam+hoggXB70GCR2Tafz0vJxSFI808EH\nPG3BaV5IIu55bIEC5QlG4UI1Kou/Dk852hDjaYgxJRbkKC1t8t7ADaNU7/YK\n/9C9SB7/w3Fv8NWzu3F6Tf9CpYHDzfFrulOPartCPflmpQv9zaVhfypvX5x0\nGpPmvD1o1KbnAKzJQJVDfoHih7pVm3SnUbkgh7d19NSxvvpDDfy5lSkouCWb\nXPAekYge0S2hS6CREZK3zGmU0yT7jlRjVvOO99gMBFGYdV4ig7KiPkSGfMft\nccRFaWbFEgGpYbgOFx34FkqeHlIdo9AlUAgFj3bMCGYxT0BI0DD7395shz3f\n9CeaB14spA5kS35co1UPK69g/AGmuM+5zwULLeEm6Yl/0vtvyEi9LhQHnarj\nfbDlUDFTedg1uKYXy6UQ+78TUGbklKkO2ZhvV24SlPNHY4kP9phNMDCBkLkU\nLVog\r\n=i522\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/vue3-smooth-dnd.js","unpkg":"dist/vue3-smooth-dnd.global.js","module":"dist/vue3-smooth-dnd.esm.js","scripts":{"build":"rollup -c","build:watch":"rollup -c -w"},"_npmUser":{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"},"repository":{"url":"git+https://github.com/gilnd/vue3-smooth-dnd.git","type":"git"},"_npmVersion":"6.14.11","description":"Vue 3 wrappers for smooth-dnd library","directories":{},"_nodeVersion":"14.16.0","dependencies":{"smooth-dnd":"^0.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.11","rollup":"^2.43.0"},"peerDependencies":{"vue":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/vue3-smooth-dnd_0.0.1_1622499134211_0.6324907789018077","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"vue3-smooth-dnd","version":"0.0.2","keywords":["Vue 3","Vue next","Vue","Vue.js","sortable","drag and drop","drag&drop","drag","drop","draggable","dnd","smooth-dnd"],"author":{"name":"Gilbert Ndresaj"},"license":"MIT","_id":"vue3-smooth-dnd@0.0.2","maintainers":[{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"}],"homepage":"https://github.com/gilnd/vue3-smooth-dnd#readme","bugs":{"url":"https://github.com/gilnd/vue3-smooth-dnd/issues"},"dist":{"shasum":"779c885754466b55930de8bfd0a13adc889782d7","tarball":"https://registry.npmjs.org/vue3-smooth-dnd/-/vue3-smooth-dnd-0.0.2.tgz","fileCount":8,"integrity":"sha512-5OlpoZ1fmpA1CcjvRwJ9P3MEPZ0nnnYuIf/9zMGKF8i7jTE6fQX3oeY0jDHNtOjuCmvTSbc0AYq18M9QIF32Ew==","signatures":[{"sig":"MEQCIC855wURJr1xCFgba3VSnKgY4mBZ/45akHVMXCbtNruhAiBA8gBVCqrrHgsM2ZrC4vumXPjcQejPBDVtKbpbdTN8kg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34323,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgum03CRA9TVsSAnZWagAA98cQAI6p9aYlBzc/d34R2Yv4\n3RJPCNDgfp0FXycV/PoVyySZLt+jQkrZbW6bHiZ9LvqgJs3+WukztRiHJml6\nRa3VTIYSFa+B5hhnVUHuXvz7+NdS112KsJkqwlf2G6817kumKI+uujCe7rq+\nc5/qnWBv6yXHdv+xKKZSocqOM/uiiaEhMarppF8M8l/CrkuGKxSahnPM2043\nEWm/JE+B9HUoytR2DoYLs+drEsJh4NAESmKhtJqkFQTj+DBhzdNxisHWlfGD\nQZTXEZAECDGmJVrLvoa++w7HpHtix9fPb+jX+EuLywxTb/u8PQPs9jOIKcfz\nNa35O+SomAJTurQwiAgOUqI0xV56PYVG6XKcc32vQwGypvhGj5KFKJ0/sXaj\nUSjovoUlxGRiUPGJaunq3ocO39TF6uTZOVp4jdWvxP4s2rlYD3PMz+kfTvpf\njoCubmVt0hVziSdeMABwbOBZ18PPthV6Thy5Gok9zT71JWkkjtrU8xzTHUDY\nMjxy691qasRN3OME4pUYmbPc1+lyfXQL82NLIsnD2pJLLe1D7EMvPz3BTOYj\niY1Ml6VqlH9KBR99IeqDiilJrBuq37/hr2m1G8R1ytbh24O6S0qEPJo1JGwE\noRgTXS9sz04ztyqUGHQwI5UvIYCCJP6rDZyZq6nTcWH4QDoseRCppsR22tp4\n6ybL\r\n=zYqr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/vue3-smooth-dnd.js","unpkg":"dist/vue3-smooth-dnd.global.js","module":"dist/vue3-smooth-dnd.esm.js","scripts":{"build":"rollup -c","build:watch":"rollup -c -w"},"_npmUser":{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"},"repository":{"url":"git+https://github.com/gilnd/vue3-smooth-dnd.git","type":"git"},"_npmVersion":"6.14.11","description":"Vue 3 wrappers for smooth-dnd library","directories":{},"_nodeVersion":"14.16.0","dependencies":{"smooth-dnd":"^0.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.11","rollup":"^2.43.0"},"peerDependencies":{"vue":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/vue3-smooth-dnd_0.0.2_1622830391678_0.7836467034563148","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"vue3-smooth-dnd","version":"0.0.3","keywords":["Vue 3","Vue next","Vue","Vue.js","sortable","drag and drop","drag&drop","drag","drop","draggable","dnd","smooth-dnd"],"author":{"name":"Gilbert Ndresaj"},"license":"MIT","_id":"vue3-smooth-dnd@0.0.3","maintainers":[{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"}],"homepage":"https://github.com/gilnd/vue3-smooth-dnd#readme","bugs":{"url":"https://github.com/gilnd/vue3-smooth-dnd/issues"},"dist":{"shasum":"5995d4551b8719bfd443fa42d34715c055e7b518","tarball":"https://registry.npmjs.org/vue3-smooth-dnd/-/vue3-smooth-dnd-0.0.3.tgz","fileCount":3,"integrity":"sha512-OJyiG3+Wh775jZo4nvDL7uBrh7y/VlHk1L/kwR+YEEW2WekZLj+2PuAnJsPa7sJqEoYfRsovSKdjLWrmioEBjA==","signatures":[{"sig":"MEYCIQCXDvTGIX86INgDpp01pYXz87r658K8rcukPglccZCUVAIhAO1lXZV+fpCV2nMt7GC5X27s5VdwkEu+C3E2QWM3PEB4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3915,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGYF7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNDBAAhdbZWLwlBflnYSDlkzHOZHxGHM8a8ViukoHL0HSjyryOx2gW\r\n7x8uC4s/MmekbhMzGp32X2AhGw6HEGyunCqNYZ9gJxdILVayNfRw4Clhy+0N\r\nOS/F/lPtkM3Udm8QF6XbQ8qxIlRgqmxJ0u86u3+yZuGFTpFo4bvTRPKoZEwd\r\nKDxsJhzNWYkHqxEMIjecIcvKEOOJuBjvV29TNJKcAJA+nr65Xp69jFSdjbVm\r\nGcWrudtsvYTnhAzEcwiXPf6fp7CESZp28IveCZ+u6pHDiEAnHHF0z1NQ/+Ky\r\nf7pNsu9sna0cYMojVLNRwAJiUJV4j/Xrnb/aIdVgA5SdBfBCqkDaaPY3tUZV\r\nuVZNAx3TvKgoS1MZPDqqkChpu230UhEa8hZ0fJ/+3gTfe4NyxMm+pBxMY8RM\r\n8hEogWmmHxAxaDW6L/qa3HpCcSZ1qwQL9L54B2i5U3syWlwVnVllLCdfkSpT\r\nkbF39jxafhhsGss+igyjLK9mN5Y15xtFoW0EB/VV2GO0haXjyu4qzEVZ5CLj\r\n1UKplQvDEUhsnRz3eW3T4Og++3bD3322UJ3P1fQkhvU3SmWpLvZX6aKB6COR\r\nfB+L55jYU80KvTHUWmfidBVMKS/2dOHRGs7bWFfEekFLEtQ3bX35lw/zMZks\r\nOSa8XYh8NomjkucgcrxbfMCWatGjn90cN2c=\r\n=/R47\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/vue3-smooth-dnd.js","unpkg":"dist/vue3-smooth-dnd.global.js","module":"dist/vue3-smooth-dnd.esm.js","gitHead":"e7690607bbe968bb383c54b931dbe4f4dca3a295","scripts":{"build":"rollup -c","build:watch":"rollup -c -w"},"_npmUser":{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"},"repository":{"url":"git+https://github.com/gilnd/vue3-smooth-dnd.git","type":"git"},"_npmVersion":"8.11.0","description":"Vue 3 wrappers for smooth-dnd library","directories":{},"_nodeVersion":"16.16.0","dependencies":{"smooth-dnd":"^0.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.11","rollup":"^2.43.0"},"peerDependencies":{"vue":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/vue3-smooth-dnd_0.0.3_1679393147050_0.4877272187067263","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"vue3-smooth-dnd","version":"0.0.4","keywords":["Vue 3","Vue next","Vue","Vue.js","sortable","drag and drop","drag&drop","drag","drop","draggable","dnd","smooth-dnd"],"author":{"name":"Gilbert Ndresaj"},"license":"MIT","_id":"vue3-smooth-dnd@0.0.4","maintainers":[{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"}],"homepage":"https://github.com/gilnd/vue3-smooth-dnd#readme","bugs":{"url":"https://github.com/gilnd/vue3-smooth-dnd/issues"},"dist":{"shasum":"74b6838e7b361ce443cea784595e0a96b1ec4985","tarball":"https://registry.npmjs.org/vue3-smooth-dnd/-/vue3-smooth-dnd-0.0.4.tgz","fileCount":8,"integrity":"sha512-aPfPnUcF7cRlX/5pJeqam51NltzW5qsQNiJuAY/s73nJ9/yRKNpNNOItjpK11GusEkiK957Uf+e8ERUCabapSg==","signatures":[{"sig":"MEUCIH+IPphPjNa2HpLU9RI7hXZXvFnIubV9i9/g/XTYLLT7AiEAocWEiUH/080McKMqSze0eXiHrfGZjbz/DJjzC5gkbm0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33370,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGv/gACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpP7xAAnx7wNoUqIdK1s8/tsNxsSGW1j80FwrDgsVgnFazsjTr2ufV0\r\nrjol2P4XYxS6y9YM5E331Cb0IyczxVDvpehY6rVjBV+dvCp46Wd7NGpAPb2J\r\nSJf4Z+i8s/+b25/qr4/WQ1wIxzTLpLTuVwoGga2SWrOCK+BRwD+nMCDqzjq8\r\nePVdoR8Ub9AKbHtDd7Oytf+rG0Tg1YLH+Qmw6lPfgluuazA9Vv62AiiImXlY\r\nqJm6VMsJ2/aiwJH3/UCXI789rD1plx5lX2/oq0rEmgBqUXpgc2jxgZXhKD0u\r\nIX5uFg4w9TNqu24SR8EO2LGzkpxMo3AVg7EZAzk+VTxrDRJLBauNCVAOBGD9\r\nUNpyBbGfPOIsULTLcijppvEW2AE7dNgHV/Xy0ob7vvokRNJXRMtxl2edhCyw\r\nCWe1ezdYP/8C5nnY7k0wjCGAP/mNG6DNQ8pOrRNF0IpgjtJMa745g5wamFqw\r\nIwr6+gsivW7zkK1OgVqxbouuRitkzJlBvhATihwEEPwR0hFU7edzPmCze+na\r\nB/dza3YfkesMXEQ6aiX0cc8WsdP1GlCyolnK9pVoG6DZpaYbDYef46ycI2HW\r\nm9z294OkZT+GVbH7l2rOMKmbsz0Nv7PIM0m8pLcbIDiXyVckv4dAjc+wHpB3\r\n27jlCjNMrTsMki73++WXOaEjdCtfs2PGEdg=\r\n=gVRC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/vue3-smooth-dnd.js","unpkg":"dist/vue3-smooth-dnd.global.js","module":"dist/vue3-smooth-dnd.esm.js","gitHead":"e7690607bbe968bb383c54b931dbe4f4dca3a295","scripts":{"build":"rollup -c","build:watch":"rollup -c -w"},"_npmUser":{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"},"repository":{"url":"git+https://github.com/gilnd/vue3-smooth-dnd.git","type":"git"},"_npmVersion":"8.11.0","description":"Vue 3 wrappers for smooth-dnd library","directories":{},"_nodeVersion":"16.16.0","dependencies":{"smooth-dnd":"^0.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.11","rollup":"^2.43.0"},"peerDependencies":{"vue":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/vue3-smooth-dnd_0.0.4_1679491040728_0.599094116595198","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"vue3-smooth-dnd","version":"0.0.5","keywords":["Vue 3","Vue next","Vue","Vue.js","sortable","drag and drop","drag&drop","drag","drop","draggable","dnd","smooth-dnd"],"author":{"name":"Gilbert Ndresaj"},"license":"MIT","_id":"vue3-smooth-dnd@0.0.5","maintainers":[{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"}],"homepage":"https://github.com/gilnd/vue3-smooth-dnd#readme","bugs":{"url":"https://github.com/gilnd/vue3-smooth-dnd/issues"},"dist":{"shasum":"85e4beecd4e56362bc8641167ada3c6a4e025b3d","tarball":"https://registry.npmjs.org/vue3-smooth-dnd/-/vue3-smooth-dnd-0.0.5.tgz","fileCount":8,"integrity":"sha512-A+l/ozaTGpFbw4fOdj4whmk+MedesOu/mBJgT3MfV+0XFvK44PLAMHB9vXn4lxaBlhZ/gRFs2TzG0kf24s1+3A==","signatures":[{"sig":"MEUCIH6KBjpJSpGOJvVFjSOiBk5oab25ucfxfEcqsfEFo5uQAiEAkLs1/2oi3URkOxsvEw1lSbr4RDxqbLlqCUu+6apsxJo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkKpqtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoXjQ//ebZ3lcIcu9qR8p8ZQXDZpvcVThTOCqhqlqSN9szK1ID8bbUo\r\niZHPPvQpqFprvt6YgFcVBRwGA8zKbAVlGIjj2jEL55YW+I2gh2VIMko/uLs9\r\nTl0p6P3wQ/iiMTpiqugGoBoRv94VMaWeLuS+HufV6Uf1wPsrTITeNCrbpJlE\r\nr9t8cOiOyhcG6W+HnbGTiFqlwaRoxoOfMs38a/CoBD76PU48Zxf/xekgpCm6\r\nAy+9fPZomZ/AEfucDh8ifLKisBe+mC85iHbbkrs0MebtsIPwgjwff8i5sv1c\r\nKisI9+NtRyxXDjf6qTmWXoXX/GfDdsGvSlGuKdmmtU2cokWBey2n6y+p/Wx9\r\nlz9+ZPwYFBdn2ALPBo0yPpnH5PVgdaY/B9zphKWWVKvua2WUgf85W5dh5bU1\r\nEVF3/E0bF8loCoqhSudu/9ksvdc0VojZLtGlasciuahdAGAC3veo4S9DdCaN\r\nrxLM8TYpxpf9mftyFlLsOas3L0z1T6NgUG5lVh2TEkuhFu60PTBieBJBX/ZZ\r\nWU7GJYMN8DIEd8CMild6UjgmHgKJstKsu4Lbay/DrhlRUktciQ7VuPXF/rQL\r\nhV1GeCqGkiBYUxAPAvzR6A3lhJ9J4osR/2qdKIhStWGYzw/pVU7IYxgO9OGg\r\nT/QLLKVYjFoJvAF3UgEJR561NO0Sxfyiucs=\r\n=Qu7c\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/vue3-smooth-dnd.js","unpkg":"dist/vue3-smooth-dnd.global.js","module":"dist/vue3-smooth-dnd.esm.js","gitHead":"5a26d614ff032d0a31dbc83907ffb4ab5ceb467d","scripts":{"build":"rollup -c","build:watch":"rollup -c -w"},"_npmUser":{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"},"repository":{"url":"git+https://github.com/gilnd/vue3-smooth-dnd.git","type":"git"},"_npmVersion":"8.11.0","description":"Vue 3 wrappers for smooth-dnd library","directories":{},"_nodeVersion":"16.16.0","dependencies":{"smooth-dnd":"^0.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.11","rollup":"^2.43.0"},"peerDependencies":{"vue":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/vue3-smooth-dnd_0.0.5_1680513709077_0.8613498741191208","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"vue3-smooth-dnd","version":"0.0.6","keywords":["Vue 3","Vue next","Vue","Vue.js","sortable","drag and drop","drag&drop","drag","drop","draggable","dnd","smooth-dnd"],"author":{"name":"Gilbert Ndresaj"},"license":"MIT","_id":"vue3-smooth-dnd@0.0.6","maintainers":[{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"}],"homepage":"https://github.com/gilnd/vue3-smooth-dnd#readme","bugs":{"url":"https://github.com/gilnd/vue3-smooth-dnd/issues"},"dist":{"shasum":"7a41f8625345aa0a6cc167d3cbf8c29baf276b4d","tarball":"https://registry.npmjs.org/vue3-smooth-dnd/-/vue3-smooth-dnd-0.0.6.tgz","fileCount":8,"integrity":"sha512-CH9ZZhEfE7qU1ef2rlfgBG+nZtQX8PnWlspB2HDDz1uVGU7fXM0Pr65DftBMz4X81S+edw2H+ZFG6Dyb5J81KA==","signatures":[{"sig":"MEYCIQC7NTfm6UXmmVNaNjd4WNPp9u13JLt3qmrlM2vwFyGLjQIhAM7HLXwKrigCnXlY+C9g/wWIaFIO0pVc5nOkl+rlMocl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32369},"main":"dist/vue3-smooth-dnd.js","unpkg":"dist/vue3-smooth-dnd.global.js","module":"dist/vue3-smooth-dnd.esm.js","gitHead":"b0b90b4895b1e25a5ce70aeea9ea4948042a4243","scripts":{"build":"rollup -c","build:watch":"rollup -c -w"},"_npmUser":{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"},"repository":{"url":"git+https://github.com/gilnd/vue3-smooth-dnd.git","type":"git"},"_npmVersion":"8.11.0","description":"Vue 3 wrappers for smooth-dnd library","directories":{},"_nodeVersion":"16.16.0","dependencies":{"smooth-dnd":"^0.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.11","rollup":"^2.43.0"},"peerDependencies":{"vue":"^3.0.11"},"_npmOperationalInternal":{"tmp":"tmp/vue3-smooth-dnd_0.0.6_1694600666127_0.9472743840185984","host":"s3://npm-registry-packages"}},"1.0.0":{"_id":"vue3-smooth-dnd@1.0.0","bugs":{"url":"https://github.com/g1lg1l/vue3-smooth-dnd/issues"},"dist":{"shasum":"a92637775f0fbb797caed6ac023745416b129cc8","tarball":"https://registry.npmjs.org/vue3-smooth-dnd/-/vue3-smooth-dnd-1.0.0.tgz","fileCount":26,"integrity":"sha512-EiKxYZ0UQifupXYraVSfLAzwaQV8rt6RX0bNf8hFQmJx1g3UGvq9GLa3CUeFcWxTiyrM1w9WnFiMLjqE/qRiWw==","signatures":[{"sig":"MEUCIHa/S0zOxDAXqBmb33wuI/3yJ9ZLte93TM9Bgggko1sgAiEAo5DrFyJXDpIEQmNpwzU1+kXtCp/orzT0FnLjfGU/dvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDa7pYipwwWI00qQ9hwg9eGOJtKtm6nD6DsQ18FBzXsnQIgWg08tqk3uVJ/0aCfoXX3x4mZMjhpmfIwIT/W1ucrMqU="}],"unpackedSize":568759},"main":"./dist/vue3-smooth-dnd.cjs","name":"vue3-smooth-dnd","type":"module","types":"./dist/index.d.ts","unpkg":"./dist/vue3-smooth-dnd.umd.cjs","author":{"name":"Gilbert Ndresaj"},"module":"./dist/vue3-smooth-dnd.js","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/vue3-smooth-dnd.js","require":"./dist/vue3-smooth-dnd.cjs"},"./package.json":"./package.json"},"gitHead":"953fd3bc57c3474d0adb3d08bd6c143a3d90baf5","license":"MIT","scripts":{"dev":"npm run dev -w demo","lint":"eslint .","test":"playwright test","build":"vite build && tsc -p tsconfig.json --emitDeclarationOnly","format":"prettier --write .","preview":"npm run preview -w demo","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"npm run build -w demo","format:check":"prettier --check .","prepublishOnly":"npm run build"},"version":"1.0.0","_npmUser":{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"},"homepage":"https://g1lg1l.github.io/vue3-smooth-dnd","jsdelivr":"./dist/vue3-smooth-dnd.umd.cjs","keywords":["vue","vue3","sortable","drag and drop","drag&drop","draggable","dnd","kanban","smooth-dnd"],"repository":{"url":"git+https://github.com/g1lg1l/vue3-smooth-dnd.git","type":"git"},"workspaces":["demo"],"_npmVersion":"10.9.8","description":"Drag & drop / sortable components for Vue 3. Bundles a maintained fork of smooth-dnd, ships TypeScript types.","directories":{},"maintainers":[{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"}],"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","vite":"^8.0.0","eslint":"^10.0.0","globals":"^17.0.0","prettier":"^3.9.0","@eslint/js":"^10.0.0","typescript":"^5.9.0","@playwright/test":"^1.63.0","eslint-plugin-vue":"^10.11.0","typescript-eslint":"^8.70.0","eslint-config-prettier":"^10.1.0"},"peerDependencies":{"vue":"^3.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue3-smooth-dnd_1.0.0_1789130520802_0.19386900340041047"}}},"time":{"created":"2021-05-31T22:12:14.211Z","modified":"2026-09-11T12:42:01.049Z","0.0.1":"2021-05-31T22:12:14.358Z","0.0.2":"2021-06-04T18:13:11.816Z","0.0.3":"2023-03-21T10:05:47.188Z","0.0.4":"2023-03-22T13:17:20.885Z","0.0.5":"2023-04-03T09:21:49.309Z","0.0.6":"2023-09-13T10:24:26.367Z","1.0.0":"2026-09-11T12:42:00.884Z"},"bugs":{"url":"https://github.com/g1lg1l/vue3-smooth-dnd/issues"},"author":{"name":"Gilbert Ndresaj"},"license":"MIT","homepage":"https://g1lg1l.github.io/vue3-smooth-dnd","keywords":["vue","vue3","sortable","drag and drop","drag&drop","draggable","dnd","kanban","smooth-dnd"],"repository":{"url":"git+https://github.com/g1lg1l/vue3-smooth-dnd.git","type":"git"},"description":"Drag & drop / sortable components for Vue 3. Bundles a maintained fork of smooth-dnd, ships TypeScript types.","maintainers":[{"name":"gilgil","email":"gilbert.ndresaj@gmail.com"}],"readme":"<h1 align=\"center\">vue3-smooth-dnd</h1>\n\n<p align=\"center\">\n  Drag &amp; drop / sortable components for Vue 3, built on <a href=\"https://github.com/kutlugsahin/smooth-dnd\">smooth-dnd</a>.\n  <br/>\n  <a href=\"https://g1lg1l.github.io/vue3-smooth-dnd\" target=\"_blank\"><b>Live demo</b></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/vue3-smooth-dnd\"><img alt=\"npm\" src=\"https://img.shields.io/npm/v/vue3-smooth-dnd\"></a>\n  <a href=\"https://github.com/g1lg1l/vue3-smooth-dnd/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://github.com/g1lg1l/vue3-smooth-dnd/actions/workflows/ci.yml/badge.svg\"></a>\n  <a href=\"./LICENSE\"><img alt=\"MIT\" src=\"https://img.shields.io/badge/license-MIT-blue\"></a>\n</p>\n\n- Two components, `<Container>` and `<Draggable>`, that render your own markup\n- Sortable lists, kanban boards (nested containers), copy / move / contain / drop-zone behaviours\n- Smooth CSS-transition animations, drop placeholder, drag handles, auto scroll (elements **and** the window)\n- TypeScript types included, zero runtime dependencies (smooth-dnd is bundled and maintained here, see [Credits](#credits))\n\n![The kanban demo](./.github/screenshot.png)\n\n## Install\n\n```bash\nnpm install vue3-smooth-dnd\n```\n\nRequires Vue `^3.3` (the type declarations are generated against Vue 3.5).\n\n## Usage\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { Container, Draggable, type DropResult } from 'vue3-smooth-dnd'\n\nconst items = ref([\n  { id: 1, title: 'Princess Mononoke' },\n  { id: 2, title: 'Spirited Away' },\n  { id: 3, title: 'My Neighbor Totoro' },\n])\n\nfunction onDrop({ removedIndex, addedIndex, payload }: DropResult) {\n  if (removedIndex === null && addedIndex === null) return\n  const result = [...items.value]\n  const item = removedIndex !== null ? result.splice(removedIndex, 1)[0] : payload\n  if (addedIndex !== null) result.splice(addedIndex, 0, item)\n  items.value = result\n}\n</script>\n\n<template>\n  <Container @drop=\"onDrop\">\n    <Draggable v-for=\"item in items\" :key=\"item.id\">\n      <div class=\"card\">{{ item.title }}</div>\n    </Draggable>\n  </Container>\n</template>\n```\n\n`<Container>` never touches your DOM on drop: it emits `drop` and you update your data, Vue re-renders.\n\n### Moving items between containers\n\nGive the containers the same `group-name`. Every container involved emits `drop`: the source with a `removedIndex`, the target with an `addedIndex`. Use `get-child-payload` so the target knows what was dropped:\n\n```vue\n<Container\n  v-for=\"column in columns\"\n  :key=\"column.id\"\n  group-name=\"cards\"\n  :get-child-payload=\"(index) => column.items[index]\"\n  @drop=\"onDrop(column, $event)\"\n>\n```\n\nThe [Kanban demo](./demo/src/demos/Kanban.vue) shows nested containers (draggable columns holding draggable cards), `should-accept-drop`, drop placeholders and ghost classes.\n\n## `<Container>`\n\n### Props\n\n| Prop                     | Type                                                        | Default              | Description                                                                                                                                            |\n| ------------------------ | ----------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `orientation`            | `'vertical' \\| 'horizontal'`                                | `'vertical'`         | Layout direction. Read once at mount; re-key the component to change it.                                                                               |\n| `behaviour`              | `'move' \\| 'copy' \\| 'drop-zone' \\| 'contain'`              | `'move'`             | `copy` leaves the item in place, `drop-zone` accepts drops without sorting (`addedIndex` is always 0), `contain` keeps the ghost inside the container. |\n| `group-name`             | `string`                                                    | –                    | Items can move between containers sharing a group name. Overridden by `should-accept-drop`.                                                            |\n| `lock-axis`              | `'x' \\| 'y'`                                                | –                    | Restrict the ghost movement to one axis.                                                                                                               |\n| `drag-handle-selector`   | `string`                                                    | –                    | CSS selector; a drag starts only from a matching element inside the draggable.                                                                         |\n| `non-drag-area-selector` | `string`                                                    | –                    | CSS selector; matching elements (buttons, inputs…) never start a drag. Wins over `drag-handle-selector`.                                               |\n| `drag-begin-delay`       | `number`                                                    | `0` (`200` on touch) | Milliseconds to hold before the drag starts. Moving more than 5px during the delay cancels it.                                                         |\n| `animation-duration`     | `number`                                                    | `250`                | Duration of reorder and drop animations in ms.                                                                                                         |\n| `auto-scroll-enabled`    | `boolean`                                                   | `true`               | Auto scroll scrollable ancestors and the window when the pointer is within 100px of an edge.                                                           |\n| `remove-on-drop-out`     | `boolean`                                                   | `false`              | When dropped outside every relevant container, emit `drop` with a `removedIndex` instead of animating back.                                            |\n| `drag-class`             | `string`                                                    | –                    | Class added to the ghost's element while dragging (added after mount so transitions run).                                                              |\n| `drop-class`             | `string`                                                    | –                    | Class added to the ghost's element when the drop animation starts.                                                                                     |\n| `drop-placeholder`       | `boolean \\| { className?, animationDuration?, showOnTop? }` | –                    | Show a placeholder where the item would land.                                                                                                          |\n| `get-child-payload`      | `(index: number) => any`                                    | –                    | Returns the `payload` passed to every event for the item at `index`.                                                                                   |\n| `should-accept-drop`     | `(sourceOptions, payload) => boolean`                       | –                    | Decides, at drag start, whether this container accepts the dragged item.                                                                               |\n| `should-animate-drop`    | `(sourceOptions, payload) => boolean`                       | –                    | Return `false` to skip the drop animation.                                                                                                             |\n| `get-ghost-parent`       | `() => HTMLElement`                                         | –                    | Element the ghost is appended to. See [Ghost](#ghost-position-and-transformed-parents).                                                                |\n| `tag`                    | `string \\| Component \\| { value, props }`                   | `'div'`              | Root element. Attributes and classes on `<Container>` fall through to it.                                                                              |\n\nAll props except `orientation` are reactive: changing them updates the running container.\n\n### Events\n\n| Event        | Payload                                          | Emitted by                                                                                                       |\n| ------------ | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- |\n| `drop`       | `{ removedIndex, addedIndex, payload, element }` | The source container and the target container, after the drop animation. Indices are `null` when not applicable. |\n| `drop-ready` | `{ removedIndex, addedIndex, payload, element }` | The container being hovered, every time the would-be drop index changes.                                         |\n| `drag-start` | `{ isSource, payload, willAcceptDrop }`          | Every container when a drag starts.                                                                              |\n| `drag-end`   | `{ isSource, payload, willAcceptDrop }`          | Every container when a drag ends, right before `drop`.                                                           |\n| `drag-enter` | –                                                | A container when the ghost enters it.                                                                            |\n| `drag-leave` | –                                                | A container when the ghost leaves it.                                                                            |\n\n## `<Draggable>`\n\nWraps one item. It renders a `div` (or `tag`) with the class `smooth-dnd-draggable-wrapper`; attributes and classes fall through. Keep margins on your inner element rather than on the `<Draggable>` itself: the drag ghost is a clone of the wrapper.\n\n```vue\n<Draggable tag=\"li\" class=\"row\">…</Draggable>\n```\n\n## Globals\n\n```ts\nimport { smoothDnD } from 'vue3-smooth-dnd'\n\nsmoothDnD.isDragging() // boolean\nsmoothDnD.cancelDrag() // abort the current drag, everything animates back\nsmoothDnD.maxScrollSpeed = 1500 // px/s used by auto scroll\nsmoothDnD.useTransformForGhost = true // move the ghost with translate3d instead of top/left\n```\n\n## Styling notes\n\n- A `<style>` block with the required layout rules is injected once. The classes you may want to target: `smooth-dnd-container`, `smooth-dnd-draggable-wrapper`, `smooth-dnd-ghost`.\n- The injected rules are unlayered: `position: relative; min-height: 30px; min-width: 30px` on containers, `display: table` on horizontal ones, `display: block; overflow: hidden` on wrappers in vertical ones. With cascade layers (Tailwind 4 puts utilities in `@layer utilities`) an unlayered rule always wins, so `flex` or `min-h-64` on a `<Container>` have no effect there. Use the important modifier (`flex!`, `min-h-64!`), an inline style, or an unlayered rule of your own.\n- While a drag is running `<body>` has the class `smooth-dnd-dragging`, and draggables get `pointer-events: none` so `:hover` styles don't fire on the items under the ghost. To restore hover during drags: `.smooth-dnd-dragging .smooth-dnd-draggable-wrapper { pointer-events: auto }`.\n- Add `smooth-dnd-prevent-auto-scroll-class` to a scrollable element (or to `<html>` / `<body>` for the window) to exclude it from auto scroll.\n\n### Ghost position and transformed parents\n\nThe ghost is `position: fixed` and appended to the container. An ancestor with `transform`, `filter`, `perspective` or `contain` becomes its containing block and would offset it, so in that case the ghost is automatically re-parented to `<body>`. If you need a different parent (for example to keep inherited styles or CSS variables), pass `get-ghost-parent`.\n\n## Migrating from 0.x\n\n- `smooth-dnd` is no longer a dependency; it is bundled. `smoothDnD`, `constants`, `dropHandlers` and all types are still exported from `vue3-smooth-dnd`.\n- Props you don't set no longer override smooth-dnd's defaults (a `<Container>` without `behaviour` used to lose its drop-out animation, without `animation-duration` its animations, without `orientation` its layout class).\n- Props are reactive now (except `orientation`).\n- ESM (`import`), CommonJS (`require`) and a UMD build (`unpkg` / `jsdelivr`, global `Vue3SmoothDnD`) are published, plus TypeScript declarations.\n- Node 20.19+ / modern browsers only; the IE polyfills were dropped.\n\n## Development\n\nThe repository is the package itself plus a `demo` workspace (npm workspaces, Node 22).\n\n| Path             | What                                                                 |\n| ---------------- | -------------------------------------------------------------------- |\n| `src/components` | The two Vue components                                               |\n| `src/smooth-dnd` | The bundled smooth-dnd core, fixes marked `// vue3-smooth-dnd:`      |\n| `demo`           | The demo site, deployed to GitHub Pages. Runs against `src` with HMR |\n| `e2e`            | Playwright tests driving the demo, one per reported issue            |\n\n```bash\nnpm install\nnpm run dev          # demo on http://localhost:5173/\nnpm run lint         # eslint\nnpm run format       # prettier\nnpm run typecheck    # tsc\nnpm test             # playwright (uses your Chrome; run `npx playwright install chromium` otherwise)\nnpm run build        # → dist (esm, cjs, umd, .d.ts)\nnpm run build:demo   # → demo/dist\n```\n\n### Releasing\n\nFirst-time setup:\n\n- Repository settings → Pages → Source: **GitHub Actions**. From then on every push to `main` runs the `Deploy demo` workflow and publishes `demo/dist` to https://g1lg1l.github.io/vue3-smooth-dnd/.\n- On npmjs.com create an automation token (Access Tokens → Generate new token → Automation, or a granular token with publish rights for `vue3-smooth-dnd`) and store it in the repository as the `NPM_TOKEN` secret (Settings → Secrets and variables → Actions).\n\nEvery release:\n\n1. `npm version <patch|minor|major>` bumps `package.json`, commits and tags (for example `v1.0.1`).\n2. Describe the changes in `CHANGELOG.md`, commit, then `git push --follow-tags`.\n3. On GitHub, draft a release for that tag and publish it. The `Release` workflow runs the type check and `npm publish --provenance`.\n\nWithout the workflow: `npm login` once, then `npm publish` from the repository root. `prepublishOnly` builds first.\n\n## Credits\n\nThis package started as a Vue 3 port of [vue-smooth-dnd](https://github.com/kutlugsahin/vue-smooth-dnd). Both it and the bundled core, [smooth-dnd](https://github.com/kutlugsahin/smooth-dnd), were written by Kutlu Sahin (MIT). smooth-dnd is unmaintained upstream, so its source lives in this repository under `src/smooth-dnd` with bug fixes on top.\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}