{"_id":"@pixygon/site","name":"@pixygon/site","description":"The Pixygon website engine: one provider stack, the pearl page kit (SEO, i18n, language switcher, guides, hero, related products), the paid step (@pixygon/site/checkout), and the build engine every pearl runs as `pixygon-site` — so a pearl carries configuration, not engine code.","license":"MIT","homepage":"https://github.com/Pixygon/pixygon-packages#readme","repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"dist-tags":{"latest":"0.6.2"},"versions":{"0.1.0":{"name":"@pixygon/site","version":"0.1.0","license":"MIT","_id":"@pixygon/site@0.1.0","maintainers":[{"name":"imakestupidgames","email":"anders@pixygon.io"}],"homepage":"https://github.com/Pixygon/pixygon-packages#readme","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"dist":{"shasum":"c40533ac2bf7b141c3430115e7c996fd930ae0b3","unpackedSize":77133,"fileCount":14,"integrity":"sha512-c0DbIISuhOmmF05fZuYIQ18/JRIB1QQCCzZytuf+9+9rYseKBvT52UxPbn6Y/LP/iQ/qi9f5ukc1Tdye1zVkUQ==","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.1.0.tgz"},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./stack.json":"./stack.json"},"gitHead":"e531472840b8764eafb4c73d3a2e8db892bff330","scripts":{"build":"npm run tokens && tsup","tokens":"node scripts/gen-tokens.mjs","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"imakestupidgames","email":"anders@pixygon.io"},"repository":{"url":"git+https://github.com/Pixygon/pixygon-packages.git","type":"git"},"_npmVersion":"12.0.2","description":"The Pixygon website scaffold: one provider stack (theme, SEO, consent-gated analytics, auth, error boundary), design-token themes, a disciplined image component and the pinned stack manifest every Pixygon Vite site shares.","directories":{},"_nodeVersion":"26.8.1","dependencies":{"@pixygon/seo":"^1.1.0","@pixygon/auth":"^1.6.1","@pixygon/analytics":"^1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","@mui/material":"^7.3.8","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@types/react-dom":"^19.2.3","react-router-dom":"^7.13.0","react-helmet-async":"^2.0.5"},"peerDependencies":{"react":">=18","react-dom":">=18","@mui/material":">=6","@emotion/react":">=11","@emotion/styled":">=11","react-router-dom":">=6","react-helmet-async":">=1.3"},"_npmOperationalInternal":{"tmp":"tmp/site_0.1.0_1788435282724_0.2496377711348572","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@pixygon/site","version":"0.2.0","license":"MIT","_id":"@pixygon/site@0.2.0","maintainers":[{"name":"imakestupidgames","email":"anders@pixygon.io"}],"homepage":"https://github.com/Pixygon/pixygon-packages#readme","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"dist":{"shasum":"cc2f40223b716e342b94973cc2a8f51614124e5e","unpackedSize":77346,"fileCount":14,"integrity":"sha512-8lTdfBSUo7twbjL4r/sXSf/d6mmLgIjS2OXPoL/gQPnXu9T5+hRIYMtLWhSt4wNSyCS0ppU3PJ9uHyieV+rrhw==","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.2.0.tgz"},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./stack.json":"./stack.json"},"gitHead":"cbd16f387215e39bb4356674a9d21c34f04c56ac","scripts":{"build":"npm run tokens && tsup","tokens":"node scripts/gen-tokens.mjs","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"imakestupidgames","email":"anders@pixygon.io"},"repository":{"url":"git+https://github.com/Pixygon/pixygon-packages.git","type":"git"},"_npmVersion":"12.0.2","description":"The Pixygon website scaffold: one provider stack (theme, SEO, consent-gated analytics, auth, error boundary), design-token themes, a disciplined image component and the pinned stack manifest every Pixygon Vite site shares.","directories":{},"_nodeVersion":"26.8.1","dependencies":{"@pixygon/seo":"^1.2.0","@pixygon/auth":"^1.6.1","@pixygon/analytics":"^1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-router":"^8.3.1","@mui/material":"^7.3.8","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@types/react-dom":"^19.2.3","react-helmet-async":"^2.0.5"},"peerDependencies":{"react":">=18","react-dom":">=18","react-router":">=7","@mui/material":">=6","@emotion/react":">=11","@emotion/styled":">=11","react-helmet-async":">=1.3"},"_npmOperationalInternal":{"tmp":"tmp/site_0.2.0_1788439274650_0.38422595949245064","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@pixygon/site","version":"0.2.1","license":"MIT","_id":"@pixygon/site@0.2.1","maintainers":[{"name":"imakestupidgames","email":"anders@pixygon.io"}],"homepage":"https://github.com/Pixygon/pixygon-packages#readme","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"dist":{"shasum":"92dfe638eec9e9125f6f3c76727914db78605e16","unpackedSize":77346,"fileCount":14,"integrity":"sha512-D6kv+um9Tru9tk2hAqeA6cCUENpauX0lCYDGgHXXcyN+cewvHeJHDBiYW4fDDMnTEuPDAndlFSyOCrCnr3iZ2g==","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.2.1.tgz"},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./stack.json":"./stack.json"},"gitHead":"80f9f5c5bffa384968eba2cad2bf7bb9eb47bcdb","scripts":{"build":"npm run tokens && tsup","tokens":"node scripts/gen-tokens.mjs","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"imakestupidgames","email":"anders@pixygon.io"},"repository":{"url":"git+https://github.com/Pixygon/pixygon-packages.git","type":"git"},"_npmVersion":"12.0.2","description":"The Pixygon website scaffold: one provider stack (theme, SEO, consent-gated analytics, auth, error boundary), design-token themes, a disciplined image component and the pinned stack manifest every Pixygon Vite site shares.","directories":{},"_nodeVersion":"26.8.1","dependencies":{"@pixygon/seo":"^1.2.0","@pixygon/auth":"^1.6.1","@pixygon/analytics":"^1.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-router":"^8.3.1","@mui/material":"^7.3.8","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@types/react-dom":"^19.2.3","react-helmet-async":"^2.0.5"},"peerDependencies":{"react":">=18","react-dom":">=18","react-router":">=7","@mui/material":">=6","@emotion/react":">=11","@emotion/styled":">=11","react-helmet-async":">=1.3"},"_npmOperationalInternal":{"tmp":"tmp/site_0.2.1_1788439932282_0.1771459058566187","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@pixygon/site","version":"0.2.2","license":"MIT","_id":"@pixygon/site@0.2.2","maintainers":[{"name":"imakestupidgames","email":"anders@pixygon.io"}],"homepage":"https://github.com/Pixygon/pixygon-packages#readme","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"dist":{"shasum":"706fb833138d1e58181d6cc78ba48336d7ec52c9","unpackedSize":77346,"fileCount":14,"integrity":"sha512-Cg7perXn2zd6IGzzRR+Tv9CbVRdNrXCm6gOpEOqRVWL73ZlJlZFMu/I29J13D5tYmofRp8GJnQahoQ2JzBFEmQ==","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.2.2.tgz"},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./stack.json":"./stack.json"},"gitHead":"f21948aaac9580ea9587f259cd111e412fa42255","scripts":{"build":"npm run tokens && tsup","tokens":"node scripts/gen-tokens.mjs","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"imakestupidgames","email":"anders@pixygon.io"},"repository":{"url":"git+https://github.com/Pixygon/pixygon-packages.git","type":"git"},"_npmVersion":"12.0.2","description":"The Pixygon website scaffold: one provider stack (theme, SEO, consent-gated analytics, auth, error boundary), design-token themes, a disciplined image component and the pinned stack manifest every Pixygon Vite site shares.","directories":{},"_nodeVersion":"26.8.1","dependencies":{"@pixygon/seo":"^1.2.1","@pixygon/auth":"^1.6.1","@pixygon/analytics":"^1.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-router":"^8.3.1","@mui/material":"^7.3.8","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@types/react-dom":"^19.2.3","react-helmet-async":"^2.0.5"},"peerDependencies":{"react":">=18","react-dom":">=18","react-router":">=7","@mui/material":">=6","@emotion/react":">=11","@emotion/styled":">=11","react-helmet-async":">=1.3"},"_npmOperationalInternal":{"tmp":"tmp/site_0.2.2_1788440031628_0.4270653025811011","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@pixygon/site","version":"0.3.0","license":"MIT","_id":"@pixygon/site@0.3.0","maintainers":[{"name":"imakestupidgames","email":"anders@pixygon.io"}],"homepage":"https://github.com/Pixygon/pixygon-packages#readme","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"dist":{"shasum":"0e3814fc11b0c1d122b883b4f84c9aba0b6f5bd2","unpackedSize":97745,"fileCount":15,"integrity":"sha512-gpj3p4nSr4vITGZ7eLkmf3abWSeYvxppGEsJEirocr5QobN2Dy1HwQM2WPj/8jk976CA2EIUr/FOPcXUKpz0jA==","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.3.0.tgz"},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs"},"gitHead":"5d60ea636ddd8fa5b7a11f0899d69a420d74de0e","scripts":{"build":"npm run tokens && tsup","tokens":"node scripts/gen-tokens.mjs","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"imakestupidgames","email":"anders@pixygon.io"},"repository":{"url":"git+https://github.com/Pixygon/pixygon-packages.git","type":"git"},"_npmVersion":"12.0.2","description":"The Pixygon website scaffold: one provider stack (theme, SEO, consent-gated analytics, auth, error boundary), design-token themes, a disciplined image component and the pinned stack manifest every Pixygon Vite site shares.","directories":{},"_nodeVersion":"26.8.1","dependencies":{"@pixygon/seo":"^1.2.2","@pixygon/auth":"^1.6.1","@pixygon/analytics":"^1.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-router":"^8.3.1","@mui/material":"^7.3.8","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@types/react-dom":"^19.2.3","react-helmet-async":"^2.0.5"},"peerDependencies":{"react":">=18","react-dom":">=18","react-router":">=7","@mui/material":">=6","@emotion/react":">=11","@emotion/styled":">=11","react-helmet-async":">=1.3"},"_npmOperationalInternal":{"tmp":"tmp/site_0.3.0_1788486941048_0.28821277029073444","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@pixygon/site","version":"0.3.1","license":"MIT","_id":"@pixygon/site@0.3.1","maintainers":[{"name":"imakestupidgames","email":"anders@pixygon.io"}],"homepage":"https://github.com/Pixygon/pixygon-packages#readme","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"dist":{"shasum":"b18cb8300da51273d859d491f52e7c95772c4212","unpackedSize":99466,"fileCount":15,"integrity":"sha512-b/pmz29/zO7dnEpvvgyVxY/50v+iaszItyAleEeDhPYlmvmWC6OK4bT6uygxNq5MnuOTlAQOAZ15v2LHLOvEjA==","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.3.1.tgz"},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs"},"gitHead":"3d6d9fbf6894ad203e4891546a15dbcf0a2cb7fc","scripts":{"build":"npm run tokens && tsup","tokens":"node scripts/gen-tokens.mjs","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"imakestupidgames","email":"anders@pixygon.io"},"repository":{"url":"git+https://github.com/Pixygon/pixygon-packages.git","type":"git"},"_npmVersion":"12.0.2","description":"The Pixygon website scaffold: one provider stack (theme, SEO, consent-gated analytics, auth, error boundary), design-token themes, a disciplined image component and the pinned stack manifest every Pixygon Vite site shares.","directories":{},"_nodeVersion":"26.8.1","dependencies":{"@pixygon/seo":"^1.2.2","@pixygon/auth":"^1.6.1","@pixygon/analytics":"^1.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-router":"^8.3.1","@mui/material":"^7.3.8","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@types/react-dom":"^19.2.3","react-helmet-async":"^2.0.5"},"peerDependencies":{"react":">=18","react-dom":">=18","react-router":">=7","@mui/material":">=6","@emotion/react":">=11","@emotion/styled":">=11","react-helmet-async":">=1.3"},"_npmOperationalInternal":{"tmp":"tmp/site_0.3.1_1788489363932_0.7774120529683004","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@pixygon/site","version":"0.4.0","license":"MIT","_id":"@pixygon/site@0.4.0","maintainers":[{"name":"imakestupidgames","email":"anders@pixygon.io"}],"homepage":"https://github.com/Pixygon/pixygon-packages#readme","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"dist":{"shasum":"1193f68624c9aaaba359b6dcf6d294453a9a584c","unpackedSize":129154,"fileCount":15,"integrity":"sha512-IS+M+IGcc/XwCGfyX+0IvsHTAb1LD7rNSeZIxKhr8G4WYkk4aV0/Nc3dK3ijUvfaWhw49SSGX+A8DWJxdcKgPw==","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.4.0.tgz"},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs"},"gitHead":"f2cfeb419c04fc903aed4386d7e8f0dc50c69562","scripts":{"build":"npm run tokens && tsup","tokens":"node scripts/gen-tokens.mjs","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"imakestupidgames","email":"anders@pixygon.io","approver":{"name":"imakestupidgames","email":"anders@pixygon.io"}},"repository":{"url":"git+https://github.com/Pixygon/pixygon-packages.git","type":"git"},"_npmVersion":"12.0.2","description":"The Pixygon website scaffold: one provider stack (theme, SEO, consent-gated analytics, auth, error boundary), design-token themes, a disciplined image component and the pinned stack manifest every Pixygon Vite site shares.","directories":{},"_nodeVersion":"26.8.1","dependencies":{"@pixygon/seo":"^1.2.2","@pixygon/auth":"^1.6.1","@pixygon/analytics":"^1.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-router":"^8.3.1","@mui/material":"^7.3.8","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@types/react-dom":"^19.2.3","react-helmet-async":"^2.0.5"},"peerDependencies":{"react":">=18","react-dom":">=18","react-router":">=7","@mui/material":">=6","@emotion/react":">=11","@emotion/styled":">=11","react-helmet-async":">=1.3"},"_npmOperationalInternal":{"tmp":"tmp/site_0.4.0_1789479273607_0.3157585255822899","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"_id":"@pixygon/site@0.4.1","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"dist":{"shasum":"6bef64d4ffe8cf38f604c8acf46369f8b56b3bc5","unpackedSize":129642,"integrity":"sha512-+znh++w9YqDBrfQkJl+3CS/94gWqmoe4In9VpzVyjiVeew0dkpJjVE/2nnOyAKa4RzIjKa5rFtSv7zCvDxS3jA==","fileCount":15,"tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.4.1.tgz"},"main":"./dist/index.cjs","name":"@pixygon/site","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs"},"gitHead":"d245ed7adee88a2efe4087e564904b95ca2b26af","license":"MIT","scripts":{"build":"npm run tokens && tsup","tokens":"node scripts/gen-tokens.mjs","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build"},"version":"0.4.1","_npmUser":{"name":"imakestupidgames","email":"anders@pixygon.io","approver":{"name":"imakestupidgames","email":"anders@pixygon.io"}},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","repository":{"url":"git+https://github.com/Pixygon/pixygon-packages.git","type":"git"},"_npmVersion":"12.0.2","description":"The Pixygon website scaffold: one provider stack (theme, SEO, consent-gated analytics, auth, error boundary), design-token themes, a disciplined image component and the pinned stack manifest every Pixygon Vite site shares.","directories":{},"maintainers":[{"name":"imakestupidgames","email":"anders@pixygon.io"}],"_nodeVersion":"26.8.1","dependencies":{"@pixygon/seo":"^1.2.2","@pixygon/auth":"^1.6.1","@pixygon/analytics":"^1.3.2"},"publishConfig":{"access":"public"},"devDependencies":{"tsup":"^8.3.5","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/react":"^19.2.14","react-router":"^8.3.1","@mui/material":"^7.3.8","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@types/react-dom":"^19.2.3","react-helmet-async":"^2.0.5"},"peerDependencies":{"react":">=18","react-dom":">=18","react-router":">=7","@mui/material":">=6","@emotion/react":">=11","@emotion/styled":">=11","react-helmet-async":">=1.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/site_0.4.1_1789535006565_0.5542856861358465"},"_hasShrinkwrap":false},"0.5.0":{"name":"@pixygon/site","version":"0.5.0","description":"The Pixygon website engine: one provider stack, the pearl page kit (SEO, i18n, language switcher, guides, hero, related products), the paid step (@pixygon/site/checkout), and the build engine every pearl runs as `pixygon-site` — so a pearl carries configuration, not engine code.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.js"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs","./docker/nginx.base.conf":"./docker/nginx.base.conf","./package.json":"./package.json"},"files":["dist","stack.json","README.md","prebuild.mjs","bin","build","docker"],"scripts":{"tokens":"node scripts/gen-tokens.mjs","build":"npm run tokens && tsup","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build","test":"node --test test/*.test.mjs"},"dependencies":{"@pixygon/analytics":"^1.3.2","@pixygon/auth":"^1.7.1","@pixygon/seo":"^1.3.1"},"peerDependencies":{"@emotion/react":">=11","@emotion/styled":">=11","@mui/material":">=6","@stripe/react-stripe-js":">=3","@stripe/stripe-js":">=4","playwright":">=1.40","react":">=18","react-dom":">=18","react-helmet-async":">=1.3","react-router":">=7"},"devDependencies":{"@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@mui/material":"^7.3.8","@stripe/react-stripe-js":"^5.6.1","@stripe/stripe-js":"^8.11.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","jsdom":"^25.0.1","react":"^19.2.4","react-dom":"^19.2.4","react-helmet-async":"^3.0.0","react-router":"^8.3.1","tsup":"^8.3.5","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"license":"MIT","bin":{"pixygon-site":"bin/pixygon-site.mjs"},"sideEffects":false,"peerDependenciesMeta":{"@stripe/stripe-js":{"optional":true},"@stripe/react-stripe-js":{"optional":true},"playwright":{"optional":true}},"dist":{"integrity":"sha512-9S/VRAOs+RypLbdWOkVunVjZS7PNFm0WAb4PKebUQUDnwJeLk56l8+Zn+I0lJVVlF+raf5JmOjyfSJPzMR5dWQ==","shasum":"24681264b491a5277bfd8839933e3ebac2c23c70","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.5.0.tgz"},"readmeFilename":"README.md","_id":"@pixygon/site@0.5.0","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_integrity":"sha512-9S/VRAOs+RypLbdWOkVunVjZS7PNFm0WAb4PKebUQUDnwJeLk56l8+Zn+I0lJVVlF+raf5JmOjyfSJPzMR5dWQ==","_resolved":"/home/pixygon/handoff/npm-stage-2026-09-30-raptor3/pixygon-site-0.5.0.tgz","_from":"file:/home/pixygon/handoff/npm-stage-2026-09-30-raptor3/pixygon-site-0.5.0.tgz","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"},"0.5.1":{"name":"@pixygon/site","version":"0.5.1","description":"The Pixygon website engine: one provider stack, the pearl page kit (SEO, i18n, language switcher, guides, hero, related products), the paid step (@pixygon/site/checkout), and the build engine every pearl runs as `pixygon-site` — so a pearl carries configuration, not engine code.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.js"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs","./docker/nginx.base.conf":"./docker/nginx.base.conf","./package.json":"./package.json"},"files":["dist","stack.json","README.md","prebuild.mjs","bin","build","docker"],"scripts":{"tokens":"node scripts/gen-tokens.mjs","build":"npm run tokens && tsup","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build","test":"node --test test/*.test.mjs"},"dependencies":{"@pixygon/analytics":"^1.3.2","@pixygon/auth":"^1.7.1","@pixygon/seo":"^1.3.1"},"peerDependencies":{"@emotion/react":">=11","@emotion/styled":">=11","@mui/material":">=6","@stripe/react-stripe-js":">=3","@stripe/stripe-js":">=4","playwright":">=1.40","react":">=18","react-dom":">=18","react-helmet-async":">=1.3","react-router":">=7"},"devDependencies":{"@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@mui/material":"^7.3.8","@stripe/react-stripe-js":"^5.6.1","@stripe/stripe-js":"^8.11.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","jsdom":"^25.0.1","react":"^19.2.4","react-dom":"^19.2.4","react-helmet-async":"^3.0.0","react-router":"^8.3.1","tsup":"^8.3.5","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"license":"MIT","bin":{"pixygon-site":"bin/pixygon-site.mjs"},"sideEffects":false,"peerDependenciesMeta":{"@stripe/stripe-js":{"optional":true},"@stripe/react-stripe-js":{"optional":true},"playwright":{"optional":true}},"dist":{"integrity":"sha512-SJjCdhLfQ/P7utWb8tIH59ysxnHXkCAhH3WfifHOKTKf9Njzf0QocUnhZQCE7iYwRuo7pbYlQ+yJTuQHsQdLXA==","shasum":"17ab8d28ef2f238b587c4ec5f663853374c24e9e","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.5.1.tgz"},"readmeFilename":"README.md","gitHead":"7a157eab7b1c5712665a3222a507a89505edc7d4","_id":"@pixygon/site@0.5.1","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"},"0.5.2":{"name":"@pixygon/site","version":"0.5.2","description":"The Pixygon website engine: one provider stack, the pearl page kit (SEO, i18n, language switcher, guides, hero, related products), the paid step (@pixygon/site/checkout), and the build engine every pearl runs as `pixygon-site` — so a pearl carries configuration, not engine code.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.js"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs","./docker/nginx.base.conf":"./docker/nginx.base.conf","./package.json":"./package.json"},"files":["dist","stack.json","README.md","prebuild.mjs","bin","build","docker"],"scripts":{"tokens":"node scripts/gen-tokens.mjs","build":"npm run tokens && tsup","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build","test":"node --test test/*.test.mjs"},"dependencies":{"@pixygon/analytics":"^1.3.2","@pixygon/auth":"^1.7.1","@pixygon/seo":"^1.3.1"},"peerDependencies":{"@emotion/react":">=11","@emotion/styled":">=11","@mui/material":">=6","@stripe/react-stripe-js":">=3","@stripe/stripe-js":">=4","playwright":">=1.40","react":">=18","react-dom":">=18","react-helmet-async":">=1.3","react-router":">=7"},"devDependencies":{"@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@mui/material":"^7.3.8","@stripe/react-stripe-js":"^5.6.1","@stripe/stripe-js":"^8.11.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","jsdom":"^25.0.1","react":"^19.2.4","react-dom":"^19.2.4","react-helmet-async":"^3.0.0","react-router":"^8.3.1","tsup":"^8.3.5","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"license":"MIT","bin":{"pixygon-site":"bin/pixygon-site.mjs"},"sideEffects":false,"peerDependenciesMeta":{"@stripe/stripe-js":{"optional":true},"@stripe/react-stripe-js":{"optional":true},"playwright":{"optional":true}},"dist":{"integrity":"sha512-CGtMkkE0dbyK5kihO8Wsva5NBjAlWWMPxR6mo9uaGTUBeginc48WDWFrNrHjpoE9gHFZqPuDOqlUGsvWectYWg==","shasum":"821aba3beac908c13c40a11196ab9217f93a44a9","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.5.2.tgz"},"readmeFilename":"README.md","gitHead":"37f13ca6e2093a6b5465c68b4da7a5656da31821","_id":"@pixygon/site@0.5.2","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"},"0.5.3":{"name":"@pixygon/site","version":"0.5.3","description":"The Pixygon website engine: one provider stack, the pearl page kit (SEO, i18n, language switcher, guides, hero, related products), the paid step (@pixygon/site/checkout), and the build engine every pearl runs as `pixygon-site` — so a pearl carries configuration, not engine code.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.js"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs","./docker/nginx.base.conf":"./docker/nginx.base.conf","./package.json":"./package.json"},"files":["dist","stack.json","README.md","prebuild.mjs","bin","build","docker"],"scripts":{"tokens":"node scripts/gen-tokens.mjs","build":"npm run tokens && tsup","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build","test":"node --test test/*.test.mjs"},"dependencies":{"@pixygon/analytics":"^1.3.2","@pixygon/auth":"^1.7.1","@pixygon/seo":"^1.3.1"},"peerDependencies":{"@emotion/react":">=11","@emotion/styled":">=11","@mui/material":">=6","@stripe/react-stripe-js":">=3","@stripe/stripe-js":">=4","playwright":">=1.40","react":">=18","react-dom":">=18","react-helmet-async":">=1.3","react-router":">=7"},"devDependencies":{"@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@mui/material":"^7.3.8","@stripe/react-stripe-js":"^5.6.1","@stripe/stripe-js":"^8.11.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","jsdom":"^25.0.1","react":"^19.2.4","react-dom":"^19.2.4","react-helmet-async":"^3.0.0","react-router":"^8.3.1","tsup":"^8.3.5","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"license":"MIT","bin":{"pixygon-site":"bin/pixygon-site.mjs"},"sideEffects":false,"peerDependenciesMeta":{"@stripe/stripe-js":{"optional":true},"@stripe/react-stripe-js":{"optional":true},"playwright":{"optional":true}},"dist":{"integrity":"sha512-xP2pNimEeHCKRtbl8K6SrgtSMXlxGfKLjXAa8/MU8PusbMqXDbrLmCHgubhKZs57RMyQqL+M/wpnJ1QxuglRhA==","shasum":"bf2f6d2c51bc292066e09225af2dc83b05c42e52","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.5.3.tgz"},"readmeFilename":"README.md","gitHead":"42917f7e15d9cd78e664fb583c0de9b95493f906","_id":"@pixygon/site@0.5.3","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"},"0.5.4":{"name":"@pixygon/site","version":"0.5.4","description":"The Pixygon website engine: one provider stack, the pearl page kit (SEO, i18n, language switcher, guides, hero, related products), the paid step (@pixygon/site/checkout), and the build engine every pearl runs as `pixygon-site` — so a pearl carries configuration, not engine code.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.js"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs","./docker/nginx.base.conf":"./docker/nginx.base.conf","./package.json":"./package.json"},"files":["dist","stack.json","README.md","prebuild.mjs","bin","build","docker"],"scripts":{"tokens":"node scripts/gen-tokens.mjs","build":"npm run tokens && tsup","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build","test":"node --test test/*.test.mjs"},"dependencies":{"@pixygon/analytics":"^1.3.2","@pixygon/auth":"^1.7.1","@pixygon/seo":"^1.3.1"},"peerDependencies":{"@emotion/react":">=11","@emotion/styled":">=11","@mui/material":">=6","@stripe/react-stripe-js":">=3","@stripe/stripe-js":">=4","playwright":">=1.40","react":">=18","react-dom":">=18","react-helmet-async":">=1.3","react-router":">=7"},"devDependencies":{"@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@mui/material":"^7.3.8","@stripe/react-stripe-js":"^5.6.1","@stripe/stripe-js":"^8.11.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","jsdom":"^25.0.1","react":"^19.2.4","react-dom":"^19.2.4","react-helmet-async":"^3.0.0","react-router":"^8.3.1","tsup":"^8.3.5","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"license":"MIT","bin":{"pixygon-site":"bin/pixygon-site.mjs"},"sideEffects":false,"peerDependenciesMeta":{"@stripe/stripe-js":{"optional":true},"@stripe/react-stripe-js":{"optional":true},"playwright":{"optional":true}},"dist":{"integrity":"sha512-Hn3C8ro7V5bQMf6fBpFEBKJPubGJVK8zB0I4N/O1Ml407mJ8EdGb7nXetK0/4TCFL+ucqvsNEdKeMhgsZA9CiQ==","shasum":"61d95306df8cbec2f10823be936bba1a34aee55a","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.5.4.tgz"},"readmeFilename":"README.md","gitHead":"3065026be8d1b546cbab5bf2e403699bf7b0d8be","_id":"@pixygon/site@0.5.4","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"},"0.5.5":{"name":"@pixygon/site","version":"0.5.5","description":"The Pixygon website engine: one provider stack, the pearl page kit (SEO, i18n, language switcher, guides, hero, related products), the paid step (@pixygon/site/checkout), and the build engine every pearl runs as `pixygon-site` — so a pearl carries configuration, not engine code.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.js"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs","./docker/nginx.base.conf":"./docker/nginx.base.conf","./package.json":"./package.json"},"files":["dist","stack.json","README.md","prebuild.mjs","bin","build","docker"],"scripts":{"tokens":"node scripts/gen-tokens.mjs","build":"npm run tokens && tsup","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build","test":"node --test test/*.test.mjs"},"dependencies":{"@pixygon/analytics":"^1.3.2","@pixygon/auth":"^1.7.1","@pixygon/seo":"^1.5.0"},"peerDependencies":{"@emotion/react":">=11","@emotion/styled":">=11","@mui/material":">=6","@stripe/react-stripe-js":">=3","@stripe/stripe-js":">=4","playwright":">=1.40","react":">=18","react-dom":">=18","react-helmet-async":">=1.3","react-router":">=7"},"devDependencies":{"@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@mui/material":"^7.3.8","@stripe/react-stripe-js":"^5.6.1","@stripe/stripe-js":"^8.11.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","jsdom":"^25.0.1","react":"^19.2.4","react-dom":"^19.2.4","react-helmet-async":"^3.0.0","react-router":"^8.3.1","tsup":"^8.3.5","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"license":"MIT","bin":{"pixygon-site":"bin/pixygon-site.mjs"},"sideEffects":false,"peerDependenciesMeta":{"@stripe/stripe-js":{"optional":true},"@stripe/react-stripe-js":{"optional":true},"playwright":{"optional":true}},"dist":{"integrity":"sha512-24qAqYpGKlSITyACQGVXQWSF9vPKcRjnNc7zQ6N2KPjHxY8dfDBzj/vuhfx3m5LinGrBuQEX39gchLYX9Tbjvg==","shasum":"3ea92981665ec093b242dd9fdc9f6caafc05263f","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.5.5.tgz"},"readmeFilename":"README.md","gitHead":"26e12e836231a8562508d9f38b77ce881ab2b058","_id":"@pixygon/site@0.5.5","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"},"0.5.6":{"name":"@pixygon/site","version":"0.5.6","description":"The Pixygon website engine: one provider stack, the pearl page kit (SEO, i18n, language switcher, guides, hero, related products), the paid step (@pixygon/site/checkout), and the build engine every pearl runs as `pixygon-site` — so a pearl carries configuration, not engine code.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.js"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs","./docker/nginx.base.conf":"./docker/nginx.base.conf","./package.json":"./package.json"},"files":["dist","stack.json","README.md","prebuild.mjs","bin","build","docker"],"scripts":{"tokens":"node scripts/gen-tokens.mjs","build":"npm run tokens && tsup","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build","test":"node --test test/*.test.mjs"},"dependencies":{"@pixygon/analytics":"^1.3.2","@pixygon/auth":"^1.7.1","@pixygon/seo":"^1.5.0"},"peerDependencies":{"@emotion/react":">=11","@emotion/styled":">=11","@mui/material":">=6","@stripe/react-stripe-js":">=3","@stripe/stripe-js":">=4","playwright":">=1.40","react":">=18","react-dom":">=18","react-helmet-async":">=1.3","react-router":">=7"},"devDependencies":{"@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@mui/material":"^7.3.8","@stripe/react-stripe-js":"^5.6.1","@stripe/stripe-js":"^8.11.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","jsdom":"^25.0.1","react":"^19.2.4","react-dom":"^19.2.4","react-helmet-async":"^3.0.0","react-router":"^8.3.1","tsup":"^8.3.5","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"license":"MIT","bin":{"pixygon-site":"bin/pixygon-site.mjs"},"sideEffects":false,"peerDependenciesMeta":{"@stripe/stripe-js":{"optional":true},"@stripe/react-stripe-js":{"optional":true},"playwright":{"optional":true}},"dist":{"integrity":"sha512-l2pxtoWQ1ad33lku+1Xl6XjI+rFFuyZDjHLDk08XGHE4Zbu1KGKknb2CeE2VwBrCunhDPR0zpcC4L9aSyXY1Zg==","shasum":"9fa94da718a7f65792ac9d8e118cd281ee865eaf","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.5.6.tgz"},"readmeFilename":"README.md","gitHead":"73ff464191e315e7dbaf3c81347cff3666c76cc7","_id":"@pixygon/site@0.5.6","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"},"0.6.0":{"name":"@pixygon/site","version":"0.6.0","description":"The Pixygon website engine: one provider stack, the pearl page kit (SEO, i18n, language switcher, guides, hero, related products), the paid step (@pixygon/site/checkout), and the build engine every pearl runs as `pixygon-site` — so a pearl carries configuration, not engine code.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.js"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs","./docker/nginx.base.conf":"./docker/nginx.base.conf","./package.json":"./package.json","./price-literals.mjs":"./build/price-literals.mjs","./prices.mjs":"./build/prices.mjs"},"files":["dist","stack.json","README.md","prebuild.mjs","bin","build","docker"],"scripts":{"tokens":"node scripts/gen-tokens.mjs","build":"npm run tokens && tsup","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build","test":"node --test test/*.test.mjs"},"dependencies":{"@pixygon/analytics":"^1.3.2","@pixygon/auth":"^1.7.1","@pixygon/seo":"^1.5.0"},"peerDependencies":{"@emotion/react":">=11","@emotion/styled":">=11","@mui/material":">=6","@stripe/react-stripe-js":">=3","@stripe/stripe-js":">=4","playwright":">=1.40","react":">=18","react-dom":">=18","react-helmet-async":">=1.3","react-router":">=7"},"devDependencies":{"@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@mui/material":"^7.3.8","@stripe/react-stripe-js":"^5.6.1","@stripe/stripe-js":"^8.11.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","jsdom":"^25.0.1","react":"^19.2.4","react-dom":"^19.2.4","react-helmet-async":"^3.0.0","react-router":"^8.3.1","tsup":"^8.3.5","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"license":"MIT","bin":{"pixygon-site":"bin/pixygon-site.mjs"},"sideEffects":false,"peerDependenciesMeta":{"@stripe/stripe-js":{"optional":true},"@stripe/react-stripe-js":{"optional":true},"playwright":{"optional":true}},"dist":{"integrity":"sha512-4868lfRds1GS6IRtTRADwOaTQF9bl1uaiLMfIa+q95S2DiJIFJ7kjhh+5YxxFyD636ofrP7tovuOGm0lHqM8AA==","shasum":"0ea6737ec43ce0dc2b96b608ac5396d74c988f3d","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.6.0.tgz"},"readmeFilename":"README.md","gitHead":"73ff464191e315e7dbaf3c81347cff3666c76cc7","_id":"@pixygon/site@0.6.0","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"},"0.6.1":{"name":"@pixygon/site","version":"0.6.1","description":"The Pixygon website engine: one provider stack, the pearl page kit (SEO, i18n, language switcher, guides, hero, related products), the paid step (@pixygon/site/checkout), and the build engine every pearl runs as `pixygon-site` — so a pearl carries configuration, not engine code.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.js"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs","./docker/nginx.base.conf":"./docker/nginx.base.conf","./package.json":"./package.json","./price-literals.mjs":"./build/price-literals.mjs","./prices.mjs":"./build/prices.mjs"},"files":["dist","stack.json","README.md","prebuild.mjs","bin","build","docker"],"scripts":{"tokens":"node scripts/gen-tokens.mjs","build":"npm run tokens && tsup","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build","test":"node --test test/*.test.mjs"},"dependencies":{"@pixygon/analytics":"^1.3.2","@pixygon/auth":"^1.7.1","@pixygon/seo":"^1.5.0"},"peerDependencies":{"@emotion/react":">=11","@emotion/styled":">=11","@mui/material":">=6","@stripe/react-stripe-js":">=3","@stripe/stripe-js":">=4","playwright":">=1.40","react":">=18","react-dom":">=18","react-helmet-async":">=1.3","react-router":">=7"},"devDependencies":{"@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@mui/material":"^7.3.8","@stripe/react-stripe-js":"^5.6.1","@stripe/stripe-js":"^8.11.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","jsdom":"^25.0.1","react":"^19.2.4","react-dom":"^19.2.4","react-helmet-async":"^3.0.0","react-router":"^8.3.1","tsup":"^8.3.5","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"license":"MIT","bin":{"pixygon-site":"bin/pixygon-site.mjs"},"sideEffects":false,"peerDependenciesMeta":{"@stripe/stripe-js":{"optional":true},"@stripe/react-stripe-js":{"optional":true},"playwright":{"optional":true}},"dist":{"integrity":"sha512-SLIB90Cnxn0XWDMOPJYXtPcBU/fAWidwNEzz1eVu4ZncWu1hjJH23vvZp5E/inKNjZedC0Aiyo775ithDSscMA==","shasum":"00b25dbec2750d6eeef2b18ce768a53715b3ec5e","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.6.1.tgz"},"readmeFilename":"README.md","gitHead":"796709a7fd7ce82ca3b9cc2a79e6d9ea147a4766","_id":"@pixygon/site@0.6.1","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"},"0.6.2":{"name":"@pixygon/site","version":"0.6.2","description":"The Pixygon website engine: one provider stack, the pearl page kit (SEO, i18n, language switcher, guides, hero, related products), the paid step (@pixygon/site/checkout), and the build engine every pearl runs as `pixygon-site` — so a pearl carries configuration, not engine code.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./checkout":{"types":"./dist/checkout.d.ts","import":"./dist/checkout.js"},"./stack.json":"./stack.json","./prebuild.mjs":"./prebuild.mjs","./docker/nginx.base.conf":"./docker/nginx.base.conf","./package.json":"./package.json","./price-literals.mjs":"./build/price-literals.mjs","./prices.mjs":"./build/prices.mjs"},"files":["dist","stack.json","README.md","prebuild.mjs","bin","build","docker"],"scripts":{"tokens":"node scripts/gen-tokens.mjs","build":"npm run tokens && tsup","typecheck":"npm run tokens && tsc --noEmit","prepublishOnly":"npm run build","test":"node --test test/*.test.mjs"},"dependencies":{"@pixygon/analytics":"^1.3.2","@pixygon/auth":"^1.7.1","@pixygon/seo":"^1.5.0"},"peerDependencies":{"@emotion/react":">=11","@emotion/styled":">=11","@mui/material":">=6","@stripe/react-stripe-js":">=3","@stripe/stripe-js":">=4","playwright":">=1.40","react":">=18","react-dom":">=18","react-helmet-async":">=1.3","react-router":">=7"},"devDependencies":{"@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@mui/material":"^7.3.8","@stripe/react-stripe-js":"^5.6.1","@stripe/stripe-js":"^8.11.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","jsdom":"^25.0.1","react":"^19.2.4","react-dom":"^19.2.4","react-helmet-async":"^3.0.0","react-router":"^8.3.1","tsup":"^8.3.5","typescript":"^5.9.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"license":"MIT","bin":{"pixygon-site":"bin/pixygon-site.mjs"},"sideEffects":false,"peerDependenciesMeta":{"@stripe/stripe-js":{"optional":true},"@stripe/react-stripe-js":{"optional":true},"playwright":{"optional":true}},"dist":{"integrity":"sha512-/ODbYHDozCLqBa+xSs4eC53FUiuJpJSnnCrSCBObmpndMv+uU6cqqBeXK67aHOyxU4lRl+xKwV4Zcy1ykvVEaA==","shasum":"3de2a2f3a7c2f56d8cbfd8dcadf362d72410c44d","tarball":"https://ppm.pixygon.io/@pixygon/site/-/site-0.6.2.tgz"},"readmeFilename":"README.md","gitHead":"c971dff4cfa7ab6f617e1b2bc3f840589ef384b6","_id":"@pixygon/site@0.6.2","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"}},"time":{"0.1.0":"2026-09-03T11:34:42.871Z","modified":"2026-10-01T12:33:54.697Z","created":"2026-09-03T11:34:42.871Z","0.2.0":"2026-09-03T12:41:14.792Z","0.2.1":"2026-09-03T12:52:12.410Z","0.2.2":"2026-09-03T12:53:51.761Z","0.3.0":"2026-09-04T01:55:41.180Z","0.3.1":"2026-09-04T02:36:04.071Z","0.4.0":"2026-09-15T13:34:33.687Z","0.4.1":"2026-09-16T05:03:26.653Z","0.5.0":"2026-09-30T23:31:15.973Z","0.5.1":"2026-09-30T23:55:30.619Z","0.5.2":"2026-10-01T01:23:40.911Z","0.5.3":"2026-10-01T06:12:50.903Z","0.5.4":"2026-10-01T07:06:20.355Z","0.5.5":"2026-10-01T08:53:21.841Z","0.5.6":"2026-10-01T09:45:25.710Z","0.6.0":"2026-10-01T11:19:56.152Z","0.6.1":"2026-10-01T12:03:51.652Z","0.6.2":"2026-10-01T12:33:54.697Z"},"readme":"# @pixygon/site\n\nThe Pixygon website scaffold. Every Pixygon Vite site mounts the same provider stack,\nthe same consent gate, the same SEO component and the same image discipline — from\none package instead of seven divergent copies of `theme.ts`, `SEO.tsx` and\n`basicAnalytics.ts`.\n\n```tsx\nimport { foundationTheme } from '@pixygon/site';\nimport { PixygonSite, PixygonSEO, PixygonImage } from '@pixygon/site/react';\n\nconst theme = foundationTheme();            // or brandTheme('lonnlyst') / createSiteTheme({...})\n\nroot.render(\n  <PixygonSite\n    theme={theme}\n    analytics={{ projectId: '…', appName: 'Pixygon', endpoint: 'https://api.pixygon.io/v1/analytics', ga4Id: 'G-…' }}\n    auth={{ apiUrl: 'https://api.pixygon.io', projectId: '…' }}   // omit on sites without accounts\n  >\n    <App />\n  </PixygonSite>\n);\n```\n\nWhat `<PixygonSite>` mounts, outermost first: `ErrorBoundary` → `HelmetProvider` →\nMUI `ThemeProvider` + `CssBaseline` → `AnalyticsGate` (three-state consent from\n`@pixygon/analytics`, driven by this package's consent store) → `AuthProvider` →\n`BrowserRouter` from react-router (`router={false}` if the app owns routing) → `Suspense` with\n`<PageLoader>` → skip link, your app, `<ConsentBanner>`.\n\n## Consent\n\n`getConsent / subscribeConsent / acceptConsent / declineConsent / resetConsent`\nshare one `localStorage` key across the estate. Undecided visitors are counted in\nconsent-free basic mode (page views + conversions, nothing stored on the device);\n`accepted` starts the full SDK and GA4 (when `ga4Id` is set); `declined` stops\neverything and wipes `px_*` storage and `_ga` cookies. `useConsent()` gives\ncomponents the live value. Register side effects with `onConsentDecision`.\n\n## Theme\n\n`createSiteTheme({ mode, primary, secondary, background, paper, fontFamily,\nheadingFamily, overrides })` is the whole theme surface. `brandTheme(key)` reads the\ndesign canon (`@pixygon/design/tokens.mjs`, frozen at build time) for a brand;\n`foundationTheme()` is the Pixygon master brand.\n\n## Images\n\n`<PixygonImage src width height alt [priority] [widths] [sizes]>` — sized, lazy\nunless `priority`, async-decoded, and served through a `srcSet` of `-{w}.webp`\nvariants when `src` is on a Pixygon CDN host (variants are made by `pearl images`).\n`variantUrl` / `srcSetFor` are exported for CSS backgrounds.\n\n## Stack manifest\n\n`stack.json` pins the versions every site should be on. `pearl doctor` diffs a\nsite's `package.json` against it.\n\n## Engine guide pages (`GuidePage` + `prebuild.mjs`)\n\nThe SEO engine (PixygonAPI `/v1/seo/*`) writes search-gap pages per product. Any site renders them with one route:\n\n```tsx\nimport { GuidePage } from '@pixygon/site/react';\nimport { seoPages } from '@/data/seoPages.generated';   // written by the prebuild step\n<Route path=\"/guide/:slug\" element={<GuidePage project=\"tastarium\" siteUrl=\"https://tastarium.com\" siteName=\"Tastarium\" ogImage=\"https://tastarium.com/og.png\" baked={seoPages} defaultCta={{ label: 'Start your library', to: '/register' }} strings={{ chip: 'Guide', faqHeading: 'FAQ' }} />} />\n```\n\nand one script so the prerender and the sitemap see the pages without a network call:\n\n```json\n\"prebuild\": \"node node_modules/@pixygon/site/prebuild.mjs --project=tastarium --site=https://tastarium.com --out=src/data/seoPages.generated.ts\"\n```\n\nThen set `profile.extra.seo.createPages = true` on the product's Board so the weekly engine creates pages there.\n\n## The pearl engine (0.5)\n\nA pearl carries configuration; the engine lives here. Three parts:\n\n**Build — `pixygon-site` (bin).** What every pearl used to copy into `scripts/`:\n\n```json\n\"build\": \"pixygon-site prebuild && tsc -b && vite build && pixygon-site postbuild\",\n\"prerender\": \"pixygon-site prerender\",\n\"visual-check\": \"pixygon-site visual-check\"\n```\n\n`prebuild` = guides → related → prices → check-translations → check-prices; `postbuild` = sitemap → nginx.\nAlso `publish-guides`, `declare-activation`, `og-image` (run by hand). Languages,\norigin and product come from `src/config/site.ts`; per-pearl variations go under\n`build` in `pixygon-seo.config.json`: `guides.lang`, `related.limit`,\n`sitemap.priority`, `nginx.routeFiles`, `prerender.minHomeText`,\n`visualCheck.{mustContain,neverOnPage}`, `publishGuides.{source,lang,forbidPrices}`,\n`activation.{event,target}`, `ogImage.{html,out}`, `prices.allow`.\n\n**Prices — one catalogue, read, never written down (0.6.0).** A pearl's products\nand prices live only on its Project record. `pixygon-site prices` bakes\n`GET /v1/pricing/<slug>` into `src/data/prices.generated.ts` (kept as committed\nwhen the API is down; a selling pearl with nothing committed fails); pass it to\n`definePearl(site, { …, pricing })`. site.ts `PRODUCT` names `{ key, kind }`\nonly (`priceNOK` is deprecated; the generated price wins). The prerender and\ncrawlers show the baked price (`chargeable.nok ? prices.nok : prices[base]`);\na visitor sees their own from `/stripe/tiers` (`usePearlPrice(key)`,\n`usePearlProduct()`). `pixygon-site check-prices` fails a build whose site.ts,\nlocales or source hold OUR price as a literal; allow a competitor's equal figure\nwith a `// price-literal-ok` comment or `build.prices.allow: [<locale key>]`.\nThe scanner is exported as `@pixygon/site/price-literals.mjs` for `pearl doctor`.\n\n**nginx / Docker.** `docker/nginx.base.conf` is the server every pearl runs;\n`pixygon-site nginx` fills it with the pearl's `nginx.http.conf` (http level),\n`nginx.extra.conf` (inside `server {}`) and the route allowlist, and writes\n`nginx.generated.conf`. The template Dockerfile copies that file and runs\n`npx pixygon-site prerender`, which bakes, strips loopback origins and refuses to\nship a shell (or Stripe code in a free pearl). No registry image is needed: the\nbase travels in node_modules.\n\n**Page kit — `@pixygon/site/react`.** Bind once in `src/i18n/index.tsx`:\n\n```ts\nexport const { I18nProvider, useI18n, useT, localizePath, guidesFor } =\n  definePearl(site, { dictionaries: { no, en }, related: relatedProducts, guides: { pages: seoPages, translations: { en } } })\n```\n\nthen use `SEO`, `LanguageSwitcher`, `SiteTopBar`, `SiteFooter`, `RelatedProducts`,\n`RichText`, `HeroShowcase` + DemoKit, `BuyButton`, `SupportCard`, `NotFoundPage`,\n`PearlGuidePage`, `PearlGuideIndexPage`, `useScrollToTop`, `installSafeLocalStorage`.\nThe engine ships its own no/en strings; a pearl's locale keys always win.\n\n`t()` reads flat or nested locale files and takes the i18next call shapes:\n`t(k, vars)`, `t(k, 'Default')`, `t(k, 'Default', vars)`, `count` plurals\n(`k_one`/`k_other`, `ordinal: true`), `returnObjects`. The source language is\nserved at `/`, every other under `/<lang>/` (English-first is `DEFAULT_LANG: 'en'`).\nOptions for app-like pearls: `stickyLanguage` (an in-app push from `/no` to an\nunprefixed path stays in `/no`), `routerBasename` (the provider owns the router\nand the language is its basename; router links use `to()`, `href()` stays the\nfull path), `keepLanguageOn: /^\\/guide/` (pages the browser preference never\nredirects off), `hardReloadOnSwitch`, `globalVars`. `setLang(lang, to?)`.\n\n**Checkout — `@pixygon/site/checkout` (ESM only).** `CheckoutPage` / `CheckoutReturnPage`\ndriven by `PRODUCT` in site.ts; the server owns the price. Import it only under\n`__PEARL_PRICED__` so a free pearl bundles no Stripe code.\n\nMigrating a pearl: `pearl template sync <repo>` (template v4) replaces every\nengine copy that matches a template version and keeps real variations with a diff.\n","readmeFilename":"README.md"}