{"_id":"vue3-avatar","_rev":"19-2741241922430f27c75be5ebc146c0d6","name":"vue3-avatar","dist-tags":{"latest":"5.0.0"},"versions":{"1.0.0":{"name":"vue3-avatar","version":"1.0.0","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@1.0.0","maintainers":[{"name":"webformulator","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/webformulator/vue3-avatar#readme","bugs":{"url":"https://github.com/webformulator/vue3-avatar/issues"},"dist":{"shasum":"7066f5303d2009591c4a0c0bea057ee5a0ec34a3","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-1.0.0.tgz","fileCount":6,"integrity":"sha512-1kly4wr6ihWKpV3DgC3JYQGidA6sc67ZEWR0h/ienZSmCrd0Wyk31ZQQ+yBxTMknM5jgikckbJVARB3nWhuStw==","signatures":[{"sig":"MEQCIGldy81xR5zNgXuFV48sDOsW/eicTi6kegDAdrsVdkwgAiAPWrkJJ+/sjcJ+2cS7kzN49cYgyO0rh4MNzFzonBnNZA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhv1VjCRA9TVsSAnZWagAAo+gP/jQmSfGzoSNUKwNToZG5\n5hXqhO6KiSBET6aNqvOZvLYnX0EHYmCkwnItnuPA1C4ptG54F3R6DqKHNjXd\n4g9AjVe/L09W+EiDijpyce+gHDFHprUj+/tcDvAL1FVb/w+0ZoZS9/0RC6LE\nsBtoAJUjyux/rR+0KrkQUGD0vpMaz8oVqMhHpqRkGpiI4ibubeSmsP2bYcmx\nn+EBs5tyUaB5GAkTQU/LYDSSEwICLHHNpGfhf3Tw+d9klbsUTjVe+HqaFx/F\nSUuXpGVVOant8N4d5siD3WdVXa17qpwDUYAwk+Smob9o0p8RbHxqEJ3qinBV\nbK9W29z/KgMCiXKG05g75D5Nu1lfwJ6RT+1mMyVdciO4QACmzxtk8ugTr5nz\nrkBETTq1Oy25Yag4BnMV+aW49H1sa5exDmBDETFCHC8pPVS01d8EJ/Ygcv/2\nZ3bxq7YVuD0nF50w5OVJyhUbehgogawpLjt44iu6kx1EinAsBqu/8Wun4rgv\nYfdKOCC5o83UHZj9ZO4XizpjOtlPNzPqOX48LfczlC8zpPYyhF1gzdsJ0xX3\nI5Wtn6cjR7WA6E+PbNLzMg2vznBNN6QaSiYX6ORGZEi39mXEgiRaPAp/3Yo7\ngDTczf36y6ASu9jI4zp4nn+zY+tA2VeU/OLCs3PuArnv11yXXiWZ/xBWqPFE\n+Cu4\r\n=qVlI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"71dd14c6498983b5ed5e5eac299a7a1bd033915f","scripts":{"build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"webformulator","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/webformulator/vue3-avatar.git","type":"git"},"_npmVersion":"8.1.0","description":"A user avatar component for vue3. By default it uses light colors for Text and dark colors for Background.","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","rimraf":"^3.0.2","rollup":"^2.52.8","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_1.0.0_1639929187319_0.18682270834168757","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"vue3-avatar","version":"1.0.1","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@1.0.1","maintainers":[{"name":"webformulator","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/webformulator/vue3-avatar#readme","bugs":{"url":"https://github.com/webformulator/vue3-avatar/issues"},"dist":{"shasum":"0a762db03259b3c803e70ebf982ceff179d527a5","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-1.0.1.tgz","fileCount":6,"integrity":"sha512-9M3IXcbF1IyAfXZtOnsT0LnILVkKwmo1WoYjH6C/oCWyT1ADffOvbjkdbGO1eNsF+mWKvmIlkwt3VBNtzEophg==","signatures":[{"sig":"MEUCIGhGKhx/TyqriiwmScBoYzNKdfigrFFzldIIhCFzANkvAiEA9xOPab820YDRNJOj/lZk8vtQZA83BJ0369DwsGdoFJQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhv1wwCRA9TVsSAnZWagAAs3MQAIHtV/wXahQRId8gxpuJ\nzRNqnWj36hGau0fxnmbo0XwHDLAt3pE3OShcyFJj7jT2y7yDweHhgkYW27Yw\nglCcChXMGwcbYg1kXjGEm1PVHh+cn9JFEG6cKE4hghhF+weSxCT2tIutJX9F\n7dtQgDq7DYHE5rtq0VW+OR+jwjuqFZSOYd2HRw08tbc5ocGI6gtj+raq3/6x\n8P6O2UFuE7zs6w3VVteCS6lHJDUYogXp+sW92G2+P85m7Cy64trPulOdLJZa\nZbkrjHa+6VIstZlVgF4mgN2D/8Oo02tZtXHqBTwVTInIy0BwJlXJKBmQijbk\nCF/ydpc1B47Riql3Z+2lX55Qw3OjrJHe/jrZg+iGPV6YFbcd1NvD5vHnHoWn\nejXZQVCZfwUhvNleSJtG81FSZRqjPELhD1kB4U95xpjtVUp3V4XLjTkOorKU\n2XIdOVUxTLqPH4WyEVzJqb5Y37m0c92DxLjl6X557AQ7dI5TbKapCTYXdfBz\nxHVEiID5Biyn/V5on6A7t80ETGSTfSP3hI+yuuxNDj82b2NmxtDn4vO7Deqs\nu4+ICT8NUuOsPVQHWj2DIluGM+0Z5vIeLSzabieehrFyrcwDamTAydALjsVo\n5kTOeNzldckXEErITNIw9nyRXhukqmCbxT1HLre0VZ9Ocofx7sJ2YBYXG2R6\nyFZU\r\n=M8fJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"4421f98880936288f1dffefb0b91c38b621ae5fb","scripts":{"build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"webformulator","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/webformulator/vue3-avatar.git","type":"git"},"_npmVersion":"8.1.0","description":"A user avatar component for vue3. By default it uses light colors for Text and dark colors for Background.","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","rimraf":"^3.0.2","rollup":"^2.52.8","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_1.0.1_1639930928100_0.7858377788322686","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"vue3-avatar","version":"1.0.2","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@1.0.2","maintainers":[{"name":"absurdengineer","email":"mddalam149489@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"d382b7f1e67d6a1b2166eb2666065f3d520efcc1","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-1.0.2.tgz","fileCount":3,"integrity":"sha512-ife+M2wvb5yjFpCnJKfcpLN+98rm3A63D+/TvmPYtf/Ao4pYToUFn2m0OeE+rlEl6hY1KSgoMwawubK+GQPdtg==","signatures":[{"sig":"MEYCIQDzw9fgDds3uAZYSE9IIWw7nqWYD8FWaniLLmS6PW9/NwIhAO5FQAk0OEMLORsDyTuNZkO53l5GfVea8FYt2hNsd4I0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8925},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"f27949ce3813ae0ac145ec570f01509cdf24f9f2","scripts":{"build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"absurdengineer","email":"mddalam149489@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"6.14.17","description":"A user avatar component for vue3. By default it uses light colors for Text and dark colors for Background.","directories":{},"sideEffects":false,"_nodeVersion":"14.19.3","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","rimraf":"^3.0.2","rollup":"^2.52.8","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_1.0.2_1699443365207_0.38665245666529935","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"vue3-avatar","version":"1.0.3","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@1.0.3","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"e17acc209d38a1bd007159e59992b7cb278599bf","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-1.0.3.tgz","fileCount":6,"integrity":"sha512-3e2d7muGL6OMUj6uIrdGGwgQy0G4eQcq5dvaXmkZGFrvw7RmBMGU8VDZOzWNOlFW0IlKgkIGPU0IlVnRpwTFYg==","signatures":[{"sig":"MEQCIFC3uenMiIxpltHwelzKf0tKNlwUaaU711KAAaH7mwuUAiByeTwEVrl7SlyuNHH+7lSB7+mcJEIH79PTsxTzyZP5nA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28716},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"f27949ce3813ae0ac145ec570f01509cdf24f9f2","scripts":{"build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"6.14.17","description":"A user avatar component for vue3. By default it uses light colors for Text and dark colors for Background.","directories":{},"sideEffects":false,"_nodeVersion":"14.19.3","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","rimraf":"^3.0.2","rollup":"^2.52.8","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_1.0.3_1700647712057_0.11740296153824237","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"vue3-avatar","version":"2.0.0","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@2.0.0","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"082e22ddaf0900e923e0c1f36d8ffcb4b0afa4a1","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-2.0.0.tgz","fileCount":6,"integrity":"sha512-xCw89k5Asjc60hlxWGnqxpDwy3KbOF5OuruPkYd/dJiPkFTtegeX6Q11CiMsYYOUOYXqUNKnztMTulOWKUYz8g==","signatures":[{"sig":"MEYCIQCS9yht/JHv8u/QLwYkHUvgrIqCFnPknK6VQQDTi/nkggIhAKHkbcwAtjU4Gl99aznZPewy60cKEIbssXwIwJISQRSu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32471},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"618ca4e884cc18c9ec172fc799138bb7a4499bb6","scripts":{"build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"6.14.17","description":"A user avatar component for vue3. By default it uses light colors for Text and dark colors for Background.","directories":{},"sideEffects":false,"_nodeVersion":"14.19.3","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","rimraf":"^3.0.2","rollup":"^2.52.8","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_2.0.0_1702508605873_0.2287780202609493","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"vue3-avatar","version":"2.1.0","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@2.1.0","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"608fc3e44639301ca9a928d544121256377b3344","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-2.1.0.tgz","fileCount":6,"integrity":"sha512-EboqWBFMgH17coTJUcCMPaphUibwkSfMJ37/9spHj7ZxOfUPs/Ofca5mLPK9PQoylViDLN0/jzeHen7i/ilG7A==","signatures":[{"sig":"MEUCIQC7T5gNOSbQ9pviv7TW3psGCTf3SMa+FiKQNjXWkfjhTAIgdVy8Y2gjK21hquDiNkzXxTjzsgiUmBzabwQbTLW79wQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33589},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"8c4fed9c9d49676b5ed91dfa88ab793d1cec3485","scripts":{"build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"6.14.17","description":"A user avatar component for vue3. By default it uses light colors for Text and dark colors for Background.","directories":{},"sideEffects":false,"_nodeVersion":"14.19.3","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","rimraf":"^3.0.2","rollup":"^2.52.8","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_2.1.0_1702514462872_0.09046384827933451","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"vue3-avatar","version":"3.0.0","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@3.0.0","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"77277b0498f4e2e35a21a273864c799eaec45b2b","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-3.0.0.tgz","fileCount":6,"integrity":"sha512-d7sdb/8w008g32b61zbT0VmbSriPQz4FZa3Q2Z8xbwOAn7lQgWYJFyX7FbmXF8vFQVWSN4NBO22UZneZCOKMuw==","signatures":[{"sig":"MEQCIAyWLm+oG1KLwEsEN/nGcaDiCFSJ6hdm31BecTcfrpfDAiA9+78Xu8IOwD7uLtXvi+Zg+q29qWZSYBVf+pa2zw+cqg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39366},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"ff24a5ae5fe9972f2ebbb914c5ebf7975a277573","scripts":{"build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"6.14.17","description":"A user avatar component for vue3. By default it uses light colors for Text and dark colors for Background.","directories":{},"sideEffects":false,"_nodeVersion":"14.19.3","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","rimraf":"^3.0.2","rollup":"^2.52.8","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_3.0.0_1702588763855_0.6004687642849604","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"vue3-avatar","version":"3.1.0","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@3.1.0","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"0941fcd0ea450868af6a70f9aa7ee033467f7d13","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-3.1.0.tgz","fileCount":6,"integrity":"sha512-K1h98jJckc3WksZsme80CHxTLDU7aMSOujrhPGFcJ5Yxoq3I+cqgbe4wUh52G8vM65JbxfbS+BmCcladg0o6GA==","signatures":[{"sig":"MEYCIQDjTvxBhDRyCWGnpoRb3I/BoxxIiawxz5IzmL3niC+HmQIhAL5q5jiqLET2fAL98vL28eRV3rVkzRJJ1Dx2D/R9JuCK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41522},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"d3f3c620c191f65c0115f268ddb001094c3626b7","scripts":{"build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"8.19.4","description":"A user avatar component for vue3. By default it uses light colors for Text and dark colors for Background.","directories":{},"sideEffects":false,"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","rimraf":"^3.0.2","rollup":"^2.52.8","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_3.1.0_1729335937477_0.9959926532649106","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"vue3-avatar","version":"3.2.0","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@3.2.0","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"a4793b5d902e890888ba4ca2bbfb9b7318cb80cc","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-3.2.0.tgz","fileCount":6,"integrity":"sha512-rUwuwLsA1u4u9M8HbR+wRxdtJWPFGmtyQnywOM8DunLqZ9LNnVh7DMEyXOnHbRqnHJ1Q90aeQh+SGoOFpq4lwA==","signatures":[{"sig":"MEUCIFvcaHwi02Geqxf/irxLBB9JBQHL4wIDSj7lCxC0LZvzAiEAhhrP3Gb62N5M1LRHG3ygjSMT2MCQ9nkkZ9UUeiky5VE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47863},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"e813137af24d93b44567c2c091b5cb683c45f94b","scripts":{"build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"8.19.4","description":"A user avatar component for vue3. By default it uses light colors for Text and dark colors for Background.","directories":{},"sideEffects":false,"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","rimraf":"^3.0.2","rollup":"^2.52.8","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_3.2.0_1765152658349_0.023138503318339998","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"vue3-avatar","version":"4.0.0","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@4.0.0","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"5aca62e85c9a6bf9aecf2272850a336e9bde9ddc","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-4.0.0.tgz","fileCount":7,"integrity":"sha512-uQoJRLuHewj24HCUljAyAPZqMrfl5SY5pQxCyoNIcG6yRjZuuQ1k2C6U3Gq/hhLR9w9JKY+NFFEoCUkZ3MgGxQ==","signatures":[{"sig":"MEUCIGGMWk4Vc4snHYg0r7GdlMpSlxdjBYmQrg5L8cAIZUv8AiEAkJAXyDEaKWL8Uex1epUz2IKLjo1ejyT+Wk5qZCJlxjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81851},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"329ecf5b9ff2e4c27703ba20bc15f418265adc41","scripts":{"test":"vitest","build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"10.9.2","description":"A user avatar component for vue3. By default it uses light colors for Background and dark colors for Text.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","jsdom":"^27.3.0","rimraf":"^3.0.2","rollup":"^2.52.8","vitest":"^4.0.15","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/test-utils":"^2.4.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@vitejs/plugin-vue":"^6.0.3","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_4.0.0_1766024678619_0.5379718941684666","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"vue3-avatar","version":"4.0.1","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@4.0.1","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"27939020e2f82da7ce744ea1f620139180b9519d","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-4.0.1.tgz","fileCount":7,"integrity":"sha512-EKzTC88UmS78X0ss8mGc+gUXzn6/n9+kdCOS6+0yOEJmNmxEEPE32OsR7zJw50e1z6XH0r8H5WhALTTCjUzHag==","signatures":[{"sig":"MEUCIQDvfWHyVGHsv6LhOPgEI7f86/cSg4euJssBP2uGXmxTjgIgdWoIzOtdxznjSJccjjwlRoxDY//FlmfoRskks7kwY4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82048},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"8191169f4d0c8e2b270c955fd0da02e53729b47f","scripts":{"test":"vitest","build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"10.9.2","description":"A user avatar component for vue3. By default it uses light colors for Background and dark colors for Text.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","jsdom":"^27.3.0","rimraf":"^3.0.2","rollup":"^2.52.8","vitest":"^4.0.15","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/test-utils":"^2.4.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@vitejs/plugin-vue":"^6.0.3","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_4.0.1_1766025108144_0.5854748394620182","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"vue3-avatar","version":"4.1.0","keywords":["avatar","vue","vue3","vue3-avatar","user-avatar","vuejs"],"_id":"vue3-avatar@4.1.0","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"029b6e138f7621d2d57ef52bc92d88a4b0cd81d2","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-4.1.0.tgz","fileCount":14,"integrity":"sha512-35V4AWnnSZzGwXzqkzL4pgytOfBUWel8hLCdDLMHg/g1VquEKUigfA9jIUYMse9wcRjWKTUxrI6ekSFeC0pjJw==","signatures":[{"sig":"MEUCIQC4i8vlFWrpS+WxRQNHwGRKMMzCMd7Eqg7xy2ePYGU9nQIgXdXau7uU9ST6rvh312Hlc8i8zxSNA/9pP1pIVt6i7/o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130903},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"067f959ae0991aa3ffd5d78ed57c30ecd39b340c","scripts":{"test":"vitest","build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"10.9.2","description":"A user avatar component for vue3. By default it uses light colors for Background and dark colors for Text.","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","jsdom":"^27.3.0","rimraf":"^3.0.2","rollup":"^2.52.8","vitest":"^4.0.15","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/test-utils":"^2.4.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@vitejs/plugin-vue":"^6.0.3","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_4.1.0_1766184894147_0.36987525468913485","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"vue3-avatar","version":"4.1.1","keywords":["vue","vue3","avatar","vue3-avatar","user-avatar","profile-picture","identicon","initials","pixel-art","component","ui","nuxt","ssr","typescript-ready","accessible","a11y","vuejs"],"license":"MIT","_id":"vue3-avatar@4.1.1","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"850dc98883e41e7f5c3c42aac79abff1a27466ef","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-4.1.1.tgz","fileCount":8,"integrity":"sha512-1APGVXARvWtfTIzP5t/vsYmmuTsOoNPjgGy44ktMwuRAB6jv7OT6rKLXYq7EGzs4YWU8U/KnVbIk61HNK2xFWg==","signatures":[{"sig":"MEUCIQDFpfVFGpKlMtUJYhznyVt89ZUXtjSxSZJkRsnZC10tJAIgWAc6651nBlKHv0dr65Kj4RnW7qq6ld6zCiao6neljyo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123140},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"70afb6ad56963b28fd9bc39168923828f9b0929a","scripts":{"test":"vitest","build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"10.9.2","description":"A lightweight, fully customizable, accessible, and SSR-safe user avatar component for Vue 3 and Nuxt. Supports initials, custom images, pixel-art generation (identicons), groups with overflow, and auto-contrast text. Perfect for user profiles, team displa","directories":{},"sideEffects":false,"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","jsdom":"^27.3.0","rimraf":"^3.0.2","rollup":"^2.52.8","vitest":"^4.0.15","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","@babel/core":"^7.14.6","@vue/test-utils":"^2.4.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@vitejs/plugin-vue":"^6.0.3","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_4.1.1_1767045060080_0.5067932646799387","host":"s3://npm-registry-packages-npm-production"}},"4.1.2":{"name":"vue3-avatar","version":"4.1.2","keywords":["vue","vue3","avatar","vue3-avatar","user-avatar","profile-picture","identicon","initials","pixel-art","component","ui","nuxt","ssr","typescript-ready","accessible","a11y","vuejs"],"license":"MIT","_id":"vue3-avatar@4.1.2","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"9e0af3f92783fcef1ba9a26f43e40c4cf7755dcc","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-4.1.2.tgz","fileCount":8,"integrity":"sha512-lYcke49SPluj8N8DXsaP/5QEaOQS/z038G4s7/0eVRKqGj2SRBSb8KKupKRbK6zwa63WssuX2TKlFgRhDJdHVg==","signatures":[{"sig":"MEUCIQC88H3WQTRnbb+M8FizLPcSb00qwXRxOaFlMGrC38zHyQIgEs7aSxFfxb/bSW0mlH0z4/6elRRoXeA+c/YIwH3iGkY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127032},"main":"dist/avatar.ssr.js","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"gitHead":"44bca0cafd1433baa28bc77190473d13e0ac041b","scripts":{"test":"vitest","build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js","serve":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","docs:dev":"vitepress dev docs","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","docs:build":"vitepress build docs","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife","docs:preview":"vitepress preview docs"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"11.16.0","description":"A lightweight, fully customizable, accessible, and SSR-safe user avatar component for Vue 3 and Nuxt. Supports initials, custom images, pixel-art generation (identicons), groups with overflow, and auto-contrast text. Perfect for user profiles, team displa","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","jsdom":"^27.3.0","rimraf":"^3.0.2","rollup":"^2.52.8","vitest":"^4.0.15","postcss":"^8.2.10","minimist":"^1.2.5","cross-env":"^7.0.3","vitepress":"^1.6.4","@babel/core":"^7.14.6","@vue/test-utils":"^2.4.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@vitejs/plugin-vue":"^6.0.3","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_4.1.2_1785191217538_0.12998246131885183","host":"s3://npm-registry-packages-npm-production"}},"4.2.1":{"name":"vue3-avatar","version":"4.2.1","keywords":["vue","vue3","avatar","vue3-avatar","user-avatar","profile-picture","identicon","initials","pixel-art","component","ui","nuxt","nuxt-module","ssr","typescript","accessible","a11y","vuejs"],"license":"MIT","_id":"vue3-avatar@4.2.1","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"5733c170d70bb57e534b4fb2ec44404a1117cc96","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-4.2.1.tgz","fileCount":11,"integrity":"sha512-t+y5VlUTktzlORmUsBKSrIbJi0tNeu0jIWIq3mKGj4tm/smJMjUDhYQvuptNp9fzHcyxSlGj9Qz642dn+tCjLg==","signatures":[{"sig":"MEUCIFn7aubyrYofbjDOUAdWTesfiHmoA2oXQDkuvnUJ4cEwAiEAgjs2bGZE0paBjanoKaRSLSSNSm9wBQu89NE+PISXuK0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132943},"main":"dist/avatar.ssr.js","types":"dist/types/index.d.ts","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/avatar.esm.js","require":"./dist/avatar.ssr.js"},"./nuxt":{"types":"./dist/types/nuxt.d.ts","import":"./dist/nuxt/module.mjs","require":"./dist/nuxt/module.mjs"},"./package.json":"./package.json"},"gitHead":"fc5a33f58458787019ab46356be4b30a36e202b2","scripts":{"test":"vitest","build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js && npm run build:nuxt && npm run build:types","serve":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","docs:dev":"vitepress dev docs","prebuild":"rimraf ./dist","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","build:nuxt":"node build/copy-nuxt-module.js","docs:build":"vitepress build docs","build:types":"node build/copy-types.js","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife","docs:preview":"vitepress preview docs"},"_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"11.16.0","description":"A lightweight, fully customizable, accessible, and SSR-safe user avatar component for Vue 3 and Nuxt. Supports initials, custom images, pixel-art generation (identicons), groups with overflow, and auto-contrast text. Perfect for user profiles, team displa","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","jsdom":"^27.3.0","rimraf":"^3.0.2","rollup":"^2.52.8","vitest":"^4.0.15","postcss":"^8.2.10","vue-tsc":"^2.1.0","minimist":"^1.2.5","@nuxt/kit":"^3.14.0","cross-env":"^7.0.3","vitepress":"^1.6.4","typescript":"^5.6.0","@babel/core":"^7.14.6","@vue/test-utils":"^2.4.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@vitejs/plugin-vue":"^6.0.3","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/vue3-avatar_4.2.1_1786466786058_0.740178786391978","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"_id":"vue3-avatar@5.0.0","bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"dist":{"shasum":"4e3482c741f6cdbc03600879a96c128b33598cd6","tarball":"https://registry.npmjs.org/vue3-avatar/-/vue3-avatar-5.0.0.tgz","fileCount":27,"integrity":"sha512-tehqpI2ReSUP09JMcm1Cipovfuff14kAB8aq4BB8/BlriQYa4HfZryOlFQu9S0G28opvWa+fNwh3msxsE3DGmg==","signatures":[{"sig":"MEYCIQDqPIo5mlzJxDqJLEWdUyFprYj4lMt5TaP/wdfbVjjYwgIhAOGuhakWI0tlz1N5AhOsMCysWxUDL61IlE2UwcRXJRWn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDmTpI+0KPyPeIS+EkbbCRp7qBRPQ3gg+avhEjgZ/sMJAIgXYlBf8ADmN42G+cnfg/QBYZaE0Trfo/ZWb81MiCLt/0="}],"unpackedSize":384376},"main":"dist/avatar.ssr.js","name":"vue3-avatar","types":"dist/types/entry.esm.d.ts","unpkg":"dist/avatar.min.js","module":"dist/avatar.esm.js","browser":"dist/avatar.esm.js","engines":{"node":">=12"},"exports":{".":{"types":"./dist/types/entry.esm.d.ts","import":"./dist/avatar.esm.js","require":"./dist/avatar.ssr.js"},"./nuxt":{"types":"./dist/types/nuxt-module.d.ts","import":"./dist/nuxt/module.mjs","require":"./dist/nuxt/module.mjs"},"./package.json":"./package.json"},"gitHead":"f9c8caa16a39494ac2151412c571e250026879a0","license":"MIT","scripts":{"size":"node build/check-size.js","test":"vitest","build":"cross-env NODE_ENV=production rollup --config build/rollup.config.js && npm run build:nuxt && npm run build:types","serve":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve dev/serve.js","build:es":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format es","docs:dev":"vitepress dev docs","prebuild":"rimraf ./dist","test:all":"npm run typecheck && npm test -- --run && npm run test:visual","build:ssr":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format cjs","typecheck":"vue-tsc --noEmit -p tsconfig.json","build:nuxt":"node build/copy-nuxt-module.js","docs:build":"vitepress build docs","build:types":"vue-tsc -p tsconfig.build.json && node build/copy-types.js","build:unpkg":"cross-env NODE_ENV=production rollup --config build/rollup.config.js --format iife","test:visual":"vitest --run --config vitest.visual.config.mts","docs:preview":"vitepress preview docs","pretest:visual":"playwright install chromium","test:visual:headed":"cross-env VISUAL_HEADED=1 vitest --run --config vitest.visual.config.mts","test:visual:update":"cross-env UPDATE_SNAPSHOTS=1 vitest --run --config vitest.visual.config.mts"},"version":"5.0.0","_npmUser":{"name":"absurdengineer","email":"mddalam1@gmail.com"},"homepage":"https://github.com/absurdengineer/vue3-avatar#readme","keywords":["vue","vue3","avatar","vue3-avatar","user-avatar","profile-picture","identicon","initials","pixel-art","component","ui","tooltip","badge","status-indicator","nuxt","nuxt-module","ssr","typescript","accessible","a11y","vuejs"],"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"_npmVersion":"11.16.0","description":"A lightweight, fully customizable, accessible, and SSR-safe user avatar component for Vue 3 and Nuxt. Supports initials, custom images, pixel-art generation (identicons), groups with overflow, and auto-contrast text. Perfect for user profiles, team displa","directories":{},"maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.0.5","jsdom":"^27.3.0","pngjs":"^7.0.0","rimraf":"^3.0.2","rollup":"^2.52.8","vitest":"^4.0.15","postcss":"^8.2.10","vue-tsc":"^2.1.0","minimist":"^1.2.5","@nuxt/kit":"^3.14.0","cross-env":"^7.0.3","vitepress":"^1.6.4","pixelmatch":"^7.2.0","playwright":"^1.62.1","typescript":"^5.6.0","@babel/core":"^7.14.6","@types/node":"^26.4.1","@types/pngjs":"^6.0.5","@vue/test-utils":"^2.4.6","@vue/cli-service":"^4.5.13","@babel/preset-env":"^7.14.7","@vue/compiler-sfc":"^3.0.11","rollup-plugin-vue":"^6.0.0","@vitejs/plugin-vue":"^6.0.3","@rollup/plugin-alias":"^3.1.2","@rollup/plugin-babel":"^5.3.0","rollup-plugin-terser":"^7.0.2","@vue/babel-preset-app":"^4.5.15","@vue/cli-plugin-babel":"^4.5.13","rollup-plugin-postcss":"^4.0.0","@rollup/plugin-replace":"^2.4.2","@rollup/plugin-commonjs":"^14.0.0","@babel/preset-typescript":"^7.29.7","@rollup/plugin-node-resolve":"^9.0.0"},"peerDependencies":{"vue":"^3.0.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue3-avatar_5.0.0_1790199806021_0.38352695747997134"}}},"time":{"created":"2021-12-19T15:53:07.319Z","modified":"2026-09-23T21:43:26.542Z","1.0.0":"2021-12-19T15:53:07.457Z","1.0.1":"2021-12-19T16:22:08.224Z","1.0.2":"2023-11-08T11:36:05.366Z","1.0.3":"2023-11-22T10:08:32.241Z","2.0.0":"2023-12-13T23:03:26.096Z","2.1.0":"2023-12-14T00:41:03.068Z","3.0.0":"2023-12-14T21:19:24.028Z","3.1.0":"2024-10-19T11:05:37.713Z","3.2.0":"2025-12-08T00:10:58.489Z","4.0.0":"2025-12-18T02:24:38.776Z","4.0.1":"2025-12-18T02:31:48.296Z","4.1.0":"2025-12-19T22:54:54.287Z","4.1.1":"2025-12-29T21:51:00.232Z","4.1.2":"2026-07-27T22:26:57.696Z","4.2.1":"2026-08-11T16:46:26.213Z","5.0.0":"2026-09-23T21:43:26.385Z"},"bugs":{"url":"https://github.com/absurdengineer/vue3-avatar/issues"},"license":"MIT","homepage":"https://github.com/absurdengineer/vue3-avatar#readme","keywords":["vue","vue3","avatar","vue3-avatar","user-avatar","profile-picture","identicon","initials","pixel-art","component","ui","tooltip","badge","status-indicator","nuxt","nuxt-module","ssr","typescript","accessible","a11y","vuejs"],"repository":{"url":"git+https://github.com/absurdengineer/vue3-avatar.git","type":"git"},"description":"A lightweight, fully customizable, accessible, and SSR-safe user avatar component for Vue 3 and Nuxt. Supports initials, custom images, pixel-art generation (identicons), groups with overflow, and auto-contrast text. Perfect for user profiles, team displa","maintainers":[{"name":"absurdengineer","email":"mddalam1@gmail.com"}],"readme":"# vue3-avatar\n\n> A lightweight, customizable, and accessible avatar component for Vue 3 and Nuxt.\n\n**📖 [Read the Documentation & Try the Interactive Playground](https://vue3-avatar.vercel.app/)**\n\n**🆕 v5 is out** — a real tooltip engine, badges, image fallback chains, `as`/`disabled`/`selected`/`editable`, and a TypeScript source.\n[What's new](https://vue3-avatar.vercel.app/whats-new) · [Migrating from v4](https://vue3-avatar.vercel.app/migration/v4-to-v5)\n\n[![npm version](https://img.shields.io/npm/v/vue3-avatar.svg?style=flat-square)](https://www.npmjs.com/package/vue3-avatar)\n[![Downloads](https://img.shields.io/npm/dt/vue3-avatar.svg?style=flat-square)](https://www.npmjs.com/package/vue3-avatar)\n[![Bundle size](https://img.shields.io/bundlephobia/minzip/vue3-avatar?style=flat-square)](https://bundlephobia.com/package/vue3-avatar)\n[![License](https://img.shields.io/npm/l/vue3-avatar.svg?style=flat-square)](https://github.com/absurdengineer/vue3-avatar/blob/master/LICENSE)\n[![Docs](https://img.shields.io/badge/docs-live-brightgreen?style=flat-square)](https://vue3-avatar.vercel.app/)\n\n**Avatar Vue** is a feature-rich component for displaying user profiles, team members, or entity icons. It supports **initials-based avatars**, **custom images** with lazy loading, **deterministic pixel art (identicons)**, and **avatar groups** with overflow handling.\n\nWhether you need a simple profile picture or a complex team display, **Avatar Vue** handles fallback logic, accessibility, and responsiveness out of the box.\n\n## Why vue3-avatar?\n\nMost UI libraries include an avatar, but only as a primitive — a circle, maybe an image.\n`vue3-avatar` is the choice when you need more without adding a full design system:\n\n| Feature                  | vue3-avatar         | Vuetify `v-avatar` | PrimeVue `Avatar` |\n| ------------------------ | ------------------- | ------------------ | ----------------- |\n| Initials (multi-word)    | ✅ Smart extraction | ✅                 | ✅                |\n| Pixel art / identicons   | ✅ 8 themes         | ❌                 | ❌                |\n| Avatar groups + overflow | ✅                  | ❌                 | ❌                |\n| Auto-contrast text       | ✅                  | ❌                 | ❌                |\n| Status badges            | ✅ 4 positions      | ❌                 | ✅                |\n| SSR / Nuxt safe          | ✅                  | ✅                 | ✅                |\n| Zero dependencies        | ✅                  | ❌ (full lib)      | ❌ (full lib)     |\n| Custom image slot        | ✅ (NuxtImg ready)  | ❌                 | ❌                |\n\nWorks with Tailwind CSS, UnoCSS, Headless UI, or any setup that doesn't include a UI library. Drop it in and it handles the rest.\n\n## Key Features\n\n- ⚡ **Lightweight & Fast**: Optimized for Vue 3.\n- 🎨 **Smart Initials**: Automatically extracts Unicode-safe initials from names (e.g., \"Tony Stark\" → \"TS\") without splitting emoji or combining accents.\n- 🖼️ **Image Support**: Seamlessly handles image URLs with automatic fallback to initials or pixel art on error.\n- 👾 **PixelGen**: Generates consistent, deterministic pixel art (identicons) like GitHub/Gravatar.\n- 👥 **Avatar Groups**: Easily stack avatars for teams with `+N` overflow badges.\n- 🌗 **Auto-Contrast**: Automatically adjusts text color (black/white) based on background luminance.\n- ♿ **Accessible**: Built with a11y in mind (ARIA roles, keyboard support).\n- 🟢 **Status Indicators**: Built-in presence dots with custom statuses, sizes, colours, and an optional pulse.\n- 💬 **Built-in Tooltips**: Styled, collision-aware tooltips with twelve placements — no Popper or Floating UI dependency.\n- 🔴 **Notification Badges**: Counts, dots, and custom badge content in any corner.\n- 🛡️ **Resilient Images**: Ordered fallback chains, a loading skeleton, and retina `srcset` support.\n- ☁️ **SSR & Nuxt Ready**: Safe for server-side rendering with no hydration mismatches.\n\n## Examples\n\n- **Tony** will become **T**\n- **Tony Stark** will become **TS**\n- **Tony Howard-Stark** will become **THS**\n- **Albert Tony Howard Stark** will become **ATS**\n- **👩‍💻 Ada** keeps the joined emoji intact as **👩‍💻A**\n\n## Previews\n\n### Shapes & Base Styles\n\n![Shapes and base styles](img/shapes_base.png)\n\n### Status & Presence\n\n![Status and presence](img/status_presence.png)\n\n### PixelGen Themes\n\n![PixelGen themes](img/pixelgen.png)\n\n### Auto-Contrast & Images\n\n![Auto-contrast and images](img/auto_contrast.png)\n\n### Interactive Avatar Groups\n\n![Avatar groups](img/avatar_groups.png)\n\n## Installation\n\n```bash\nnpm install vue3-avatar\n```\n\n## Usage\n\n**Avatar Vue** is very easy to use.\n\n### ES6\n\n**For Local Registration**\n\n```javascript\nimport { Avatar, AvatarGroup } from \"vue3-avatar\";\n\nexport default {\n  // ...\n  components: {\n    Avatar,\n    AvatarGroup, // Optional: if you want to use grouping\n    // ...\n  },\n  // ...\n};\n```\n\n**For Global Registration (with optional defaults)**\n\nUpdate main.js\n\n```javascript\nimport { createApp } from \"vue\";\nimport App from \"./App.vue\";\nimport Avatar from \"vue3-avatar\";\n\nconst app = createApp(App);\n\n// Configure global defaults (Optional)\napp.use(Avatar, {\n  defaults: {\n    size: 50,\n    autoContrast: true,\n    transition: true,\n    loading: \"lazy\",\n    shape: \"circle\",\n  },\n});\n```\n\nAfter importing the component, use it in your template:\n\n```html\n<Avatar name=\"John Doe\" />\n```\n\nAn explicitly passed prop always wins over the app default, including a value\nthat matches the component default or an explicit `false`:\n\n```html\n<Avatar name=\"Ada Lovelace\" :size=\"40\" :auto-contrast=\"false\" />\n```\n\n## Nuxt.js Support\n\n**Avatar Vue** is fully SSR-safe and optimized for Nuxt.js 3+, and ships an official Nuxt module.\n\n### 1. Installation in Nuxt (recommended: Nuxt module)\n\nAdd `vue3-avatar/nuxt` to your `modules` array — `<Avatar>` and `<AvatarGroup>` are then auto-imported, no manual plugin registration needed:\n\n```typescript\n// nuxt.config.ts\nexport default defineNuxtConfig({\n  modules: [\"vue3-avatar/nuxt\"],\n  vue3Avatar: {\n    defaults: {\n      size: 40,\n      autoContrast: true,\n    },\n  },\n});\n```\n\n```html\n<template>\n  <Avatar name=\"John Doe\" />\n</template>\n```\n\nSee the full [Nuxt module guide](https://vue3-avatar.vercel.app/guide/nuxt-module) for all module options.\n\n#### Manual plugin registration (fallback)\n\nIf you'd rather register the plugin yourself — or are using Vue 3 without Nuxt — create a plugin file `plugins/avatar.ts`:\n\n```typescript\nimport { defineNuxtPlugin } from \"#app\";\nimport Avatar from \"vue3-avatar\";\n\nexport default defineNuxtPlugin((nuxtApp) => {\n  nuxtApp.vueApp.use(Avatar, {\n    defaults: {\n      size: 40,\n      autoContrast: true,\n    },\n  });\n});\n```\n\n### 2. Standard Scoped Slot for NuxtImg\n\nUse the `#image` slot to integrate with custom image components like `<NuxtImg>` for better performance and automatic optimization.\n\n```html\n<template>\n  <Avatar name=\"John Doe\" image-src=\"/profile.jpg\">\n    <template #image=\"{ src, srcset, sizes, alt, size, style, class: imageClass, onLoad, onError }\">\n      <NuxtImg\n        :src=\"src\"\n        :srcset=\"srcset\"\n        :sizes=\"sizes\"\n        :alt=\"alt\"\n        :width=\"size\"\n        :height=\"size\"\n        :style=\"style\"\n        :class=\"imageClass\"\n        @load=\"onLoad\"\n        @error=\"onError\"\n        loading=\"lazy\"\n      />\n    </template>\n  </Avatar>\n</template>\n```\n\n### 3. SSR-Safe Deterministic Colors\n\nColors and pixel patterns are generated deterministically from `name`, or from\nthe optional `seed` prop when supplied. Use the same value on the server and\nclient. Pass a stable user ID to preserve generated colors and artwork after a\nrename; initials, tooltips, and accessible labels still follow `name`:\n\n```html\n<Avatar :name=\"user.displayName\" :seed=\"user.id\" variant=\"pixel\" />\n```\n\nOmitting `seed` preserves existing output. Seeds accept strings and numbers,\nincluding `0` and an empty string. Different seeds can still produce the same\ncolors or pattern.\n\n## Props\n\n| Property                                  | Type               | Default          | Description                                                                     |\n| ----------------------------------------- | ------------------ | ---------------- | ------------------------------------------------------------------------------- |\n| `name`                                    | String             | required         | Name used for initials and the accessible label; seeds colours and pixel art when `seed` is omitted. |\n| `seed`                                    | String / Number    | `name`           | Stable identity for generated colours and pixel art, independent of the display name. |\n| `imageSrc`                                | String             | —                | Image URL. Use `image-src` in templates.                                        |\n| `size`                                    | Number             | `40`             | Avatar diameter in pixels.                                                      |\n| `inline`                                  | Boolean            | `false`          | Displays the avatar inline.                                                     |\n| `shape`                                   | String             | derived          | `circle`, `square`, `squircle`, or `hexagon`. Overrides `rounded`.              |\n| `rounded`                                 | Boolean            | `true`           | Uses a circle when true or a square when false, if `shape` is omitted.          |\n| `variant`                                 | String             | `initials`       | `initials` or `pixel`.                                                          |\n| `pixelTheme`                              | String             | `earth`          | `earth`, `neon`, `ocean`, `forest`, `sunset`, `midnight`, `candy`, or `retro`.  |\n| `color` / `background`                    | String             | generated        | Override the foreground or background colour.                                   |\n| `dark` / `gradient`                       | Boolean            | `false`          | Use the dark palette or a name-based gradient.                                  |\n| `autoContrast`                            | Boolean            | `false`          | Choose black or white text for a hexadecimal background colour.                 |\n| `border` / `borderColor`                  | Boolean / String   | `true` / `white` | Control the native image border; initials and pixel avatars keep their outline. |\n| `alt`                                     | String             | derived          | Accessible label; defaults to `Avatar of {name}`.                               |\n| `loading` / `transition`                  | String / Boolean   | `lazy` / `true`  | Native image loading and image fade-in behaviour.                               |\n| `interactive`                             | Boolean            | `false`          | Enables keyboard activation and emits `activate`.                               |\n| `pointer` / `onClick`                     | Boolean / Function | `false` / —      | Shows a pointer cursor; `onClick` also receives activation events.              |\n| `customAvatarStyle` / `customStatusStyle` | Object             | `{}`             | Inline style overrides.                                                         |\n| `sameBorder` / `useTextColorForBorder`    | Boolean            | `false`          | Status-border and avatar-border colour options.                                 |\n| `useLegacyColors`                         | Boolean            | `false`          | Uses the legacy `vue-avatar` palette.                                           |\n\n### Tooltip props\n\nFull reference in the [tooltip documentation](https://vue3-avatar.absurdengineer.com/components/tooltip).\n\n| Property             | Type                      | Default        | Description                                                                                     |\n| -------------------- | ------------------------- | -------------- | ----------------------------------------------------------------------------------------------- |\n| `tooltip`            | String / Boolean / Object | —              | Content. Unset uses `name`; `false` disables it; an object supplies inline overrides.           |\n| `tooltipPlacement`   | String                    | `top`          | `top`, `bottom`, `left`, `right`, each optionally suffixed `-start` or `-end`.                  |\n| `tooltipTrigger`     | String                    | `hover focus`  | Space-separated combination of `hover`, `focus`, `click`, `manual`.                             |\n| `tooltipDelay` / `tooltipHideDelay` | Number     | `200` / `100`  | Open and close delays in milliseconds.                                                          |\n| `tooltipOffset`      | Number                    | `8`            | Gap between the avatar and the tooltip.                                                         |\n| `tooltipArrow`       | Boolean                   | `true`         | Shows the arrow.                                                                                |\n| `tooltipTheme`       | String                    | `dark`         | `dark`, `light`, or `auto` (follows `prefers-color-scheme`).                                    |\n| `tooltipInteractive` | Boolean                   | `false`        | Keeps the tooltip open while the pointer is inside it.                                          |\n| `tooltipDisabled`    | Boolean                   | `false`        | Runtime kill switch, separate from `tooltip: false`.                                            |\n| `nativeTitle`        | Boolean                   | `false`        | Restores the v4 `title` attribute and disables the styled tooltip.                              |\n\n### Status props\n\n| Property         | Type                     | Default        | Description                                                                                  |\n| ---------------- | ------------------------ | -------------- | -------------------------------------------------------------------------------------------- |\n| `status`         | String                   | —              | `online`, `away`, `offline`, `busy`, or any key present in `statusColors`.                    |\n| `statusPosition` | String                   | `bottom-right` | `top-right`, `top-left`, `bottom-right`, or `bottom-left`.                                   |\n| `statusColor`    | String                   | —              | Overrides the colour for this avatar, whatever the status is.                                |\n| `statusColors`   | Object                   | `{}`           | Extra or replacement colours, merged over the built-in four. Also accepted in the global config. |\n| `statusSize`     | String / Number          | `md`           | `sm`, `md`, `lg`, or explicit pixels.                                                        |\n| `statusLabel`    | String                   | —              | Replaces \"User is {status}\" in the accessible label.                                         |\n| `statusPulse`    | Boolean                  | `false`        | Animates a pulsing ring. Suppressed under `prefers-reduced-motion`.                          |\n| `sameBorder`     | Boolean                  | `false`        | Makes the status indicator use the avatar border colour.                                     |\n\n### Badge props\n\n| Property                          | Type            | Default             | Description                                                                          |\n| --------------------------------- | --------------- | ------------------- | ------------------------------------------------------------------------------------ |\n| `badge`                           | String / Number | —                   | Badge content. Renders the badge when set.                                           |\n| `badgeVariant`                    | String          | `count`             | `count`, `dot`, or `icon`. `dot` needs no `badge` value.                             |\n| `badgeMax`                        | Number          | `999`               | Counts above this render as `{max}+`. Digit strings are clamped like numbers.        |\n| `badgeMaxLength`                  | Number          | `3`                 | Letters kept in a non-numeric badge. `\"Promotional\"` renders as `\"Pro\"`.             |\n| `badgePosition`                   | String          | `top-right`         | Same four corners as `statusPosition`.                                               |\n| `badgeColor` / `badgeTextColor`   | String          | `#ef4444` / derived | Given only a hexadecimal background, the text colour is chosen for contrast.         |\n| `badgeLabel`                      | String          | derived             | Wording for the badge in the accessible label.                                       |\n| `customBadgeStyle`                | Object          | `{}`                | Inline style overrides for the badge, including `maxWidth` to allow a wider label.    |\n\nBadge content is capped so a corner marker stays one: counts above `badgeMax`\nrender as `999+`, and other content is trimmed to `badgeMaxLength` letters — the\nsame three-character budget the initials use. The badge is also capped at the\navatar's own width, so a long label cannot run across the face.\n\n### Image props\n\n| Property           | Type              | Default | Description                                                                                       |\n| ------------------ | ----------------- | ------- | ------------------------------------------------------------------------------------------------- |\n| `fallbackSrc`      | String / String[] | —       | Sources tried in order when `imageSrc` fails, before falling back to initials or pixel art.       |\n| `skeleton`         | Boolean           | `true`  | Shimmer placeholder while the image loads. Rendered only after mount, so SSR output stays stable. |\n| `retina`           | Boolean           | `false` | Derives an `@2x` `srcset` from `imageSrc` when no explicit `srcset` is set.                        |\n| `srcset` / `sizes` | String            | —       | Passed through to the `<img>`. An explicit `srcset` wins over `retina`.                            |\n| `crossorigin`      | String            | —       | `anonymous` or `use-credentials`.                                                                  |\n| `referrerpolicy`   | String            | —       | Passed through to the `<img>`.                                                                     |\n| `decoding`         | String            | `async` | `async`, `sync`, or `auto`.                                                                        |\n\n### Interaction props\n\n| Property                   | Type    | Default            | Description                                                                                    |\n| -------------------------- | ------- | ------------------ | ----------------------------------------------------------------------------------------------- |\n| `as`                       | String  | `div`              | `div`, `button`, or `a`. Native elements bring real semantics and keyboard handling.            |\n| `href` / `target` / `rel`  | String  | —                  | Used when `as=\"a\"`. `target=\"_blank\"` adds `rel=\"noopener noreferrer\"` unless `rel` is set.     |\n| `disabled`                 | Boolean | `false`            | Blocks activation, dims the avatar, and sets `aria-disabled` or the native `disabled`.          |\n| `selected`                 | Boolean | —                  | Opt-in toggle state, rendered as `aria-pressed`. Leave unset for avatars that are not toggles.  |\n| `editable`                 | Boolean | `false`            | Adds an overlay for changing the picture. Emits `edit`. Decorative on `button`/`a` roots.       |\n| `accept`                   | String  | —                  | With `editable`, wires a hidden file input and emits `file-select`.                              |\n| `editLabel`                | String  | `Change picture`   | Accessible label for the edit overlay.                                                          |\n\n## Events\n\n| Event      | Arguments | Description                                                                 |\n| ---------- | --------- | --------------------------------------------------------------------------- |\n| `error`    | `event`   | Emitted when `imageSrc` fails to load                                       |\n| `load`     | `event`   | Emitted when `imageSrc` successfully loads                                  |\n| `activate` | `event`   | Emitted when an interactive avatar is clicked or activated with Enter/Space |\n| `fallback` | `{ failedSrc, nextSrc, remaining, event }` | Emitted when an image fails and another source remains. `error` fires only once the chain is exhausted |\n| `edit`     | `event`   | Emitted when the `editable` overlay is activated                            |\n| `file-select` | `{ files, event }` | Emitted when a file is chosen through the `accept` file input     |\n\n## Slots\n\n| Slot          | Description                                                                                                             |\n| ------------- | ----------------------------------------------------------------------------------------------------------------------- |\n| `image`         | Scoped slot for custom image components (e.g. `<NuxtImg>`). Provides `{ src, srcset, sizes, alt, size, style, class, onLoad, onError }`. Bind the callbacks to keep loading and fallback state synchronized. `src` is the current link in the fallback chain. |\n| `placeholder`   | Scoped slot for a custom placeholder when no name/image is present. Provides `{ size, style }`.                        |\n| `status`        | Custom status indicator content. Overrides default status rendering but keeps positioning.                             |\n| `badge`         | **NEW (v5)** Custom badge content. Keeps the badge's positioning and shape.                                            |\n| `overlay`       | Custom overlay content (badges, icons). Positioned relative to container.                                              |\n| `tooltip`       | **NEW (v5)** Rich tooltip body. Provides `{ nameValue, initials, status, imageSrc }`.                                  |\n| `edit-overlay`  | **NEW (v5)** Replaces the camera icon on the `editable` overlay.                                                       |\n\n## CSS Variables\n\nThe component exposes CSS variables on the root element for easier theming:\n\n```css\n--va-size\n--va-bg\n--va-color\n--va-border-color\n--va-radius\n--va-clip-path\n--va-font-size\n--va-status-color\n--va-status-size\n--va-badge-bg\n--va-badge-color\n```\n\nThese are read by the component and can be set by you:\n\n```css\n--va-focus-ring          /* focus outline colour */\n--va-ring-color          /* ring shown when `selected` */\n--va-skeleton-bg\n--va-skeleton-shimmer\n--va-edit-overlay-bg\n--va-edit-overlay-color\n--va-tooltip-bg\n--va-tooltip-color\n--va-tooltip-radius\n--va-tooltip-font-size\n--va-tooltip-padding\n--va-tooltip-shadow\n--va-tooltip-z-index\n```\n\n## AvatarGroup (New in v4)\n\nYou can group multiple avatars together with `AvatarGroup`.\n\n```html\n<AvatarGroup :max=\"3\">\n  <Avatar name=\"Tony Stark\" />\n  <Avatar name=\"Bruce Banner\" />\n  <Avatar name=\"Steve Rogers\" />\n  <Avatar name=\"Natasha Romanoff\" />\n</AvatarGroup>\n```\n\n**Props:**\n\n- `max`: (Number) Maximum number of avatars to show. Overflow is shown as `+N`.\n- `overlap`: (Number) Overlap size in pixels (default 10).\n- `borderColor`: (String) Border color for separators (default 'white').\n- `size`: (Number) Size for the overflow badge (default 40).\n- `layout`: (String) Layout of the avatars.\n  - `stack` (default): Horizontal overlapping stack.\n  - `triangle`: Pyramid shape where the first avatar is on top, and subsequent avatars form the base. _Note: Triangle layout is limited to 3 items (2 visible + 1 overflow badge if needed)._\n- `onClick`: (Function) Click callback for the entire group.\n- `pointer`: (Boolean) If true, applies `pointer` cursor to the group.\n\nStack overlap and triangle edge placement follow the surrounding `dir` (`ltr` or `rtl`). When `onClick` is provided, only activation on the group root invokes the group callback; child avatars and the `+N` overflow badge retain their own interactions.\n\n**Events:**\n\n| Event             | Arguments                     | Description                                                                                                  |\n| ----------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------ |\n| `@overflow-click` | `(hidden: Array, all: Array)` | **NEW (v4.1)** Emitted when user clicks the `+N` badge. Provides list of hidden users AND list of all users. |\n\n**Tooltips:**\n\n- Hovering the group background shows **all** member names.\n- Hovering the overflow badge (`+N`) shows only the **hidden** member names.\n- Individual avatars show their own name on hover.\n\nYou can also pass props to individual `Avatar` components within the group. For example, you can set the `status` of each avatar.\n\n```html\n<AvatarGroup :max=\"3\">\n  <Avatar name=\"Tony Stark\" status=\"online\" />\n  <Avatar name=\"Bruce Banner\" status=\"away\" />\n  <Avatar name=\"Steve Rogers\" status=\"offline\" />\n  <Avatar name=\"Natasha Romanoff\" />\n</AvatarGroup>\n```\n\n## Accessibility\n\n- **Roles:** Renders as `role=\"img\"` by default, or `role=\"button\"` if `interactive` is true. Use `as=\"button\"` or `as=\"a\"` to get real native semantics instead.\n- **Labels:** Automatically generates aria-labels from `alt` or `name` props.\n- **Keyboard:** When `interactive` is true, supports `Tab` navigation and `Enter`/`Space` activation. A focus ring is shown on `:focus-visible`, styleable through `--va-focus-ring`.\n- **Status:** Status text is included in the accessible label (e.g., \"Avatar of John Doe. User is online\"), or replaced entirely by `statusLabel`.\n- **Badges:** The badge is `aria-hidden` and its meaning is folded into the avatar's label, so it is announced once rather than twice.\n- **Tooltips:** Rendered as `role=\"tooltip\"` and referenced with `aria-describedby` only when they say something the label does not. `Escape` closes an open tooltip.\n- **Motion:** The image fade, status pulse, skeleton shimmer and tooltip transition are all disabled under `prefers-reduced-motion: reduce`.\n\n## Color Systems\n\n**Avatar Vue** supports two color systems:\n\n### Default Colors (Modern)\n\nBy default, the component uses a modern color palette with light colors for text and dark colors for backgrounds. This provides better contrast and readability.\n\n```html\n<avatar name=\"John Doe\" />\n```\n\n### Legacy Colors (vue-avatar compatible)\n\n**@deprecated** For backwards compatibility with the original vue-avatar component, you can enable the legacy color palette by setting `useLegacyColors` to `true`. This uses the original 18-color palette from vue-avatar.\n\n```html\n<avatar name=\"John Doe\" :use-legacy-colors=\"true\" />\n```\n\n## Migration Guide (v4 -> v5)\n\nv5 has two breaking changes:\n\n1. **The native `title` attribute is gone.** A styled tooltip replaces it. Set `native-title` to restore the old attribute, or `:tooltip=\"false\"` for neither.\n2. **Status colours and positioning changed.** CSS keywords became hexadecimal tokens, and the indicator is inset to sit on the avatar's outline.\n\nThe [full migration guide](https://vue3-avatar.absurdengineer.com/migration/v4-to-v5) covers both, with the code needed to pin the old behaviour.\n\n## Migration Guide (v4.0 -> v4.1)\n\nv4.1 is fully backward compatible. Summary of new features:\n\n1.  **PixelGen:** Choose `variant=\"pixel\"` for deterministic pixel art. Themes: `earth`, `neon`, `ocean`, `forest`, `sunset`, `midnight`, `candy`, `retro`.\n2.  **Auto-Contrast:** Set `:auto-contrast=\"true\"` to automatically pick black/white text based on background.\n3.  **Global Config:** Pass `defaults` object to `app.use(Avatar, { defaults: { ... } })`.\n4.  **Framework Ready:** Use the `#image` slot for `NuxtImg` or other custom image loading scenarios.\n5.  **Interactive Groups:** Hear when the overflow badge is clicked with `@overflow-click`.\n\n## Migration Guide (v3 -> v4)\n\nv4 is mostly backward compatible. Key changes:\n\n1.  **Deprecated:** `useLegacyColors` triggers a console warning.\n2.  **Removed:** `inverted` prop is removed. The default theme is now light. Use the `dark` prop to enable the dark theme.\n3.  **Accessibility:** The DOM structure has `role` attributes and improved labels. Ensure your tests don't rely on specific internal DOM structure if not needed.\n4.  **Strict Initials:** The initials algorithm is now frozen and formalized.\n\n## Developer Notes\n\nThe source is TypeScript throughout — utilities, composables, and SFCs using\n`<script setup lang=\"ts\">`. The shipped declarations in `dist/types` are\n**emitted from source** by `vue-tsc`, so the public API cannot drift from the\nimplementation. `src/types.ts` holds the exported type surface.\n\n### Node version\n\nThe published package is browser code and imposes no Node version of its own.\nThe **toolchain** does: Vitest 4 needs `^20 || ^22 || >=24` and Vite needs\n`^20.19 || >=22.12`. On Node 18 Vitest does not fail with a version error — it\nhangs at the `RUN` banner indefinitely. Develop and run CI on Node 20 or later.\n\n### Scripts\n\n| Command | What it does |\n| --- | --- |\n| `npm test` | Component and unit tests in jsdom. |\n| `npm run test:visual` | Pixel-by-pixel visual regression tests in real Chromium. |\n| `npm run test:visual:update` | Re-record the reference images. |\n| `npm run test:visual:headed` | Run the visual suite in a visible browser window. |\n| `npm run test:all` | Typecheck, then both suites. |\n| `npm run typecheck` | `vue-tsc` over source and tests. |\n| `npm run build` | Rollup bundles, the Nuxt module, and the emitted types. |\n| `npm run size` | Fails if the gzipped bundle exceeds its budget. |\n\nVS Code users get the same entries in the Run and Debug panel.\n\n### Visual regression testing\n\n`tests/visual/` renders the real components in a real browser, screenshots\nthem, and compares against committed reference images pixel by pixel — plus\ndirect colour probes that assert the documented status, badge, and tooltip\npalettes are painted exactly. jsdom cannot do this: it has no layout engine, so\nit cannot tell you a status dot drifted off a hexagon's edge or that a tooltip\nflipped to the wrong side.\n\n232 reference images cover shape x variant, status x corner x shape, badge\nvariant x corner, all eight pixel themes, all twelve tooltip placements, group\nlayouts, and interaction states. Boolean props are covered pairwise in\n`tests/permutations.spec.ts`, where they are far cheaper to run than as images.\n\nSee [`tests/visual/README.md`](tests/visual/README.md) for the details,\nincluding how to add a Linux golden set for CI.\n\nThis package is built with the **node v16.20.2 (npm v8.19.4)**\n\n## Creator\n\n[Mohammad Dilshad Alam](https://github.com/absurdengineer) created and maintains this component.\n","readmeFilename":"Readme.md"}