{"_id":"fragment-headless-sdk","_rev":"30-c4ce6271c6f84d210d9d5760e5f7b4ad","name":"fragment-headless-sdk","dist-tags":{"latest":"2.7.0"},"versions":{"1.0.1":{"name":"fragment-headless-sdk","version":"1.0.1","license":"MIT","_id":"fragment-headless-sdk@1.0.1","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"ed7ec5be17b684c3f2df73ed3a2022352fa8c4de","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-1.0.1.tgz","fileCount":39,"integrity":"sha512-3HPAESftqfYOYrO+iEYyCX18u1ezWM4vF8YpzKpMlPhHn5sBa4EfDtta+ovE9DGN9lNxVIPCdXG3VpMRYuiYLw==","signatures":[{"sig":"MEUCIDvP5FDezlZFJQyRqwcxLKXmlardHRXQCq5cBtNUTCqzAiEAmaEU2gOemHu28dXdFq2GZa1ti5qDwSoHXTpVPyzsLUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29437},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a4bfb67692a98603156bcadafff79cf78720325c","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.2.0","description":"The official SDK for integrating with fragment-shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"21.1.0","dependencies":{"react":"^19.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_1.0.1_1757273729250_0.9328344871751728","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"fragment-headless-sdk","version":"1.0.2","license":"MIT","_id":"fragment-headless-sdk@1.0.2","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"7766fe13dcfbfc58613582f931d0f84a01b91cd3","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-1.0.2.tgz","fileCount":39,"integrity":"sha512-+4cDqmimQ0VP6yQtfXNNlN9/2hslDoF1e3CixwwMp01JRg1WfNaoJItGfR/4y4tvmlgqpHRiWzIyPfcVix9jAA==","signatures":[{"sig":"MEUCIQCvEnyW5NtTILMc9CjPkSdmy4kgUIrndfJ8o9QELfzg8gIgSs8rNBYVk9Aiq6trwcI6PUiCqUF2zFzxMhsoXLuhy7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30209},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7755058d6e1d073db5162d2ee1d39933d41bb998","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with fragment-shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_1.0.2_1758392279336_0.11246406786989449","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"fragment-headless-sdk","version":"1.0.3","license":"MIT","_id":"fragment-headless-sdk@1.0.3","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"2cfb933a25fa8f3a887eb41e2b37ea78e3735bfd","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-1.0.3.tgz","fileCount":39,"integrity":"sha512-La/FfNoh6nQFVkXg8+luUhIezh5ilcfmeAS2w8bv1lGeqzkO55Wqpn7WFbVb9GNINoE0snVmMAN0DWiRV8IiIg==","signatures":[{"sig":"MEUCIE2WTLoG8862RKhE0r4EBtgjzPY17Urm5Anq7gkHQzfdAiEAv37ySIADGRXCpJV2IwhPTTHDG9eyI5qR4LOPJrZnRaQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30206},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0f7d065327d3eb16c2483baff3be3925df8b6b7e","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with fragment-shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_1.0.3_1758489544724_0.2012785896144138","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"fragment-headless-sdk","version":"1.0.4","license":"MIT","_id":"fragment-headless-sdk@1.0.4","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"2cfb31398879e0a117a4a30d3e7824c83c7d13c0","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-1.0.4.tgz","fileCount":39,"integrity":"sha512-Llj3p0soRafwr/L/E4Q+xmirKuqI/NEVmhzCmyANkYf2ntLjI+NJMBozY/Vrw9tfeahgkvnPD33iiudP0hx5/A==","signatures":[{"sig":"MEYCIQCv8zoBOR+a2Kk1mpkqZq2dvD7kxArtF0kj6Rb8eelzCwIhAKtUgocil1AGl8JkjBmCAFC3q4UQLeiDCNw+EZVfD4W9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30308},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6027e75f5669ca694103367603a9620eeac0fac1","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with fragment-shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_1.0.4_1759005775082_0.7502970331330134","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"fragment-headless-sdk","version":"1.0.5","license":"MIT","_id":"fragment-headless-sdk@1.0.5","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"d0633a56442fd3496906b2507711e48406caf95b","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-1.0.5.tgz","fileCount":41,"integrity":"sha512-BiaYcsdlKoTz9gOtJk2Y7ce1gUpKLu5JqfQzqE6hGbV4Dc1g/fzSlWTfw3+wnRvXJrSLAP9vXTSYwqvqjZvgzg==","signatures":[{"sig":"MEUCIFPREURU/QKUe5RTgSOoZDR8VraolRgKAk/hNF9N30kjAiEAm+wnlbMgVMCZrndT0yF/LNbQddVVPFfAcng9ANCapXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35159},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"031d1cdfa9b5835ce3770d823f37655a50b4c44c","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with fragment-shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_1.0.5_1759033197021_0.7070020718103065","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"fragment-headless-sdk","version":"1.0.6","license":"MIT","_id":"fragment-headless-sdk@1.0.6","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"bfbeab542c2390f1f3c3e05fb02b04a0bdb7791b","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-1.0.6.tgz","fileCount":40,"integrity":"sha512-NvqLG1VLb3Tr8tOqX526dTsmTAQ838sLtCl+xJausXY+D1UMigaP8YEfu66jW0j6Ht5opbypLIrSJbKUpaiBSg==","signatures":[{"sig":"MEUCIQCglgm0yzR+lUo3rsRHBPt8DUQg/wZ04g4KxlyO4ktAeAIgDJZidAHE48qGtccjcpLc2mFNfUoxXB3a3Y7dKV5FF80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38877},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ba155e6bf4d402b5597eea57770b4385c44fe9b9","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with fragment-shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_1.0.6_1760585335817_0.8101429330077712","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"fragment-headless-sdk","version":"2.0.0","license":"MIT","_id":"fragment-headless-sdk@2.0.0","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"ea0e35aad887bf57bd4a71c080cba0c85d9a9030","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.0.0.tgz","fileCount":44,"integrity":"sha512-agmUAKzGCBhgYCybALsHcnqQ6OTmaNXOd0cG5utO08zXsTF1FIZh15jn2VO5NPjJoYB+5+3f9YNtHMn2dReitA==","signatures":[{"sig":"MEQCIH65nWyn3BLS2mznRCQMkKcLmY37evDQki76vOeGpiHXAiBkxB83rmISSengkraO/npSqs+NRu0n5TqfX0YWOLqxBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78127},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"42582078ae5a23f41632ee01d18759c5655472e7","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.0.0_1761412899443_0.5584475689492796","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"fragment-headless-sdk","version":"2.1.0","license":"MIT","_id":"fragment-headless-sdk@2.1.0","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"e49799f9123746cf7bc74d053de67e73adba3a5a","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.1.0.tgz","fileCount":47,"integrity":"sha512-U3j6cBxRiRhsX+J77e802JIUXsz5QDHlhnYT81nUx9yAxc+GL/AMYiPhGQTynQWsOm4nAGOPmn4V3Hq/2tElVw==","signatures":[{"sig":"MEUCIFupc+91MPtFyJb/fAyV04gns84lp0kDox967Ecr310DAiEA3AlNXpBIaxZB72PRSPvEkYZ2mB3dRTZnZeIOaoDb7ig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89384},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"6fd6b1e43df6f74402d75598cc08df3b100ac811","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.1.0_1761530254350_0.09260629283940469","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"fragment-headless-sdk","version":"2.1.1","license":"MIT","_id":"fragment-headless-sdk@2.1.1","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"2ac0b65aa42aef7447cee335e7ed5d21d52bea4f","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.1.1.tgz","fileCount":49,"integrity":"sha512-jD6/RKuRqAoWloqpn8sFvoon9kpajyLj22xspPrDg+M6kMkdqN2MRbZ6oJWZ2gcsQXUwO6WnEXKtxG3FSJBTfg==","signatures":[{"sig":"MEUCIDv/pN7rHUkH3DcU8uHFe5btNlR+WA/nlT2O+rcoLzQ2AiEAxPqeNJe/quYUtunRditxVgzoRIUMKXZ7LY0SpDHGrwM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91758},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"a3584a817878370fa02394247bdcc1b1fe5cba01","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.1.1_1761789063715_0.986881686120715","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"fragment-headless-sdk","version":"2.1.2","license":"MIT","_id":"fragment-headless-sdk@2.1.2","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"965f35d7ab40803175df1584cc5bd5ab70ebee36","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.1.2.tgz","fileCount":57,"integrity":"sha512-yyUcoeY1KztsrHssMWv7K6WI5AapO08RtyQf4ogyv0sHYnguG0AJaOP3MooquS9ts+w5X9dttr/sfmqyZmLlJQ==","signatures":[{"sig":"MEYCIQCNFZDRNXlxXeb+66nS2x9KAs3TfBmHVjInQfKEm0knfQIhAIGMNCSvpiKTI6c+fX6JsLKmJr/wb6enCmxftyo32zsJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108489},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"dependencies":{"react":"^19.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.1.2_1761795513632_0.5041166700693545","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"fragment-headless-sdk","version":"2.1.3","license":"MIT","_id":"fragment-headless-sdk@2.1.3","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"415b59c4ebc4499a7a4e64ea2f1c38d11e38fa87","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.1.3.tgz","fileCount":47,"integrity":"sha512-mUdkqz9tp0YJ7PmvzDPLrP6z+I5Igx5fTDuba5wDQiF6xST+pTFmLEBBc/uM1awwEB7MvjdOHlpRUZeVBmET8w==","signatures":[{"sig":"MEUCIQDCT3Q35qRAAXRk2Vn/wh/I2kqZHjK9mKhp+5JlDnPBJwIgP8wpZaa5Z2x0qXa5jRccOx4C7C0LbhmLtdGIaWBEUDQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97006},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"629dd4d6dcb2447acd0d11e123f514ca5afffb97","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.1.3_1762659816673_0.08200566188688341","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"fragment-headless-sdk","version":"2.1.4","license":"MIT","_id":"fragment-headless-sdk@2.1.4","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"8c9e4c906c36bb09f1c3b740da7ec64569102a18","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.1.4.tgz","fileCount":47,"integrity":"sha512-DVNgSnz4WTzIlWyIH2HR1bwgZNIMnHTnR2BaMwVvv/HWfFxaWy4tGdouWos5VQNZuZu1Ipg3fdqnd6hTZJhD7Q==","signatures":[{"sig":"MEYCIQChd1PT7/OuUQfVYjq71XptkFbIPcZDMU/L7Rnq2/oYvgIhAMPcoMLeuoRlKrN9JUd0K5d8lWq75XG0m5Xbc4HnW1Ud","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97249},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"505e5a08925adc8d73fd4e8058db5da2359a44f9","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0","@heroicons/react":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.1.4_1763436109923_0.4647384063042177","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"fragment-headless-sdk","version":"2.1.5","license":"MIT","_id":"fragment-headless-sdk@2.1.5","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"8d0508c1f53b8da14248650d41971c51ed65fc27","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.1.5.tgz","fileCount":46,"integrity":"sha512-HPbRVN8RdwwMpn2o4TDranq11wHimKcbcPwjpO5mDOyyuyKXkGyRU/nMmnSQQcJ3859y6hvyxYPzBz6Gk5zTvQ==","signatures":[{"sig":"MEYCIQCtHAp3iWtTPkamOWgyM6bjFCcuiJAAQHUdR9IHD75OZQIhAMjvnSJFnvPdcBYO7RyHvzKWDJy26JVSgM1va8K5gCbL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81544},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"75379e6cc06cf35bb9550c33956bd9e1af79f689","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.8.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"react":"^19.1.0","@heroicons/react":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.1.5_1765585182119_0.5755052115998534","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"fragment-headless-sdk","version":"2.1.6","license":"MIT","_id":"fragment-headless-sdk@2.1.6","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"617fd56ceaf0a9155751467fa76e8305c33b1e91","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.1.6.tgz","fileCount":46,"integrity":"sha512-SSnWAU0FnXYOfPpqplgIuHr3lbdi6BTowm4F+PSWrIFX9cgwHZ9ilq0HjTsAkP1YVEUVd+RXyBu8KPLWUJKEeg==","signatures":[{"sig":"MEUCICmAWrUtaYObi0NXVMWBxNPErohb8uCTfU0QIHn/f+B6AiEA8y/I5qebgWC5VYSOm+DnyneNEvIvvEFmIk19MTiCk38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81544},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"1742088754fd1d41df5a484a6e1482bfa864b4da","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.8.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"react":"^19.1.0","@heroicons/react":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.1.6_1765588183513_0.2863818859841363","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"fragment-headless-sdk","version":"2.1.7","license":"MIT","_id":"fragment-headless-sdk@2.1.7","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"b7c4e020f7acd0d87dbf97081c0a5ee220fada26","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.1.7.tgz","fileCount":47,"integrity":"sha512-URqJBdRQiJanHI4Mk85hCvvmy7oaLezIW1GLsLjpzqGcCJo5FkvtODn4jKOm3HRFz7gMtMvg0QKtsHOXUkjkbA==","signatures":[{"sig":"MEUCIQDz39y3xGtNy8VZHhfqdzYFN33SAtugZCinIBa3RZFFZAIgfg3z61+CGFfpG5Zht8E8o4mbZPVIGDWkGMBVt71JeT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82662},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"d0795fb2ad5f41e319d4d16215548abafadd5091","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.8.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"react":"^19.1.0","@heroicons/react":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.1.7_1765589493156_0.3456728917436651","host":"s3://npm-registry-packages-npm-production"}},"2.1.8":{"name":"fragment-headless-sdk","version":"2.1.8","license":"MIT","_id":"fragment-headless-sdk@2.1.8","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"c221327c7c5ae46799d33b6ee56b991ea24b6a02","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.1.8.tgz","fileCount":47,"integrity":"sha512-PMzrYak46izTHvYmNZphDPuhlEiN6u+JfU/T6derec2aBjNyV+ElOlJ21E9T1AIwm04iJr+TmZwc21OFkeLOug==","signatures":[{"sig":"MEQCICkCjikifvVNJB3ILy24Kgv0KNSeOZm2Dx8tgtb5FsaDAiBcQyhH2/zb0vnhFmbOgroIurDE4aCni6AlSPV4BVGVRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84169},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"93954cde952804380b1e9a3b711151d92d3081d3","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.8.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"react":"^19.1.0","@heroicons/react":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.1.8_1766711099804_0.6682200116569446","host":"s3://npm-registry-packages-npm-production"}},"2.1.9":{"name":"fragment-headless-sdk","version":"2.1.9","license":"MIT","_id":"fragment-headless-sdk@2.1.9","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"c992efd64c18595e791efc71873000d4f1033ecf","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.1.9.tgz","fileCount":49,"integrity":"sha512-6La3409gIyo0AleDEKigA0wkJxbhAkAv26MqOPgkH85C1a/Enjn+/b6TxOzBP8V5eb5Cp7p1GMFbvkrdPYEUMA==","signatures":[{"sig":"MEUCIQDA+k+vLgC9luwyEcSHJv7XQB+nXO5jVRsRgyoP/6H39gIgKiGAYgqSxa0lmBv9tL36ZpsrCAIz5xdaurTZ2Ne8ALE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86359},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"8b317ab8218e1b864922e3f9ff19a181ffa1ef54","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.8.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"react":"^19.1.0","@heroicons/react":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.1.9_1766776214009_0.3556807223071756","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"fragment-headless-sdk","version":"2.2.0","license":"MIT","_id":"fragment-headless-sdk@2.2.0","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"91aa33b540a4d1d5bf2a056a530d518cb9e832c6","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.2.0.tgz","fileCount":51,"integrity":"sha512-F4d5240+S+Q0DP97i53J1o3dC1PYjvlYyjPwsduV7U1wpCDuBo0ZwwHqV+ImRndazSDU4/pImUfSLqe0bUxzZw==","signatures":[{"sig":"MEUCIQC5SdJiBgKHQLd2t9w7ssi57bptUOXJA6lELtp+pl5FLAIgQ7SnA0ED5NVkrk21zCoIyG+v5ZEOrjTOf2Ggm2Aoprg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90006},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"8b317ab8218e1b864922e3f9ff19a181ffa1ef54","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0","@heroicons/react":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.2.0_1768789860972_0.17496663279784652","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"fragment-headless-sdk","version":"2.2.1","license":"MIT","_id":"fragment-headless-sdk@2.2.1","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"2f08f1ec4aced0b838dc78a4d139e475f4944d26","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.2.1.tgz","fileCount":51,"integrity":"sha512-X56dhxbpGa8jGSEICeCynHUHyY15TW8nBwGVeMvFhP8OSheuyV29DhcLzeGPqkIqaAnXCi15/bNdGOb/fYsUjQ==","signatures":[{"sig":"MEQCICC2gFTbj934bebMA2NtnJhPKDlVEf8uWSRsKjJe1TFGAiAz0lHbOnbv/Zv1UKpGefHsjtgIp85Up/nyTM2oO2qTBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90612},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"8c0bd208e1c072b554e30f5302f8d220f3e5e22b","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0","@heroicons/react":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.2.1_1768876184622_0.8022886393081221","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"fragment-headless-sdk","version":"2.3.0","license":"MIT","_id":"fragment-headless-sdk@2.3.0","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"080e5ca1f94b9a979e64912babc1964fb6fd5de0","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.3.0.tgz","fileCount":53,"integrity":"sha512-MkR6MDTtbhIFx9nqB02KlqAAbEgQKe+PbcUXR2aQSWUgQ6HkuRxTmfPSV8udw5/CQFhDENoYKh1wuoSAU3qLEQ==","signatures":[{"sig":"MEUCIQChCgsPh/AwG64eRv1zBTznyh6n7aHEPJKLRQ1/dakx0gIgXmyYYI9wWd8X05fjBpmAKBiEL9UAbNA/ndTFueTrv7I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95363},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"8c0bd208e1c072b554e30f5302f8d220f3e5e22b","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0","@heroicons/react":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.3.0_1769311681320_0.3117333042075441","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"fragment-headless-sdk","version":"2.3.1","license":"MIT","_id":"fragment-headless-sdk@2.3.1","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"dist":{"shasum":"e3b0f68456904013e2085c01e17346f0d8fa8dcd","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.3.1.tgz","fileCount":54,"integrity":"sha512-RRf+KhR60nuyXQ2q9KvYpfdhR1yWd3g6pBoD+56DiRD96/prHPpnqGFUp9IaBBJK0JcNaHEJ/OWkgJstkaqWwQ==","signatures":[{"sig":"MEUCIDhtGOaaExXSt/dchNBagVYZScYJKyj3KpUVrK6FKm5rAiEAiaP5Uvl+wa0/96zBS568FijZFm5UOxXITYT2viYcxb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120557},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"2b6e7f4b593578928842d1be59d7023d4e79e9c1","scripts":{"build":"tsc"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"_npmVersion":"10.9.2","description":"The official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"react":"^19.1.0","@heroicons/react":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.3.1_1769318950287_0.6507605450240068","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"fragment-headless-sdk","version":"2.3.2","keywords":["shopify","headless","fragment","sdk","storefront"],"license":"MIT","_id":"fragment-headless-sdk@2.3.2","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"homepage":"https://github.com/sevenbrand/fragment-monorepo#readme","bugs":{"url":"https://github.com/sevenbrand/fragment-monorepo/issues"},"dist":{"shasum":"d6dc10ed12034f8c72e84566c1b8157bcc422e7e","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.3.2.tgz","fileCount":54,"integrity":"sha512-+kJmAzIOsAbnbeMoH06W20eiI5aQ0B9CgxCoDjKdiI5OhwKtrawq/R4p7B0ilHG8F00wIUOYb2RDAX10tWiX3g==","signatures":[{"sig":"MEUCIGYisy+40mfu+ubIdpO0cC0ygYoub1dImt97q/QeymPqAiEAk8ySwBVvY8voab60onOf83+b2kxhUqaZFqWxAazHLJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119213},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"3bce67002a01eafaf1786b3981c804c74f4be6d0","scripts":{"dev":"tsc --watch","build":"tsc && mkdir -p dist/styles && cp src/styles/*.css dist/styles/","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"repository":{"url":"git+https://github.com/sevenbrand/fragment-monorepo.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.2","description":"Headless SDK for Fragment Shopify storefronts","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","dependencies":{"@heroicons/react":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.3.2_1772238044023_0.5004072791081475","host":"s3://npm-registry-packages-npm-production"}},"2.3.3":{"name":"fragment-headless-sdk","version":"2.3.3","keywords":["shopify","headless","fragment","sdk","storefront","cms","react"],"license":"MIT","_id":"fragment-headless-sdk@2.3.3","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"homepage":"https://github.com/sevenbrand/fragment-monorepo/tree/main/packages/sdk#readme","bugs":{"url":"https://github.com/sevenbrand/fragment-monorepo/issues"},"dist":{"shasum":"6db0631b31a35147d04d20a537c11a5ff698750e","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.3.3.tgz","fileCount":54,"integrity":"sha512-XpoUQYOwMGIn1vNM3tlt2gfFUutF9DVPrzzEtkebhOuzf/uzsPjhlfcsr97fNJVZ6v+1Q06P71dtguoyTGV7gA==","signatures":[{"sig":"MEUCIQCUhstRAuclNl7SU6WjSzh/Y6zo9K5vpLNcY07US037sQIgHA+HJ+PdLFBt4pdtDXSmU8jqvqP1xop8tZq4tQa+ZC8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120741},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"b4f25826f8f1af4585f61a0022f7ed36e7d85658","scripts":{"dev":"tsc --watch","build":"tsc && mkdir -p dist/styles && cp src/styles/*.css dist/styles/","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"repository":{"url":"git+https://github.com/sevenbrand/fragment-monorepo.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.4","description":"Official SDK for Fragment-Shopify CMS: React components, TypeScript types, and utilities for headless Shopify storefronts.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"@heroicons/react":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.3.3_1772913914282_0.4634727412530326","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"fragment-headless-sdk","version":"2.4.0","keywords":["shopify","headless","fragment","sdk","storefront","cms","react"],"license":"MIT","_id":"fragment-headless-sdk@2.4.0","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"homepage":"https://github.com/sevenbrand/fragment-monorepo/tree/main/packages/sdk#readme","bugs":{"url":"https://github.com/sevenbrand/fragment-monorepo/issues"},"dist":{"shasum":"e1e1be9b14866b216639c1788bfdc04b14dc8e71","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.4.0.tgz","fileCount":56,"integrity":"sha512-pDlvqemkouNrFlBEsUadlX6P7ktSyUrvYaVpJr+tRRhvtqB3g4w5lqTayMyvJn933VNMWf1pi8a+k33msIt9mw==","signatures":[{"sig":"MEUCIQD+Ws5bzXEf8/1LW0I8qNMTxhPUq6tIBYjx/wbsMCFkdwIgZr1eeuKu9Ren+kqBVGFn2UV1wLqnRYq/U5zQl5w7rcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128636},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"eaf882b2d77c124794eb4848ce8281bd637c8a91","scripts":{"dev":"tsc --watch","build":"tsc && mkdir -p dist/styles && cp src/styles/*.css dist/styles/","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"repository":{"url":"git+https://github.com/sevenbrand/fragment-monorepo.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.4","description":"Official SDK for Fragment-Shopify CMS: React components, TypeScript types, and utilities for headless Shopify storefronts.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"@heroicons/react":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.4.0_1773104257236_0.04282419308380425","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"fragment-headless-sdk","version":"2.4.1","keywords":["shopify","headless","fragment","sdk","storefront","cms","react"],"license":"MIT","_id":"fragment-headless-sdk@2.4.1","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"homepage":"https://github.com/sevenbrand/fragment-monorepo/tree/main/packages/sdk#readme","bugs":{"url":"https://github.com/sevenbrand/fragment-monorepo/issues"},"dist":{"shasum":"f4864ccc8cbe56134470450af1b150bdb73efc6b","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.4.1.tgz","fileCount":56,"integrity":"sha512-5Pke9bzG1rbdlBaF62qeZRXT1HJT5Pr0G0w/wafLu1waOpwj2FfOvcvtV+Qc3CJaQTq9i8v3yBNJwackUnsEog==","signatures":[{"sig":"MEQCIDfXG6FXYePd++CS03mJFgOkRWeiwzHrQRnr+GGXI5XtAiAvBgmaKP8mC/foO37OsenEuThiJU3kn2ZtyputdLrzPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129484},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"05b7fb6fe8955f75183691eb68eb048f6108f9eb","scripts":{"dev":"tsc --watch","build":"tsc && mkdir -p dist/styles && cp src/styles/*.css dist/styles/","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"repository":{"url":"git+https://github.com/sevenbrand/fragment-monorepo.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.4","description":"Official SDK for Fragment-Shopify CMS: React components, TypeScript types, and utilities for headless Shopify storefronts.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"@heroicons/react":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.4.1_1775878280260_0.8482434414977384","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"fragment-headless-sdk","version":"2.4.3","keywords":["shopify","headless","fragment","sdk","storefront","cms","react"],"license":"MIT","_id":"fragment-headless-sdk@2.4.3","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"homepage":"https://github.com/sevenbrand/fragment-monorepo/tree/main/packages/sdk#readme","bugs":{"url":"https://github.com/sevenbrand/fragment-monorepo/issues"},"dist":{"shasum":"e3e64fb850a0d001c1a5d062d6d909656d460575","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.4.3.tgz","fileCount":56,"integrity":"sha512-bxMnH3YHXfyNgW/o7+0JGYvqwu5gW/GK7OtN5lyPlnlfNQUvLzZA6MNUUi93qsqle7QdHoScdj9bfr/ewj8DHg==","signatures":[{"sig":"MEYCIQCOJccj382Ejovc+P+o6lTSLxItd5VubyRwb0JXA171rwIhAO/A0PhCHz6uULvsfSbFwy+UyIrJV8vH5rYIUfb+4qpA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130162},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"3effc9fdfcc8d446b2b42e992a4d4a1401c22e16","scripts":{"dev":"tsc --watch","build":"tsc && mkdir -p dist/styles && cp src/styles/*.css dist/styles/","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"repository":{"url":"git+https://github.com/sevenbrand/fragment-monorepo.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.4","description":"Official SDK for Fragment-Shopify CMS: React components, TypeScript types, and utilities for headless Shopify storefronts.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"@heroicons/react":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.4.3_1776208449373_0.5496769077756989","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"fragment-headless-sdk","version":"2.4.4","keywords":["shopify","headless","fragment","sdk","storefront","cms","react"],"license":"MIT","_id":"fragment-headless-sdk@2.4.4","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"homepage":"https://github.com/sevenbrand/fragment-monorepo/tree/main/packages/sdk#readme","bugs":{"url":"https://github.com/sevenbrand/fragment-monorepo/issues"},"dist":{"shasum":"97f99e96c3b3df1bf87eab114b5d073ade8f8417","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.4.4.tgz","fileCount":56,"integrity":"sha512-p7bK6Jvj8qxAyXcXU8cwVbzS1CiXa+r0dthe903BMd/mg3hq0e70ctvZy2c8GS0L3fPxc9Unp/LitmE4D7rtuQ==","signatures":[{"sig":"MEQCIAx/OjgG55Cv574VmRTDdX8CkFDI5PxosvoOMZTs18erAiBg2jVvw9VMMYBE++7WmcY0kCc5k6s2GqMy1daGsPCZBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131385},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"6e8c2bb01def3819650f2f5d31f26051efef07ac","scripts":{"dev":"tsc --watch","build":"tsc && mkdir -p dist/styles && cp src/styles/*.css dist/styles/","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"repository":{"url":"git+https://github.com/sevenbrand/fragment-monorepo.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.4","description":"Official SDK for Fragment-Shopify CMS: React components, TypeScript types, and utilities for headless Shopify storefronts.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"@heroicons/react":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.4.4_1776217411111_0.04749552525574807","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"fragment-headless-sdk","version":"2.5.0","keywords":["shopify","headless","fragment","sdk","storefront","cms","react"],"license":"MIT","_id":"fragment-headless-sdk@2.5.0","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"homepage":"https://github.com/sevenbrand/fragment-monorepo/tree/main/packages/sdk#readme","bugs":{"url":"https://github.com/sevenbrand/fragment-monorepo/issues"},"dist":{"shasum":"f73322f2a9c3022e17a7250ad6fc162cebc89fd3","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.5.0.tgz","fileCount":58,"integrity":"sha512-K4IRcSle9f4jVzLbvbeG1DsOUFQBKqvoQ71eq5zucxuhar7bzOw4Z31dYK7egM+M48tz7CXFWtizy4hGaxkf8g==","signatures":[{"sig":"MEYCIQCadQe2LiIj0SiDPBoBQ9cAh2uzZ10yuVfyK2jXMDPzvwIhAKznYSCCMTJ9qYyCSI/BLl7zW1fe/YzUs86qX4faHWvw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137619},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"8cbfc4a628e82254c78d53787c2a9c3dab5abbd2","scripts":{"dev":"tsc --watch","build":"tsc && mkdir -p dist/styles && cp src/styles/*.css dist/styles/","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"repository":{"url":"git+https://github.com/sevenbrand/fragment-monorepo.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.4","description":"Official SDK for Fragment-Shopify CMS: React components, TypeScript types, and utilities for headless Shopify storefronts.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"@heroicons/react":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.5.0_1776715001686_0.8635428886131291","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"fragment-headless-sdk","version":"2.6.0","keywords":["shopify","headless","fragment","sdk","storefront","cms","react"],"license":"MIT","_id":"fragment-headless-sdk@2.6.0","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"homepage":"https://github.com/sevenbrand/fragment-monorepo/tree/main/packages/sdk#readme","bugs":{"url":"https://github.com/sevenbrand/fragment-monorepo/issues"},"dist":{"shasum":"1cb8d0cf318021779e83cf06ed5ac1bdabea42a3","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.6.0.tgz","fileCount":58,"integrity":"sha512-WhW2QgRawQjBJlZ3Ye6DSfl0ukG/cAFqZqlqOzKNbjLYE5UKHtiP8CkyqRIXiI25y2NOgZWgfTxjKSfRsnMSxg==","signatures":[{"sig":"MEYCIQDEZ80vh8ily7C+ugCi3lHCGPkUi/+GiUreDkI2VfLmFAIhALI4+ST4yGAXRh4nqC1phhzv7/lY4IYv8mFNxKpiwdcL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138009},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"a193b8ef8dcb34f7fe960f5d098a7f7f0e8658b4","scripts":{"dev":"tsc --watch","build":"tsc && mkdir -p dist/styles && cp src/styles/*.css dist/styles/","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"repository":{"url":"git+https://github.com/sevenbrand/fragment-monorepo.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.4","description":"Official SDK for Fragment-Shopify CMS: React components, TypeScript types, and utilities for headless Shopify storefronts.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"@heroicons/react":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.7.2","@types/react":"^19.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fragment-headless-sdk_2.6.0_1782320377393_0.19601857366174702","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"_id":"fragment-headless-sdk@2.7.0","bugs":{"url":"https://github.com/sevenbrand/fragment-monorepo/issues"},"dist":{"shasum":"0439ca5458aae9bed971da9fcfbf0c7e5c6353f6","tarball":"https://registry.npmjs.org/fragment-headless-sdk/-/fragment-headless-sdk-2.7.0.tgz","fileCount":58,"integrity":"sha512-lfOiLCrg/fpyWZq6QzUlsHLQZAcHn96bGx/9wgk8d4NLSv6SyKrakJ9zHZosuJ++IzHiCRrp4SSTCKUwDnZ4sQ==","signatures":[{"sig":"MEYCIQDn9kxOjSLut5R53CHtwIGGrUe4MHLxHAzijhioR+5cYwIhALcvbFkZjdAWW/NYPH2ca+LdUG8HD2Op5cOxvWB3PkLj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIECgM7FRPkbT/FO5rz3r4/AVSzKKkt5VuBbuK5Qbb773AiEAvsJRKCha+w4NYHiUOVNnvXnV6AhXn1T/F5IKH2FKCbc="}],"unpackedSize":138182},"main":"dist/index.js","name":"fragment-headless-sdk","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./styles":"./dist/styles/fragment-sdk.css"},"gitHead":"e09c4b1107a1bb1648705468054290de0e25e049","license":"MIT","scripts":{"dev":"tsc --watch","build":"tsc && mkdir -p dist/styles && cp src/styles/*.css dist/styles/","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"version":"2.7.0","_npmUser":{"name":"sevenbrand","email":"info@sevenbrand.io"},"homepage":"https://github.com/sevenbrand/fragment-monorepo/tree/main/packages/sdk#readme","keywords":["shopify","headless","fragment","sdk","storefront","cms","react"],"repository":{"url":"git+https://github.com/sevenbrand/fragment-monorepo.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.4","description":"Official SDK for Fragment-Shopify CMS: React components, TypeScript types, and utilities for headless Shopify storefronts.","directories":{},"maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"@heroicons/react":"^2.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.13.6","@types/react":"^19.1.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fragment-headless-sdk_2.7.0_1790793497475_0.5591186532178836"}}},"time":{"created":"2025-09-07T19:35:29.249Z","modified":"2026-09-30T18:38:17.740Z","1.0.1":"2025-09-07T19:35:29.444Z","1.0.2":"2025-09-20T18:17:59.542Z","1.0.3":"2025-09-21T21:19:04.920Z","1.0.4":"2025-09-27T20:42:55.255Z","1.0.5":"2025-09-28T04:19:57.243Z","1.0.6":"2025-10-16T03:28:56.015Z","2.0.0":"2025-10-25T17:21:39.634Z","2.1.0":"2025-10-27T01:57:34.544Z","2.1.1":"2025-10-30T01:51:03.908Z","2.1.2":"2025-10-30T03:38:33.839Z","2.1.3":"2025-11-09T03:43:36.893Z","2.1.4":"2025-11-18T03:21:50.133Z","2.1.5":"2025-12-13T00:19:42.283Z","2.1.6":"2025-12-13T01:09:43.703Z","2.1.7":"2025-12-13T01:31:33.303Z","2.1.8":"2025-12-26T01:04:59.960Z","2.1.9":"2025-12-26T19:10:14.146Z","2.2.0":"2026-01-19T02:31:01.137Z","2.2.1":"2026-01-20T02:29:44.776Z","2.3.0":"2026-01-25T03:28:01.454Z","2.3.1":"2026-01-25T05:29:10.443Z","2.3.2":"2026-02-28T00:20:44.176Z","2.3.3":"2026-03-07T20:05:14.433Z","2.4.0":"2026-03-10T00:57:37.420Z","2.4.1":"2026-04-11T03:31:20.459Z","2.4.3":"2026-04-14T23:14:09.496Z","2.4.4":"2026-04-15T01:43:31.238Z","2.5.0":"2026-04-20T19:56:41.831Z","2.6.0":"2026-06-24T16:59:37.569Z","2.7.0":"2026-09-30T18:38:17.607Z"},"bugs":{"url":"https://github.com/sevenbrand/fragment-monorepo/issues"},"license":"MIT","homepage":"https://github.com/sevenbrand/fragment-monorepo/tree/main/packages/sdk#readme","keywords":["shopify","headless","fragment","sdk","storefront","cms","react"],"repository":{"url":"git+https://github.com/sevenbrand/fragment-monorepo.git","type":"git","directory":"packages/sdk"},"description":"Official SDK for Fragment-Shopify CMS: React components, TypeScript types, and utilities for headless Shopify storefronts.","maintainers":[{"name":"sevenbrand","email":"info@sevenbrand.io"}],"readme":"# Fragment Headless SDK\n\nThe official SDK for integrating with Fragment-Shopify CMS. Provides React components, TypeScript types, and utilities for rendering published sections in headless Shopify storefronts.\n\n## ✨ What's New\n\n**v2.4.1** – `IHero` now includes a `page_order: number | null` field. Use this to sort hero banners by their merchant-defined display order; when all values are `null` the recommended behaviour is to randomize.\n\n> See [CHANGELOG.md](./docs/CHANGELOG.md) for full release history\n\n---\n\n## 🏗️ Architecture\n\nThis package works as a **consumer library** that integrates with the **Fragment-Shopify app**:\n\n```\nFragment-Shopify App (CMS) → API Endpoint → fragment-headless-sdk (Consumer) → Your Headless Site\n```\n\n- **Fragment-Shopify App**: Content management system for creating and publishing sections\n- **fragment-headless-sdk**: This SDK - consumes and renders the published content\n- **Your App**: Next.js/React application that uses the SDK\n\n---\n\n## 🔧 Features\n\n### Core Features\n\n- ✅ **Data Fetching**: Built-in utilities to fetch sections from Fragment-Shopify API\n- ✅ **React Components**: Pre-built Hero and Announcement components with responsive design\n- ✅ **TypeScript Support**: Full type definitions for all components and data structures\n- ✅ **Multiple Announcement Types**: Standard, marquee, and countdown announcements\n- ✅ **Hero Sections**: Desktop/mobile responsive hero components with video support\n- ✅ **Advanced Click Tracking**: Separated tracking and navigation for optimal user experience\n\n### Advanced Styling System (v2.0+)\n\n- 🎨 **Structured Design Tokens**: Organized color, spacing, typography, and effect tokens\n- 📱 **Responsive Styling**: Breakpoint-specific overrides (sm, md, lg, xl, 2xl)\n- 🎭 **State-Based Styling**: Hover, active, focus, disabled, and loading states\n- 🎯 **Design Token System**: Structured tokens for consistent styling\n- 🔧 **Component-Specific Slots**: Type-safe styling for individual component parts\n- ⚡ **Performance Optimized**: Caching and memoization for optimal performance\n- 🎪 **CSS-in-JS Support**: Integration with styled-components, emotion, etc.\n\n### Hero Resolvers System (v2.1+)\n\n- 🔤 **Advanced Typography**: Built-in font family support (Roboto, Inter, Montserrat, etc.)\n- 📐 **Layout Controls**: Content positioning (left/center/right), width, and height management\n- 🎨 **Smart Color Resolution**: Intelligent fallback handling for color tokens\n- 🛠️ **Utility Functions**: Helper functions for class joining, text rendering, and style resolution\n- 📝 **Type Safety**: Enhanced TypeScript interfaces for all styling options\n\n### Request Deduplication & Performance System (v2.1.3+)\n\n- ⚡ **Smart Deduplication**: Prevents identical concurrent API requests automatically\n- 🚀 **Optimized Caching**: 60-second cache revalidation for optimal performance vs freshness\n- 🔧 **Consistent Parameters**: Normalized parameter handling ensures reliable cache keys\n- 🛡️ **Anti-Spam Protection**: Built-in protection against redundant API calls\n- 📊 **Performance Monitoring**: Console logging for deduplication events and debugging\n- 🔄 **Graceful Fallback**: Failed requests retry automatically without affecting user experience\n\n### Enhanced Click Tracking System (v2.1.1+)\n\n- 🎯 **Separated Concerns**: Button destinations and click tracking handled independently\n- ⚡ **Direct Navigation**: Users go directly to destinations without redirect delays\n- 🔗 **Advanced Tracking**: `fireClickMetric()` function with fetch API and image fallback\n- 🛠️ **Non-Blocking**: Click tracking doesn't delay user navigation\n- 🌐 **Cross-Browser**: Works across all modern browsers with appropriate fallbacks\n- 🔄 **Graceful Degradation**: Tracking fails silently without affecting user experience\n\n### Google Analytics 4 (GA4) Integration (v2.2.0+)\n\n- 📊 **Automatic Event Tracking**: Automatic `section_view` and `section_click` events\n- 🎯 **Type-Safe Section Types**: `SectionType` enum for consistent section identification\n- 🔧 **Configurable Tracking**: Control tracking via `measurementId`, `sectionId`, and `sectionType` fields\n- ⚡ **Dual Tracking**: Maintains existing pixel tracking while adding GA4 support\n- 🛡️ **Graceful Fallback**: Works even if GA4 is not configured (doesn't break functionality)\n- 📦 **Exported Types**: `SectionType` enum available for consumer use\n\n### Attribution Tracking System (v2.3.0+)\n\n- 🎯 **Session-Based Attribution**: Tracks which section was clicked for purchase/add-to-cart attribution\n- 💾 **SessionStorage Integration**: Uses sessionStorage for session-scoped attribution (last-click wins)\n- 🌐 **Global API Access**: Exposed as `window.fragmentAttribution` for Shopify theme integrations\n- 🔒 **Type-Safe**: Full TypeScript support with proper type definitions\n- ✅ **Data Validation**: Automatic validation and cleanup of corrupted attribution data\n- 🧹 **Auto-Cleanup**: Invalid or corrupted data is automatically cleared from storage\n\n---\n\n## 📦 Installation\n\n```bash\n# Using Yarn\nyarn add fragment-headless-sdk\n\n# Using npm\nnpm install fragment-headless-sdk\n```\n\n---\n\n## 🎨 Tailwind CSS Setup\n\nSince this package uses Tailwind utility classes, your host app must be configured with Tailwind CSS.\n\n### 1. Install Tailwind\n\n```bash\nnpm install -D tailwindcss postcss autoprefixer\nnpx tailwindcss init -p\n```\n\n### 2. Update `tailwind.config.js`\n\n```js\nconst path = require(\"path\");\n\nmodule.exports = {\n  content: [\n    \"./app/**/*.{js,ts,jsx,tsx,mdx}\",\n    \"./pages/**/*.{js,ts,jsx,tsx,mdx}\",\n    \"./components/**/*.{js,ts,jsx,tsx,mdx}\",\n    path.join(\n      __dirname,\n      \"node_modules/fragment-headless-sdk/dist/**/*.{js,ts,jsx,tsx}\",\n    ),\n  ],\n  theme: {\n    extend: {},\n  },\n  plugins: [],\n  corePlugins: {\n    preflight: false,\n  },\n};\n```\n\n### 3. Include Tailwind in your global CSS\n\n```css\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n```\n\n### 4. Import Fragment SDK Styles\n\n**Required** - Import the SDK's CSS file for proper typography and animations:\n\n#### Option A: JavaScript/TypeScript Import\n\n```typescript\n// In your main app file (e.g., _app.tsx, layout.tsx, or main.tsx)\nimport \"fragment-headless-sdk/styles\";\n```\n\n#### Option B: CSS Import\n\n```css\n/* In your global CSS file */\n@import \"fragment-headless-sdk/dist/styles/fragment-sdk.css\";\n```\n\nThis provides:\n\n- **Google Fonts** for all supported font families (Roboto, Inter, Montserrat, etc.)\n- **Marquee animations** for announcement components\n- **Improved link styling** for prose content\n\n---\n\n## 🚀 Quick Start\n\n### 1. Fetch Data from Fragment-Shopify\n\n```tsx\nimport { fetchResource, ResourceType } from \"fragment-headless-sdk\";\n\n// Fetch hero sections\nconst heroBanners = await fetchResource({\n  baseUrl: process.env.EXTERNAL_API_URL, // Your Fragment-Shopify app URL\n  apiKey: process.env.FRAGMENT_API_KEY, // API key from Fragment-Shopify (format: \"keyId:secret\")\n  type: ResourceType.HeroBanners,\n});\n\n// Fetch announcements with optional parameters\nconst announcements = await fetchResource({\n  baseUrl: process.env.EXTERNAL_API_URL,\n  apiKey: process.env.FRAGMENT_API_KEY,\n  type: ResourceType.Announcements,\n  params: {\n    status: \"enabled\", // Only fetch enabled announcements\n    limit: 10, // Limit to 10 items\n    search: \"sale\", // Search for announcements containing \"sale\"\n  },\n  cacheOptions: {\n    revalidate: 30, // Custom 30-second cache revalidation\n    tags: [\"announcements\"], // Custom cache tags\n  },\n});\n```\n\n### 2. Basic Component Usage\n\n```tsx\nimport { Announcement, Hero } from \"fragment-headless-sdk\";\nimport { AnnouncementType } from \"fragment-headless-sdk\";\n\nexport default function Page() {\n  const [showAnnouncement, setShowAnnouncement] = useState(true);\n\n  return (\n    <>\n      {/* Hero Section */}\n      <Hero content={heroBanners[0]?.content} />\n\n      {/* Announcement */}\n      {showAnnouncement && announcements[0] && (\n        <Announcement\n          content={announcements[0].content}\n          type={announcements[0].type as AnnouncementType}\n          handleClose={() => setShowAnnouncement(false)}\n        />\n      )}\n    </>\n  );\n}\n```\n\n### 3. Advanced Styling (v2.0+)\n\n```tsx\nimport { Hero } from \"fragment-headless-sdk\";\n\n// Enhanced styling with the new system\nconst heroContent = {\n  title: \"Welcome to Our Store\",\n  description: \"Discover amazing products\",\n  buttonText: \"Shop Now\",\n  buttonLink: \"/products\",\n  imageUrl: \"https://example.com/hero.jpg\",\n  mobileImageUrl: \"https://example.com/hero-mobile.jpg\",\n\n  // Advanced styling configuration\n  styling: {\n    // Structured design tokens\n    tokens: {\n      colors: {\n        background: \"#1a1a1a\",\n        text: \"#ffffff\",\n        title: \"#f0f0f0\",\n        button: \"#007bff\",\n        buttonText: \"#ffffff\",\n      },\n      spacing: {\n        padding: \"2rem\",\n        margin: \"1rem\",\n      },\n      typography: {\n        titleSize: \"3rem\",\n        textSize: \"1.2rem\",\n      },\n    },\n\n    // Component-specific slot styling\n    slots: {\n      root: {\n        className: \"min-h-screen\",\n        style: {\n          background: \"linear-gradient(135deg, #667eea 0%, #764ba2 100%)\",\n        },\n      },\n      title: {\n        className: \"font-bold tracking-tight\",\n        responsive: {\n          md: { className: \"text-6xl\" },\n          lg: { className: \"text-7xl\" },\n        },\n        states: {\n          hover: { className: \"text-blue-300\" },\n        },\n      },\n      button: {\n        className: \"px-8 py-4 rounded-full\",\n        style: { boxShadow: \"0 10px 25px rgba(0,123,255,0.3)\" },\n        states: {\n          hover: {\n            className: \"scale-105 shadow-xl\",\n            style: { transform: \"translateY(-2px)\" },\n          },\n        },\n      },\n    },\n  },\n};\n\n<Hero content={heroContent} />;\n```\n\n> **Advanced Features:** For detailed styling options, see [STYLING.md](./docs/STYLING.md) | For hero customization, see [HERO-RESOLVERS.md](./docs/HERO-RESOLVERS.md)\n\n---\n\n## 📡 API Reference\n\n### `fetchResource<T>(params)`\n\nFetches sections from your Fragment-Shopify app with intelligent request deduplication and caching.\n\n**Parameters:**\n\n- `baseUrl: string` - URL of your Fragment-Shopify app\n- `apiKey: string` - Fragment API key (format: `keyId:secret`)\n- `type: ResourceType` - Type of resource to fetch\n- `params?: ListParams` - Optional filtering and pagination parameters\n- `fetchImpl?: typeof fetch` - Optional custom fetch implementation\n- `cacheOptions?: CacheOptions` - Optional cache configuration\n\n**ListParams Options:**\n\n- `status?: \"enabled\" | \"disabled\"` - Filter by status (defaults to \"enabled\")\n- `page?: number` - Page number for pagination (defaults to 1)\n- `limit?: number` - Items per page (defaults to 25, max 100)\n- `search?: string` - Search query for filtering\n- `pageFilter?: string` - Filter by page path (e.g., \"/collections/sale\")\n\n**CacheOptions:**\n\n- `cache?: RequestCache` - Request cache mode\n- `revalidate?: number | false` - Next.js revalidation time in seconds\n- `tags?: string[]` - Next.js cache tags for selective invalidation\n\n**Default cache behavior:**\n\n- **Next.js production**: `force-cache` with `revalidate: 60` and tags `fragment-{type}`. Override with `cacheOptions` for different behavior.\n- **Next.js development or non–Next.js**: `cache: \"default\"`; no revalidation or tags unless you pass `cacheOptions`.\n\n**ResourceType Options:**\n\n- `ResourceType.HeroBanners` - Fetch hero banners\n- `ResourceType.Announcements` - Fetch announcement sections\n\n**Returns:** `Promise<T[]>` - Array of fetched resources\n\n**Performance Features:**\n\n- **Request Deduplication**: Identical concurrent requests are automatically deduplicated\n- **Smart Caching**: 60-second cache revalidation balances performance and freshness\n- **Parameter Normalization**: Consistent cache key generation for reliable deduplication\n- **Error Handling**: Graceful fallbacks with automatic retry on failed requests\n\n---\n\n## 🧩 Components\n\n### Hero Component\n\nResponsive hero section with advanced styling capabilities.\n\n```tsx\nimport { Hero, IHeroStyling } from \"fragment-headless-sdk\";\n\n<Hero content={heroContent} />;\n```\n\n**Props:**\n\n- `content: IHeroContent` - Hero configuration object\n\n**IHeroContent Interface:**\n\n```typescript\ninterface IHeroContent {\n  title: string;\n  description: string;\n  buttonText: string;\n  buttonLink: string;\n  imageUrl: string;\n  mobileImageUrl: string;\n  videoUrl?: string;\n  measurementId?: string;   // GA4 measurement ID (from app config)\n  sectionId?: string;      // Section ID for GA4 event params\n  sectionType?: SectionType;\n  styling?: IHeroStyling; // v2.0+ enhanced styling\n}\n```\n\n**Available Slots:**\n\n- `root` - Root container\n- `desktopWrapper` / `mobileWrapper` - Responsive wrappers\n- `container` - Main content container\n- `image` - Background image/video\n- `contentWrapper` - Content positioning wrapper\n- `content` - Text content container\n- `title` - Hero title\n- `description` - Hero description\n- `button` - Call-to-action button\n\n### Announcement Component\n\nFlexible announcement component with multiple display types.\n\n```tsx\nimport {\n  Announcement,\n  AnnouncementType,\n  IAnnouncementStyling,\n} from \"fragment-headless-sdk\";\n\n<Announcement\n  content={announcementContent}\n  type={AnnouncementType.Announcement}\n  handleClose={() => setAnnouncementVisible(false)}\n/>;\n```\n\n**Props:**\n\n- `content: IAnnouncementContent` - Announcement configuration object\n- `type: AnnouncementType` - Display type\n- `handleClose: () => void` - Close handler function\n\n**Announcement Types:**\n\n- `AnnouncementType.Announcement` - Standard announcement\n- `AnnouncementType.Marquee` - Scrolling marquee\n- `AnnouncementType.Countdown` - Countdown timer\n\n**IAnnouncementContent Interface:**\n\n```typescript\ninterface IAnnouncementContent {\n  buttonType: ButtonType;\n  buttonText: string;\n  buttonLink: string;\n  announcementHtml: string;\n  counterEndDate?: string;\n  measurementId?: string;   // GA4 measurement ID (from app config)\n  sectionId?: string;       // Section ID for GA4 event params\n  sectionType?: SectionType;\n  styling?: IAnnouncementStyling; // v2.0+ enhanced styling\n}\n```\n\n**Available Slots:**\n\n- `root` - Root container\n- `inner` / `wrapper` - Layout wrappers\n- `marqueeContainer` - Marquee wrapper (marquee type)\n- `marqueeText` - Scrolling text (marquee type)\n- `contentRow` - Content layout (standard type)\n- `announcementText` - Announcement text\n- `button` - Action button\n- `closeButton` - Close button\n- `countdown` - Countdown container (countdown type)\n- `countdownContainer` - Countdown timer container\n- `countdownBlock` - Individual time block (days, hours, etc.)\n- `countdownDigit` - Countdown digit styling\n- `countdownLabel` - Time unit labels (Days, Hours, Mins, Secs)\n- `countdownSeparator` - Separator between time blocks (`:`)\n\n**Countdown Timer Color Tokens:**\n\nFor countdown-type announcements, you can customize the timer appearance using these color tokens in `styling.tokens.colors`:\n\n- `counterDigitColor` - Color of the countdown digits (default: `#FFFFFF`)\n- `counterDigitBackgroundColor` - Background color of the countdown digits (default: `#000000`)\n- `counterTextColor` - Color of labels and separators (default: uses `counterDigitColor`)\n\n**Example:**\n\n```tsx\nconst announcementContent = {\n  buttonType: ButtonType.Default,\n  buttonText: \"Shop now\",\n  buttonLink: \"/\",\n  counterEndDate: \"2026-01-01T17:00:00.000Z\",\n  announcementHtml: \"🎉 Check out the latest products!\",\n  styling: {\n    tokens: {\n      colors: {\n        text: \"#1e293b\",\n        background: \"#e0e7ff\",\n        button: \"#4f46e5\",\n        buttonText: \"#ffffff\",\n        counterDigitColor: \"#ffffff\",\n        counterDigitBackgroundColor: \"#4f46e5\",\n        counterTextColor: \"#000000\",\n      },\n    },\n  },\n};\n```\n\n## 🎯 Attribution Tracking\n\nThe SDK automatically tracks which section was clicked for attribution purposes. This is useful for tracking conversions (purchases, add-to-cart) back to the original section interaction.\n\n### Automatic Attribution\n\nWhen a user clicks a button in a Hero or Announcement section, the SDK automatically stores attribution data in `sessionStorage`:\n\n```typescript\n// Attribution is automatically set when clicks occur\n// No additional code needed - it happens automatically!\n```\n\n### Global API (Shopify Theme Integration)\n\nFor Shopify theme integrations, attribution data is exposed globally via `window.fragmentAttribution`:\n\n```javascript\n// Get current attribution data\nconst attribution = window.fragmentAttribution.get();\n// Returns: { sectionId: \"uuid\", sectionType: \"announcement\" | \"hero_banner\", timestamp: 1234567890 }\n// Or: null if no attribution exists\n\n// Manually set attribution (usually not needed - SDK handles this automatically)\nwindow.fragmentAttribution.set(\"section-uuid\", \"announcement\");\n\n// Clear attribution (e.g., after successful conversion tracking)\nwindow.fragmentAttribution.clear();\n```\n\n### Programmatic Access\n\nYou can also import and use attribution functions directly:\n\n```typescript\nimport { getAttribution, clearAttribution } from \"fragment-headless-sdk\";\n\n// Get attribution data\nconst attribution = getAttribution();\nif (attribution) {\n  console.log(`User clicked section: ${attribution.sectionId}`);\n  console.log(`Section type: ${attribution.sectionType}`);\n  console.log(`Clicked at: ${new Date(attribution.timestamp)}`);\n}\n\n// Clear attribution after tracking conversion\nclearAttribution();\n```\n\n### Use Cases\n\n**Purchase Attribution:**\n\n```javascript\n// In your Shopify checkout success page\nif (window.fragmentAttribution) {\n  const attribution = window.fragmentAttribution.get();\n  if (attribution) {\n    // Track purchase back to the section click\n    // e.g., send to analytics, update database, etc.\n    trackPurchase(attribution.sectionId, attribution.sectionType);\n\n    // Clear attribution after tracking\n    window.fragmentAttribution.clear();\n  }\n}\n```\n\n**Add-to-Cart Attribution:**\n\n```javascript\n// In your add-to-cart handler\nif (window.fragmentAttribution) {\n  const attribution = window.fragmentAttribution.get();\n  if (attribution) {\n    // Track add-to-cart back to the section click\n    trackAddToCart(attribution.sectionId, attribution.sectionType);\n  }\n}\n```\n\n### Attribution Data Structure\n\n```typescript\ninterface FragmentAttribution {\n  sectionId: string; // UUID of the section that was clicked\n  sectionType: SectionType; // \"announcement\" | \"hero_banner\"\n  timestamp: number; // Unix timestamp of when the click occurred\n}\n```\n\n### Features\n\n- ✅ **Session-Scoped**: Attribution data persists for the browser session only\n- ✅ **Last-Click Wins**: New clicks overwrite previous attribution data\n- ✅ **Type-Safe**: Full TypeScript support with proper type definitions\n- ✅ **Data Validation**: Automatically validates and cleans corrupted data\n- ✅ **Graceful Degradation**: Works even if sessionStorage is unavailable\n\n## 🔑 API Key Setup\n\nBefore using the SDK, you need to generate an API key from your Fragment-Shopify app:\n\n### 1. Generate API Key\n\n1. Install the Fragment app in your Shopify store\n2. Navigate to the **Configuration** section within the app\n3. Find the **\"API Access\"** section\n4. Click **\"Generate Key\"** to create your API key\n5. **Save the key securely** - it's only shown once!\n\n### 2. API Key Format\n\nThe API key follows this format: `keyId:secret`\n\nExample: `bh_a1b2c3d4e5f6:your-64-char-secret-here`\n\n### 3. Key Management\n\n- Only **one active key** per shop for security\n- Keys **expire after 1 year** by default\n- You can **regenerate keys** when needed (revokes the old key)\n- Monitor key usage in the Configuration page\n\n---\n\n## 🔧 Environment Variables\n\nAdd these environment variables to your `.env.local`:\n\n```bash\n# Fragment-Shopify Integration\nEXTERNAL_API_URL=https://your-fragment-app.vercel.app\nFRAGMENT_API_KEY=bh_a1b2c3d4e5f6:your-64-char-secret\n```\n\n---\n\n## 🔄 Data Flow\n\n```mermaid\ngraph TD\n    A[Fragment-Shopify App] --> B[API Endpoint]\n    B --> C[fetchResource()]\n    C --> D[Your React App]\n    D --> E[Hero/Announcement Components]\n    E --> F[Styling System]\n    F --> G[Rendered UI]\n```\n\n1. **Content Creation**: Editors create sections in Fragment-Shopify app\n2. **Publishing**: Sections are published and available via API\n3. **Data Fetching**: Your app calls `fetchResource()` to get section data\n4. **Component Rendering**: Pass data to Hero/Announcement components\n5. **Styling Application**: Advanced styling system applies design tokens, responsive design, and interactions\n6. **UI Display**: Components render beautiful, responsive, styled sections\n\n---\n\n## 🚨 Error Handling\n\nThe package includes built-in error handling:\n\n```typescript\n// fetchResource automatically handles:\n// - Missing environment variables (logs warning, returns [])\n// - API errors (logs error, returns [])\n// - Invalid response format (logs error, returns [])\n\nconst sections = await fetchResource({...});\n// sections will always be an array, even on error\n```\n\n**Best Practices:**\n\n- Always check if data exists before rendering: `{sections[0] && <Hero content={sections[0].content} />}`\n- Implement fallback UI for when sections are unavailable\n- Monitor console for API warnings and errors\n- Use TypeScript for compile-time error prevention\n\n---\n\n## 📦 Package Structure\n\n```\nfragment-headless-sdk/\n├── src/\n│   ├── components/          # React components\n│   │   ├── Announcement/   # Announcement components\n│   │   └── Hero/           # Hero components\n│   ├── constants/          # Enums and constants\n│   ├── types/              # TypeScript interfaces\n│   │   └── styling.ts      # Advanced styling types\n│   └── utils/              # Utility functions\n│       └── styling.ts      # Styling system utilities\n└── dist/                   # Compiled output\n```\n\n## 📚 Documentation\n\n- [CHANGELOG.md](./docs/CHANGELOG.md) - Release history and version notes\n- [STYLING.md](./docs/STYLING.md) - Advanced styling system documentation\n- [HERO-RESOLVERS.md](./docs/HERO-RESOLVERS.md) - Hero component customization guide\n- [MIGRATION.md](./docs/MIGRATION.md) - Version migration guides\n- [PUBLISHING.md](./docs/PUBLISHING.md) - NPM publishing guide\n\n---\n\n## 📝 License\n\nMIT License - See LICENSE file for details.\n","readmeFilename":"readme.md"}