{"_id":"@sanity-labs/logo-soup","_rev":"20-166413d8f53080513592855d1fc11aff","name":"@sanity-labs/logo-soup","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.0":{"name":"@sanity-labs/logo-soup","version":"1.0.0","keywords":["logo","normalize","layout","component","react","vue","svelte","solid","angular","framework-agnostic"],"license":"MIT","_id":"@sanity-labs/logo-soup@1.0.0","maintainers":[{"name":"simen.svale","email":"simen@sanity.io"},{"name":"joshbrand","email":"josh@homph.co"},{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"rostimelk","email":"hello@rosti.no"},{"name":"jw-sanity","email":"jack.wilson@sanity.io"}],"homepage":"https://github.com/sanity-labs/logo-soup#readme","bugs":{"url":"https://github.com/sanity-labs/logo-soup/issues"},"dist":{"shasum":"197acb4573d716c64e902852f4b2e5e0a2efa17d","tarball":"https://registry.npmjs.org/@sanity-labs/logo-soup/-/logo-soup-1.0.0.tgz","fileCount":23,"integrity":"sha512-zO6u1KCILqHOGLx2n+kMQqIjNKVnQXUvC5euoq9hhR4cHh7bjj7j8Sk4J5qkYmUAoLGdJR7MqWsZvAh6+7iHVg==","signatures":[{"sig":"MEUCIFunerG2Swpba5uQrjx/0gEdjyp8tO31Ot9kou2caomEAiEAsdbi7aT+2mm/chkIa60ZncPdcJMQBp4ZjvE2+4wpCI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109118},"main":"./dist/core/index.js","type":"module","types":"./dist/core/index.d.ts","exports":{".":{"import":"./dist/core/index.js","source":"./src/core/index.ts","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","source":"./src/vue/index.ts","default":"./dist/vue/index.js"},"./react":{"import":"./dist/react/index.js","source":"./src/react/index.ts","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","source":"./src/solid/index.ts","default":"./dist/solid/index.js"},"./svelte":{"import":"./dist/svelte/index.js","source":"./src/svelte/index.ts","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","source":"./src/angular/index.ts","default":"./dist/angular/index.js"},"./package.json":"./package.json"},"gitHead":"aad10e8ff6d9dd04f6a967c705b7ff07e54d2c65","scripts":{"test":"NODE_ENV=development bun test","bench":"bun tests/bench/run.ts","build":"pkg-utils build --strict --check --clean","release":"changeset publish","storybook":"storybook dev -p 6006","generate:logos":"bun scripts/generate-test-logos.ts","prepublishOnly":"bun run build","storybook:build":"storybook build"},"_npmUser":{"name":"rostimelk","email":"hello@rosti.no"},"repository":{"url":"git+https://github.com/sanity-labs/logo-soup.git","type":"git"},"_npmVersion":"11.4.1","description":"A tiny framework-agnostic library that makes logos look good together","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","browserslist":"extends @sanity/browserslist-config","publishConfig":{"exports":{".":{"import":"./dist/core/index.js","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","default":"./dist/vue/index.js"},"./react":{"import":"./dist/react/index.js","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","default":"./dist/solid/index.js"},"./svelte":{"import":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","default":"./dist/angular/index.js"},"./package.json":"./package.json"}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5","vite":"^5","react":"^19","svelte":"^5","solid-js":"^1.9","react-dom":"^19","storybook":"^10.2.8","@types/bun":"latest","@types/react":"^19","@angular/core":"^19","@changesets/cli":"^2.30.0","@napi-rs/canvas":"^0.1.90","@storybook/react":"^10.2.8","@types/react-dom":"^19","@sanity/pkg-utils":"^10.4.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@storybook/addon-links":"^10.2.8","@testing-library/react":"^16","@chromatic-com/storybook":"^5.0.1","@sanity/browserslist-config":"^1.0.5","@changesets/changelog-github":"^0.6.0","@happy-dom/global-registrator":"^16"},"peerDependencies":{"vue":"^3.5","react":"^18 || ^19","svelte":"^5","solid-js":"^1.9","react-dom":"^18 || ^19","typescript":"^5","@angular/core":"^19 || ^20 || ^21"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"svelte":{"optional":true},"solid-js":{"optional":true},"react-dom":{"optional":true},"typescript":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/logo-soup_1.0.0_1773056457146_0.1550877177808172","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@sanity-labs/logo-soup","version":"1.1.0","keywords":["logo","normalize","layout","component","react","vue","svelte","solid","angular","framework-agnostic"],"license":"MIT","_id":"@sanity-labs/logo-soup@1.1.0","maintainers":[{"name":"simen.svale","email":"simen@sanity.io"},{"name":"joshbrand","email":"josh@homph.co"},{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"rostimelk","email":"hello@rosti.no"},{"name":"jw-sanity","email":"jack.wilson@sanity.io"}],"homepage":"https://github.com/sanity-labs/logo-soup#readme","bugs":{"url":"https://github.com/sanity-labs/logo-soup/issues"},"dist":{"shasum":"246151f7be4484609aa44326c134c4ca0095f706","tarball":"https://registry.npmjs.org/@sanity-labs/logo-soup/-/logo-soup-1.1.0.tgz","fileCount":26,"integrity":"sha512-JkGP4P7pv6ZHLBdebSofSvDOzQ70KLgAzy+NfVmsgQHaMbZS5g1HTrQjlh82KXPsLAap71iBHxSMeSk9JYC5IQ==","signatures":[{"sig":"MEUCIB8U+AOusjM/zc18CcQpsEpYtUaKSttY7lzsqPFzIo9NAiEA1XJgByqTabOb/hQjJe5T8l4k2GgTyXV2aRnQ1K7PNzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sanity-labs%2flogo-soup@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125629},"main":"./dist/core/index.js","type":"module","types":"./dist/core/index.d.ts","exports":{".":{"import":"./dist/core/index.js","source":"./src/core/index.ts","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","source":"./src/vue/index.ts","default":"./dist/vue/index.js"},"./react":{"import":"./dist/react/index.js","source":"./src/react/index.ts","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","source":"./src/solid/index.ts","default":"./dist/solid/index.js"},"./jquery":{"import":"./dist/jquery/index.js","source":"./src/jquery/index.ts","default":"./dist/jquery/index.js"},"./svelte":{"import":"./dist/svelte/index.js","source":"./src/svelte/index.ts","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","source":"./src/angular/index.ts","default":"./dist/angular/index.js"},"./package.json":"./package.json"},"gitHead":"d28da51dbd095be91bf023651dadb6a42a84434f","scripts":{"test":"NODE_ENV=development bun test","bench":"bun tests/bench/run.ts","build":"pkg-utils build --strict --check --clean","release":"changeset publish","storybook":"storybook dev -p 6006","generate:logos":"bun scripts/generate-test-logos.ts","prepublishOnly":"bun run build","storybook:build":"storybook build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:680db74e-3e88-4a63-b944-815d5d9e7cfe"}},"repository":{"url":"git+https://github.com/sanity-labs/logo-soup.git","type":"git"},"_npmVersion":"11.11.0","description":"A tiny framework-agnostic library that makes logos look good together","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","browserslist":"extends @sanity/browserslist-config","publishConfig":{"exports":{".":{"import":"./dist/core/index.js","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","default":"./dist/vue/index.js"},"./react":{"import":"./dist/react/index.js","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","default":"./dist/solid/index.js"},"./jquery":{"import":"./dist/jquery/index.js","default":"./dist/jquery/index.js"},"./svelte":{"import":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","default":"./dist/angular/index.js"},"./package.json":"./package.json"}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5","vite":"^5","react":"^19","jquery":"4","svelte":"^5","solid-js":"^1.9","react-dom":"^19","storybook":"^10.2.8","@types/bun":"latest","@types/react":"^19","@angular/core":"^19","@types/jquery":"^4.0.0","@changesets/cli":"^2.30.0","@napi-rs/canvas":"^0.1.90","@storybook/react":"^10.2.8","@types/react-dom":"^19","@sanity/pkg-utils":"^10.4.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@storybook/addon-links":"^10.2.8","@testing-library/react":"^16","@chromatic-com/storybook":"^5.0.1","@sanity/browserslist-config":"^1.0.5","@changesets/changelog-github":"^0.6.0","@happy-dom/global-registrator":"^16"},"peerDependencies":{"vue":"^3.5","react":"^18 || ^19","jquery":"^4","svelte":"^5","solid-js":"^1.9","react-dom":"^18 || ^19","typescript":"^5","@angular/core":"^19 || ^20 || ^21"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"jquery":{"optional":true},"svelte":{"optional":true},"solid-js":{"optional":true},"react-dom":{"optional":true},"typescript":{"optional":true},"@angular/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/logo-soup_1.1.0_1773062255377_0.4671014213217246","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@sanity-labs/logo-soup","version":"1.2.0","keywords":["logo","normalize","layout","component","react","vue","svelte","solid","angular","framework-agnostic"],"license":"MIT","_id":"@sanity-labs/logo-soup@1.2.0","maintainers":[{"name":"simen.svale","email":"simen@sanity.io"},{"name":"joshbrand","email":"josh@homph.co"},{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"rostimelk","email":"hello@rosti.no"},{"name":"jw-sanity","email":"jack.wilson@sanity.io"}],"homepage":"https://github.com/sanity-labs/logo-soup#readme","bugs":{"url":"https://github.com/sanity-labs/logo-soup/issues"},"dist":{"shasum":"debee08d30987650ddb31c84af215d59607cc6cb","tarball":"https://registry.npmjs.org/@sanity-labs/logo-soup/-/logo-soup-1.2.0.tgz","fileCount":33,"integrity":"sha512-6A9BOb+FPQHRYSUDuc4Oh9fHdPqGAJ+N0kR8DGakCzMjBzxy7owxhshUvuMHa9zYBoAh1OqEAQR+icp5aNYyZQ==","signatures":[{"sig":"MEQCIBVkS1GR75fLhgHK5eiEkzNbrtNR2cRiI6SPkBT+YVZ9AiAy4HxsqpC4UztKa+c6acVY268iKUgwZzfQCgCsbQJO8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sanity-labs%2flogo-soup@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":124783},"main":"./dist/core/index.js","type":"module","types":"./dist/core/index.d.ts","exports":{".":{"import":"./dist/core/index.js","source":"./src/core/index.ts","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","source":"./src/vue/index.ts","default":"./dist/vue/index.js"},"./node":{"import":"./dist/node/index.js","source":"./src/node/index.ts","default":"./dist/node/index.js"},"./react":{"import":"./dist/react/index.js","source":"./src/react/index.ts","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","source":"./src/solid/index.ts","default":"./dist/solid/index.js"},"./jquery":{"import":"./dist/jquery/index.js","source":"./src/jquery/index.ts","default":"./dist/jquery/index.js"},"./svelte":{"import":"./dist/svelte/index.js","source":"./src/svelte/index.ts","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","source":"./src/angular/index.ts","default":"./dist/angular/index.js"},"./package.json":"./package.json"},"gitHead":"2e08a39713115fcbccb379bd56cfd9f1f361c052","scripts":{"docs":"cd docs && mint dev","test":"NODE_ENV=development bun test","bench":"bun tests/bench/run.ts","build":"pkg-utils build --strict --check --clean","release":"changeset publish","storybook":"storybook dev -p 6006","docs:build":"cd docs && mint build","generate:logos":"bun scripts/generate-test-logos.ts","prepublishOnly":"bun run build","storybook:build":"storybook build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:680db74e-3e88-4a63-b944-815d5d9e7cfe"}},"repository":{"url":"git+https://github.com/sanity-labs/logo-soup.git","type":"git"},"_npmVersion":"11.11.0","description":"A tiny framework-agnostic library that makes logos look good together","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","browserslist":"extends @sanity/browserslist-config","publishConfig":{"exports":{".":{"import":"./dist/core/index.js","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","default":"./dist/vue/index.js"},"./node":{"import":"./dist/node/index.js","default":"./dist/node/index.js"},"./react":{"import":"./dist/react/index.js","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","default":"./dist/solid/index.js"},"./jquery":{"import":"./dist/jquery/index.js","default":"./dist/jquery/index.js"},"./svelte":{"import":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","default":"./dist/angular/index.js"},"./package.json":"./package.json"}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5","vite":"^5","react":"^19","jquery":"4","svelte":"^5","solid-js":"^1.9","react-dom":"^19","storybook":"^10.2.8","@types/bun":"latest","@types/react":"^19","@angular/core":"^19","@types/jquery":"^4.0.0","@changesets/cli":"^2.30.0","@napi-rs/canvas":"^0.1.90","@storybook/react":"^10.2.8","@types/react-dom":"^19","@sanity/pkg-utils":"^10.4.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@storybook/addon-links":"^10.2.8","@testing-library/react":"^16","@chromatic-com/storybook":"^5.0.1","@sanity/browserslist-config":"^1.0.5","@changesets/changelog-github":"^0.6.0","@happy-dom/global-registrator":"^16"},"peerDependencies":{"vue":"^3.5","react":"^18 || ^19","jquery":"^4","svelte":"^5","solid-js":"^1.9","react-dom":"^18 || ^19","typescript":"^5","@angular/core":"^19 || ^20 || ^21","@napi-rs/canvas":"^0.1.90"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"jquery":{"optional":true},"svelte":{"optional":true},"solid-js":{"optional":true},"react-dom":{"optional":true},"typescript":{"optional":true},"@angular/core":{"optional":true},"@napi-rs/canvas":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/logo-soup_1.2.0_1773084367148_0.5785334932205037","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@sanity-labs/logo-soup","version":"1.2.1","keywords":["logo","normalize","layout","component","react","vue","svelte","solid","angular","framework-agnostic"],"license":"MIT","_id":"@sanity-labs/logo-soup@1.2.1","maintainers":[{"name":"simen.svale","email":"simen@sanity.io"},{"name":"joshbrand","email":"josh@homph.co"},{"name":"hermanw","email":"herman@sanity.io"},{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"rostimelk","email":"hello@rosti.no"},{"name":"jw-sanity","email":"jack.wilson@sanity.io"}],"homepage":"https://github.com/sanity-labs/logo-soup#readme","bugs":{"url":"https://github.com/sanity-labs/logo-soup/issues"},"dist":{"shasum":"6fb3ca56f1409e9911db5ae47e92c98862c9b007","tarball":"https://registry.npmjs.org/@sanity-labs/logo-soup/-/logo-soup-1.2.1.tgz","fileCount":33,"integrity":"sha512-81oRUmBsHYIPr/pbzhEF6ChVK1d5joTpkK3dTsQG0nZf37au3/Sl8mCQCZfM0G43ENdkT7et75CT892fabU3nA==","signatures":[{"sig":"MEUCIAwZ0++P4Z3RiV0eJjcUUIFCMh9HDhYdTofO/k/xQNtjAiEAt7bVyATpMu6HlLc+mU10bq8sDskLTpr7vyL+9YlNlEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sanity-labs%2flogo-soup@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125796},"main":"./dist/core/index.js","type":"module","types":"./dist/core/index.d.ts","exports":{".":{"import":"./dist/core/index.js","source":"./src/core/index.ts","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","source":"./src/vue/index.ts","default":"./dist/vue/index.js"},"./node":{"import":"./dist/node/index.js","source":"./src/node/index.ts","default":"./dist/node/index.js"},"./react":{"import":"./dist/react/index.js","source":"./src/react/index.ts","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","source":"./src/solid/index.ts","default":"./dist/solid/index.js"},"./jquery":{"import":"./dist/jquery/index.js","source":"./src/jquery/index.ts","default":"./dist/jquery/index.js"},"./svelte":{"import":"./dist/svelte/index.js","source":"./src/svelte/index.ts","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","source":"./src/angular/index.ts","default":"./dist/angular/index.js"},"./package.json":"./package.json"},"gitHead":"e7de1a2f8bcf5dfb9037eee94cc54665dda9b493","scripts":{"docs":"cd docs && mint dev","test":"NODE_ENV=development bun test","bench":"bun tests/bench/run.ts","build":"pkg-utils build --strict --check --clean","release":"changeset publish","storybook":"storybook dev -p 6006","docs:build":"cd docs && mint build","generate:logos":"bun scripts/generate-test-logos.ts","prepublishOnly":"bun run build","storybook:build":"storybook build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:680db74e-3e88-4a63-b944-815d5d9e7cfe"}},"repository":{"url":"git+https://github.com/sanity-labs/logo-soup.git","type":"git"},"_npmVersion":"11.12.0","description":"A tiny framework-agnostic library that makes logos look good together","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","browserslist":"extends @sanity/browserslist-config","publishConfig":{"exports":{".":{"import":"./dist/core/index.js","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","default":"./dist/vue/index.js"},"./node":{"import":"./dist/node/index.js","default":"./dist/node/index.js"},"./react":{"import":"./dist/react/index.js","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","default":"./dist/solid/index.js"},"./jquery":{"import":"./dist/jquery/index.js","default":"./dist/jquery/index.js"},"./svelte":{"import":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","default":"./dist/angular/index.js"},"./package.json":"./package.json"}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5","vite":"^5","react":"^19","jquery":"4","svelte":"^5","solid-js":"^1.9","react-dom":"^19","storybook":"^10.2.8","@types/bun":"latest","@types/react":"^19","@angular/core":"^19","@types/jquery":"^4.0.0","@changesets/cli":"^2.30.0","@napi-rs/canvas":"^0.1.90","@storybook/react":"^10.2.8","@types/react-dom":"^19","@sanity/pkg-utils":"^10.4.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@storybook/addon-links":"^10.2.8","@testing-library/react":"^16","@chromatic-com/storybook":"^5.0.1","@sanity/browserslist-config":"^1.0.5","@changesets/changelog-github":"^0.6.0","@happy-dom/global-registrator":"^16"},"peerDependencies":{"vue":"^3.5","react":"^18 || ^19","jquery":"^4","svelte":"^5","solid-js":"^1.9","react-dom":"^18 || ^19","typescript":"^5","@angular/core":"^19 || ^20 || ^21","@napi-rs/canvas":"^0.1.90"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"jquery":{"optional":true},"svelte":{"optional":true},"solid-js":{"optional":true},"react-dom":{"optional":true},"typescript":{"optional":true},"@angular/core":{"optional":true},"@napi-rs/canvas":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/logo-soup_1.2.1_1774258117248_0.8332147731049147","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@sanity-labs/logo-soup","version":"1.2.2","keywords":["logo","normalize","layout","component","react","vue","svelte","solid","angular","framework-agnostic"],"license":"MIT","_id":"@sanity-labs/logo-soup@1.2.2","maintainers":[{"name":"simen.svale","email":"simen@sanity.io"},{"name":"joshbrand","email":"josh@homph.co"},{"name":"hermanw","email":"herman@sanity.io"},{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"rostimelk","email":"hello@rosti.no"},{"name":"jw-sanity","email":"jack.wilson@sanity.io"}],"homepage":"https://github.com/sanity-labs/logo-soup#readme","bugs":{"url":"https://github.com/sanity-labs/logo-soup/issues"},"dist":{"shasum":"e5f4e4273b3fe0784135fc38ea017dac8971fe0d","tarball":"https://registry.npmjs.org/@sanity-labs/logo-soup/-/logo-soup-1.2.2.tgz","fileCount":33,"integrity":"sha512-7a4d1EWxddzEmy5jx/GqN3C0pAruR+Dpy1vLOg6ADPClGhVO2sCXG+6XPM51ajGlvWIslJVEEEyoTQtOLRRRjQ==","signatures":[{"sig":"MEYCIQDP0JPXP53FHqJ0a5jVPh9d5VF6tDXIi50z2EV3bVLcIgIhAMvYXm85tQ7BPFdl7vl1rkbnzKILlxmQAvKAm2+KDIqY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sanity-labs%2flogo-soup@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125796},"main":"./dist/core/index.js","type":"module","types":"./dist/core/index.d.ts","exports":{".":{"import":"./dist/core/index.js","source":"./src/core/index.ts","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","source":"./src/vue/index.ts","default":"./dist/vue/index.js"},"./node":{"import":"./dist/node/index.js","source":"./src/node/index.ts","default":"./dist/node/index.js"},"./react":{"import":"./dist/react/index.js","source":"./src/react/index.ts","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","source":"./src/solid/index.ts","default":"./dist/solid/index.js"},"./jquery":{"import":"./dist/jquery/index.js","source":"./src/jquery/index.ts","default":"./dist/jquery/index.js"},"./svelte":{"import":"./dist/svelte/index.js","source":"./src/svelte/index.ts","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","source":"./src/angular/index.ts","default":"./dist/angular/index.js"},"./package.json":"./package.json"},"gitHead":"c1b9dad2129b9de7be0c86e89fd185fc87e83211","scripts":{"docs":"cd docs && mint dev","test":"NODE_ENV=development bun test","bench":"bun tests/bench/run.ts","build":"pkg-utils build --strict --check --clean","release":"changeset publish","storybook":"storybook dev -p 6006","docs:build":"cd docs && mint build","generate:logos":"bun scripts/generate-test-logos.ts","prepublishOnly":"bun run build","storybook:build":"storybook build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:680db74e-3e88-4a63-b944-815d5d9e7cfe"}},"repository":{"url":"git+https://github.com/sanity-labs/logo-soup.git","type":"git"},"_npmVersion":"11.12.0","description":"A tiny framework-agnostic library that makes logos look good together","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","browserslist":"extends @sanity/browserslist-config","publishConfig":{"exports":{".":{"import":"./dist/core/index.js","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","default":"./dist/vue/index.js"},"./node":{"import":"./dist/node/index.js","default":"./dist/node/index.js"},"./react":{"import":"./dist/react/index.js","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","default":"./dist/solid/index.js"},"./jquery":{"import":"./dist/jquery/index.js","default":"./dist/jquery/index.js"},"./svelte":{"import":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","default":"./dist/angular/index.js"},"./package.json":"./package.json"}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5","vite":"^5","react":"^19","jquery":"4","svelte":"^5","solid-js":"^1.9","react-dom":"^19","storybook":"^10.2.8","@types/bun":"latest","@types/react":"^19","@angular/core":"^19","@types/jquery":"^4.0.0","@changesets/cli":"^2.30.0","@napi-rs/canvas":"^0.1.90","@storybook/react":"^10.2.8","@types/react-dom":"^19","@sanity/pkg-utils":"^10.4.8","@storybook/addon-docs":"^10.2.8","@storybook/react-vite":"^10.2.8","@storybook/addon-links":"^10.2.8","@testing-library/react":"^16","@chromatic-com/storybook":"^5.0.1","@sanity/browserslist-config":"^1.0.5","@changesets/changelog-github":"^0.6.0","@happy-dom/global-registrator":"^16"},"peerDependencies":{"vue":"^3.5","react":"^18 || ^19","jquery":"^4","svelte":"^5","solid-js":"^1.9","react-dom":"^18 || ^19","typescript":"^5","@angular/core":"^19 || ^20 || ^21","@napi-rs/canvas":"^0.1.90"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"jquery":{"optional":true},"svelte":{"optional":true},"solid-js":{"optional":true},"react-dom":{"optional":true},"typescript":{"optional":true},"@angular/core":{"optional":true},"@napi-rs/canvas":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/logo-soup_1.2.2_1774258647243_0.5405918467468926","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@sanity-labs/logo-soup","version":"1.3.0","keywords":["logo","normalize","layout","component","react","vue","svelte","solid","angular","framework-agnostic"],"license":"MIT","_id":"@sanity-labs/logo-soup@1.3.0","maintainers":[{"name":"simen.svale","email":"simen@sanity.io"},{"name":"mttdnt-sanity","email":"matthew.dent@sanity.io"},{"name":"stipsan","email":"stipsan@gmail.com"},{"name":"joshbrand","email":"josh@homph.co"},{"name":"hermanw","email":"herman@sanity.io"},{"name":"colepeters-sanity","email":"cole.peters@sanity.io"},{"name":"mariuslundgard","email":"studio@mariuslundgard.com"},{"name":"laurenashpolesanity","email":"lauren.ashpole@sanity.io"},{"name":"robinpyon","email":"robin.pyon@gmail.com"},{"name":"samhem","email":"sam.hemingway@sanity.io"},{"name":"sergeisarviro","email":"sergei@sanity.io"},{"name":"rexxars","email":"espen@hovlandsdal.com"},{"name":"snorreeb","email":"snorre.e.brekke@gmail.com"},{"name":"nicholasklem","email":"nicholas@sanity.io"},{"name":"tbeseda","email":"tbeseda@gmail.com"},{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"rostimelk","email":"hello@rosti.no"},{"name":"jw-sanity","email":"jack.wilson@sanity.io"}],"homepage":"https://github.com/sanity-labs/logo-soup#readme","bugs":{"url":"https://github.com/sanity-labs/logo-soup/issues"},"dist":{"shasum":"54a867915ed9874b45305b47f1d34ab7c8b1604a","tarball":"https://registry.npmjs.org/@sanity-labs/logo-soup/-/logo-soup-1.3.0.tgz","fileCount":33,"integrity":"sha512-HAxQBHlVtFdPyqBEhGyXeMRG/JRizqFxXgnEmF57i4kWNhKCFKVEoY0tvNzl38mX2WEnUffMFyG7bp45WbTq4w==","signatures":[{"sig":"MEUCIQCKCNjVuJLUVhssgQrDtMxjj+emw0IKTxs9xoaGrJPMaQIgLBkDlX0iguD6/pM2BdiNBToLaKotQ1DrnWeQbEhZxwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sanity-labs%2flogo-soup@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":144005},"main":"./dist/core/index.js","type":"module","types":"./dist/core/index.d.ts","exports":{".":{"import":"./dist/core/index.js","source":"./src/core/index.ts","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","source":"./src/vue/index.ts","default":"./dist/vue/index.js"},"./node":{"import":"./dist/node/index.js","source":"./src/node/index.ts","default":"./dist/node/index.js"},"./react":{"import":"./dist/react/index.js","source":"./src/react/index.ts","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","source":"./src/solid/index.ts","default":"./dist/solid/index.js"},"./jquery":{"import":"./dist/jquery/index.js","source":"./src/jquery/index.ts","default":"./dist/jquery/index.js"},"./svelte":{"import":"./dist/svelte/index.js","source":"./src/svelte/index.ts","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","source":"./src/angular/index.ts","default":"./dist/angular/index.js"},"./package.json":"./package.json"},"gitHead":"c2ac006025f23140c6551cabe1aeea6385b1dffc","scripts":{"docs":"cd docs && mint dev","lint":"biome check .","test":"NODE_ENV=development bun test","bench":"bun tests/bench/run.ts","build":"pkg-utils build --strict --check --clean","release":"changeset publish","lint:fix":"biome check --write .","storybook":"storybook dev -p 6006","docs:build":"cd docs && mint build","generate:logos":"bun scripts/generate-test-logos.ts","prepublishOnly":"bun run build","storybook:build":"storybook build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:680db74e-3e88-4a63-b944-815d5d9e7cfe"}},"repository":{"url":"git+https://github.com/sanity-labs/logo-soup.git","type":"git"},"_npmVersion":"12.0.2","description":"A tiny framework-agnostic library that makes logos look good together","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","browserslist":"extends @sanity/browserslist-config","publishConfig":{"exports":{".":{"import":"./dist/core/index.js","default":"./dist/core/index.js"},"./vue":{"import":"./dist/vue/index.js","default":"./dist/vue/index.js"},"./node":{"import":"./dist/node/index.js","default":"./dist/node/index.js"},"./react":{"import":"./dist/react/index.js","default":"./dist/react/index.js"},"./solid":{"import":"./dist/solid/index.js","default":"./dist/solid/index.js"},"./jquery":{"import":"./dist/jquery/index.js","default":"./dist/jquery/index.js"},"./svelte":{"import":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./angular":{"import":"./dist/angular/index.js","default":"./dist/angular/index.js"},"./package.json":"./package.json"}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.41","vite":"^5.4.21","react":"^19.2.8","jquery":"^4.0.0","svelte":"^5.56.10","solid-js":"^1.9.15","react-dom":"^19.2.8","storybook":"^10.5.10","@types/bun":"latest","@types/react":"^19.2.18","@angular/core":"^19.2.25","@types/jquery":"^4.0.1","@biomejs/biome":"^2.5.9","@changesets/cli":"^2.31.1","@napi-rs/canvas":"^1.0.7","@storybook/react":"^10.5.10","@types/react-dom":"^19.2.4","@sanity/pkg-utils":"^10.9.2","@storybook/addon-docs":"^10.5.10","@storybook/react-vite":"^10.5.10","@storybook/addon-links":"^10.5.10","@testing-library/react":"^16.3.2","@chromatic-com/storybook":"^5.3.0","@sanity/browserslist-config":"^1.0.5","@changesets/changelog-github":"^0.6.0","@happy-dom/global-registrator":"^16.8.1"},"peerDependencies":{"vue":"^3.5","react":"^18 || ^19","jquery":"^4","svelte":"^5","solid-js":"^1.9","react-dom":"^18 || ^19","typescript":"^5.9.3","@angular/core":"^19 || ^20 || ^21 || ^22","@napi-rs/canvas":"^0.1.90 || ^1"},"peerDependenciesMeta":{"vue":{"optional":true},"react":{"optional":true},"jquery":{"optional":true},"svelte":{"optional":true},"solid-js":{"optional":true},"react-dom":{"optional":true},"typescript":{"optional":true},"@angular/core":{"optional":true},"@napi-rs/canvas":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/logo-soup_1.3.0_1787299316952_0.9056905774429238","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-03-09T11:40:57.045Z","modified":"2026-09-03T12:55:30.930Z","1.0.0":"2026-03-09T11:40:57.290Z","1.1.0":"2026-03-09T13:17:35.512Z","1.2.0":"2026-03-09T19:26:07.297Z","1.2.1":"2026-03-23T09:28:37.384Z","1.2.2":"2026-03-23T09:37:27.390Z","1.3.0":"2026-08-21T08:01:57.086Z"},"bugs":{"url":"https://github.com/sanity-labs/logo-soup/issues"},"license":"MIT","homepage":"https://github.com/sanity-labs/logo-soup#readme","keywords":["logo","normalize","layout","component","react","vue","svelte","solid","angular","framework-agnostic"],"repository":{"url":"git+https://github.com/sanity-labs/logo-soup.git","type":"git"},"description":"A tiny framework-agnostic library that makes logos look good together","maintainers":[{"email":"simen@sanity.io","name":"simen.svale"},{"email":"matthew.dent@sanity.io","name":"mttdnt-sanity"},{"email":"stipsan@gmail.com","name":"stipsan"},{"email":"josh@homph.co","name":"joshbrand"},{"email":"herman@sanity.io","name":"hermanw"},{"email":"cole.peters@sanity.io","name":"colepeters-sanity"},{"email":"studio@mariuslundgard.com","name":"mariuslundgard"},{"email":"lauren.ashpole@sanity.io","name":"laurenashpolesanity"},{"email":"robin.pyon@gmail.com","name":"robinpyon"},{"email":"sam.hemingway@sanity.io","name":"samhem"},{"email":"sergei@sanity.io","name":"sergeisarviro"},{"email":"espen@hovlandsdal.com","name":"rexxars"},{"email":"snorre.e.brekke@gmail.com","name":"snorreeb"},{"email":"nicholas@sanity.io","name":"nicholasklem"},{"email":"tbeseda@gmail.com","name":"tbeseda"},{"email":"knut.melvaer@gmail.com","name":"kmelve"},{"email":"hello@rosti.no","name":"rostimelk"},{"email":"jack.wilson@sanity.io","name":"jw-sanity"},{"email":"james.woods@sanity.io","name":"jwoods-sanity"}],"readme":"# 🍜 Logo Soup\n\n[![npm version](https://img.shields.io/npm/v/@sanity-labs/logo-soup.svg?style=flat-square)](https://www.npmjs.com/package/@sanity-labs/logo-soup)\n\nA tiny framework-agnostic library that makes logos look good together.\n\n### Before\n\n![Logos without normalization — different sizes, weights, and aspect ratios create visual chaos](static/docs/before.png)\n\n### After\n\n![After normalization — the same logos appear balanced and harmonious](static/docs/after.png)\n\n## Install\n\n```bash\nnpm install @sanity-labs/logo-soup\n```\n\n## Quick Start\n\n```tsx\nimport { LogoSoup } from \"@sanity-labs/logo-soup/react\";\n\nfunction LogoStrip() {\n  return (\n    <LogoSoup\n      logos={[\n        { src: \"/logos/acme.svg\", alt: \"Acme Corp\" },\n        { src: \"/logos/globex.svg\", alt: \"Globex\" },\n        { src: \"/logos/initech.svg\", alt: \"Initech\" },\n      ]}\n    />\n  );\n}\n```\n\nWorks with React, Vue, Svelte, Solid, Angular, jQuery, and vanilla JavaScript.\n\n## Resources\n\n- 📖 [Documentation](https://logo-soup.sanity.dev/docs) — Full API reference, framework guides, and options\n- 🎨 [Storybook](https://logo-soup.sanity.dev/?path=/story/logosoup--default) — Interactive playground with real logos and tunable parameters\n- 📝 [The Logo Soup Problem](https://www.sanity.io/blog/the-logo-soup-problem) — Deep-dive blog post on the problem and the math behind the solution\n\n## Development\n\n```bash\nbun install\nbun test\nbun run build\nbun run storybook\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}