{"_id":"@alphinex/layouts","_rev":"14-bf8addb72afd27640d7143fe2ee2e57a","name":"@alphinex/layouts","dist-tags":{"latest":"2.2.0"},"versions":{"1.0.0":{"name":"@alphinex/layouts","version":"1.0.0","license":"UNLICENSED","_id":"@alphinex/layouts@1.0.0","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"f036a5fbadead72ca57e97738121ca5311720fff","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-1.0.0.tgz","fileCount":5,"integrity":"sha512-nLSA6t/Se3NEKb6wMFXD0ta7s0fmEI/7fLWE5zR4/tvsnDu4cpli2BdNU78xN3+u3Elb/7HSNvmPyiM6YTTSTQ==","signatures":[{"sig":"MEQCIFkQY+MdRVTJoTe2U2zlI89TNy2U8eDun7qlWYPuuurVAiBfBpLs6q5BMmfrR8XqD7u7fsAS/m5Gz7j/ocGmm8gE6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27280},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"1.0.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.0","@alphinex/icons":"1.0.0","@alphinex/theme":"1.0.0","@alphinex/utils":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_1.0.0_1785852479614_0.8547449316204614","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@alphinex/layouts","version":"2.0.0","license":"UNLICENSED","_id":"@alphinex/layouts@2.0.0","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"3f4452606faaf29381d85f3696f4f411b0245525","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.0.0.tgz","fileCount":5,"integrity":"sha512-y5bczQfhpneKybPZv+B5pUDyJ7FMoI2TWZA6H+/K0IIDTnXc2fGy52URR7KN6oaWHDxpQEHwegGlrZqLRSW2HA==","signatures":[{"sig":"MEQCIH5lkmwW8L7B120H/FXIZj2jk4vNDcQtMvE3GfcWwnMhAiBybnttNC5Y9RvgL2eQwazPbQvkwkLbNEwwBhBBhDTfyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27282},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.0.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.0","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.0.0_1785858426257_0.2732859644497154","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@alphinex/layouts","version":"2.1.0","license":"UNLICENSED","_id":"@alphinex/layouts@2.1.0","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"b34c46408959d351678b722716c4668428275c2e","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.1.0.tgz","fileCount":5,"integrity":"sha512-EGfhYcQbcGMMTEoEL3uDmWaYGADrMjqZs6TBZ6YHI0EM3Y7Yn+/8R8LMFzhPJowoHcFQ3afd0nYqntQKGnIYRg==","signatures":[{"sig":"MEUCIQDTLdQBq5bMtQfwNxsBtJbt7B1aNlBDLw8CSQhB1KbxEgIgI/22sqio/F8Rj9km0rVPSqJsAE+e9Duk51T/mrlwwHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29364},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.0.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.0","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@alphinex/printing":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.1.0_1785893598039_0.42046067119574126","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@alphinex/layouts","version":"2.1.1","license":"UNLICENSED","_id":"@alphinex/layouts@2.1.1","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"e7da6967d322d094f2a2941b393605337abc96a4","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.1.1.tgz","fileCount":5,"integrity":"sha512-FghtbOfRz6iJvmbmzheSG/1IYEEyTSaubtqQfyACacpiILz/WPqOyNAp4PM44S6e4pVDJqeoChH605Iz52Hqvw==","signatures":[{"sig":"MEQCIGLC5NkejGakgz6T/qSebLCrYtL2TdoOMSF1DIMLQDD6AiBl0NVLg5tJwFqI26O/pjbuwEVTmmbhc+2wdPKQ4ULnxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29364},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.1.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.0","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@alphinex/printing":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.1.1_1785896121405_0.9075127765217463","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@alphinex/layouts","version":"2.1.2","license":"UNLICENSED","_id":"@alphinex/layouts@2.1.2","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"5b87dcaa6c4d1f4728b4a78f8cd637e4c9844a0e","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.1.2.tgz","fileCount":5,"integrity":"sha512-xS6/q45JBrUQsgwsTguvzSVyS5OcxM+N2KqHW8kdbTfawB4sJ+HeW1KcArWt7dvjpEUENQ9cZHOgHOqzk8usZA==","signatures":[{"sig":"MEYCIQDp9Lesmth+eHoDGLeAyhLvLWm4LwyIZKjhk9UzTJ/TUAIhAMlzFqbiu0Bntg7dEJOZ4kH6DJWh/4PtcFZjQ3MsNR6c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29364},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.1.1","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@alphinex/printing":"1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.1.2_1785938259977_0.2010755174520229","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@alphinex/layouts","version":"2.1.3","license":"UNLICENSED","_id":"@alphinex/layouts@2.1.3","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"f86123730b5d69334c350ccdf2057d0114809703","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.1.3.tgz","fileCount":5,"integrity":"sha512-00tBDoWSNthd0WJMWVl5ObqOKR9rXxFlF68JIZNsuqOrxRpBxdyF9t6yexybi9iqibagleKyNyeIkdwF9K3ILA==","signatures":[{"sig":"MEYCIQDddYVOvOcXbhAdmwU/hfUobu7GOoY/faOX0Luls8TUvwIhAL0o/Sm0Z1c7tKFcaJWaLUqi5Z3HXOKiBIbYD93n0riv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29364},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.1.1","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@alphinex/printing":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.1.3_1785944578766_0.39163412745010073","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"@alphinex/layouts","version":"2.1.4","license":"UNLICENSED","_id":"@alphinex/layouts@2.1.4","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"e211379c76ed5b9052d5c87fae14aa36ff3e20b3","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.1.4.tgz","fileCount":5,"integrity":"sha512-Dg13EXUAXsLit0H3SO+D3xb4F7mRaNQz+ixzYK9VjaR5gPueFYb2WUgZ87RutSJ7wyLu7ve2bxOaQBzIdqkiJg==","signatures":[{"sig":"MEUCIQCihGoKWAgscTZYDZasVPDuvFZTjcqI8TfzS6aIk2WsSAIgcCR5MZhIj+9C1ljSmYd2r63nrUk1X40n2UCYLJj6kKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36031},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.2.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@alphinex/printing":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.1.4_1786003932759_0.34927501520063187","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"@alphinex/layouts","version":"2.1.5","license":"UNLICENSED","_id":"@alphinex/layouts@2.1.5","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"a86d34db9b3e01a61cc4bb5aac40ed1a347c4e2f","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.1.5.tgz","fileCount":5,"integrity":"sha512-DwnPlv7t0y66KFJU+sctfx172tmPl/ctI5S5M+t/5Ak+10yzpCVXtgS4wk0pr+uzbrtGvXLlPuPiO832JmKZlw==","signatures":[{"sig":"MEUCIQCLojhKKTz6wnjJJvafrbV00yoz+YVVIO65O10xVCs0bgIgTxkU/EweF3L56Fe66OF0QFafsH8+nZZyUroZQ2NRfR0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36031},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.3.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@alphinex/printing":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.1.5_1786200451750_0.7487720998164062","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"@alphinex/layouts","version":"2.1.6","license":"UNLICENSED","_id":"@alphinex/layouts@2.1.6","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"20860f7cf1e6ded21a6289ec1a891f3ca74b1504","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.1.6.tgz","fileCount":5,"integrity":"sha512-VxSClsS3vhrq5pyQb+XrUpzPYlKdtkjbabuoMqFIumXiJrVSlZbcB9N609VBilrLNimTnpocltIY4ad5ptesjw==","signatures":[{"sig":"MEYCIQCAf5XCa9BYxULf2xCSl5yVWigb9UxO82XvpDLqixXx7QIhAPVe7PXEllbbCmM0b6HPKxpnrFVhLkaDcrq3RQoDOL+P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36031},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.4.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@alphinex/printing":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.1.6_1786218409069_0.14907172230002486","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"@alphinex/layouts","version":"2.1.7","license":"UNLICENSED","_id":"@alphinex/layouts@2.1.7","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"7068d61c00e789b76546027e63c0608808ea67cb","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.1.7.tgz","fileCount":5,"integrity":"sha512-1g6PivT3Fib4i9OZ7h5ATubNWVCtUkLf2ZXaQdIRjWKOVpk6w7EdVID/WfpDKRX3LQtGcwzW6qdFxLSsRaNj/w==","signatures":[{"sig":"MEYCIQCo9YVZFA0YbcHpH2OxEkOTxMC7ODphDLEgaFyjuvaspQIhAJcKJI3vlt7QEyC4IKEjnZSDdJQFNnPNhAb2/pGVW5H2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36031},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.5.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/icons":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@alphinex/printing":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.1.7_1786273320585_0.821546774662999","host":"s3://npm-registry-packages-npm-production"}},"2.1.8":{"name":"@alphinex/layouts","version":"2.1.8","license":"UNLICENSED","_id":"@alphinex/layouts@2.1.8","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"a40731d8507a51853b34b8710db35a9fb2a318be","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.1.8.tgz","fileCount":5,"integrity":"sha512-KgDQScvRe60PULohBhpkT3ucXehmcsWdPGTQJLOKC2GcIm4QQ8bTdqwJ6rpmD9MUelciRZYftCYAo00isyAKpQ==","signatures":[{"sig":"MEYCIQD5NwSSwzUbjBtaOoIjjDMx21vL08DWV80RSUxKbczo+AIhAOF9k0r2QP1iT8sP1ymFfvwVHuaYUT0NkGqTNakbMq7F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36031},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.5.1","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/icons":"1.1.0","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@alphinex/printing":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.1.8_1786298615477_0.23466455305800582","host":"s3://npm-registry-packages-npm-production"}},"2.1.9":{"name":"@alphinex/layouts","version":"2.1.9","license":"UNLICENSED","_id":"@alphinex/layouts@2.1.9","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"5c9009d89db91646e3ca0be4a0887c8fb84ebf59","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.1.9.tgz","fileCount":5,"integrity":"sha512-7+wyoPJ7v0gm4jyGvfBYPAWUT/lr1oqIEbMTMw1hFl2HrNZaIC5e5fxLGfy/Ftw75DSJKBkXvjXNF683hyTrFw==","signatures":[{"sig":"MEUCIQDdxYZ/GH4vSTrb67rxKQWZ+fpEjDSwpzNHQYyq6rr6LgIgR8C3I+dSwfFed/phTx10wQ65h4xu40/7FhhIfSoo1nA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36031},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.6.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.2","@alphinex/icons":"1.2.0","@alphinex/theme":"1.1.0","@alphinex/utils":"1.1.0","@alphinex/printing":"1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.1.9_1786525491921_0.06364304759971806","host":"s3://npm-registry-packages-npm-production"}},"2.1.10":{"name":"@alphinex/layouts","version":"2.1.10","license":"UNLICENSED","_id":"@alphinex/layouts@2.1.10","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"0fd7bc6fb5eeec28a4aaf97ecefbde4003bc9bb6","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.1.10.tgz","fileCount":5,"integrity":"sha512-nkSad8VgeRmttP9fP6oXUvnQuhORuESc6vzTikA3/fdpW5CRXbAaXTCDlfQYFg/Yd61S4cqcZoBXveSdFEeS5w==","signatures":[{"sig":"MEUCIQC+cEACtLgeil1PGV7XIkoECZAHw5IyfxI66dwGSUI0IQIgWSrdBeMdySGReR6pKiI7hM9fW78hAXMa+esLwR+Mnbg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36032},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.7.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.2","@alphinex/icons":"1.2.0","@alphinex/theme":"1.1.0","@alphinex/utils":"1.1.0","@alphinex/printing":"1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/layouts_2.1.10_1786546539665_0.5362577302166187","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@alphinex/layouts","version":"2.2.0","private":false,"description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","license":"UNLICENSED","type":"module","sideEffects":false,"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"dependencies":{"@alphinex/theme":"1.1.0","@alphinex/ui":"2.7.0","@alphinex/core":"1.0.0","@alphinex/icons":"1.2.0","@alphinex/hooks":"1.0.2","@alphinex/utils":"1.1.0","@alphinex/printing":"1.1.1"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"devDependencies":{"typescript":"^5.7.2","vite":"^6.0.5","vitest":"^2.1.8","react":"^19.0.0","react-dom":"^19.0.0","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.5.2","@vitejs/plugin-react":"^4.3.4","jsdom":"^25.0.1","eslint":"^9.17.0","@alphinex/build-config":"0.0.0","@alphinex/eslint-config":"1.0.1","@alphinex/typescript-config":"0.0.0"},"scripts":{"build":"vite build","dev":"vite build --watch","lint":"eslint .","typecheck":"tsc --noEmit","test":"vitest run","clean":"rimraf dist .turbo"},"_nodeVersion":"22.14.0","_id":"@alphinex/layouts@2.2.0","dist":{"integrity":"sha512-hxDptA5G0ByxgBA3DSI14bH9I6P/dH+uuhVTzwRqTUmpusTrDkkiarikaNx0jS68POt2jK94AfAW4JRVRzT0MA==","shasum":"dfd076cd54387900e4d951c1f70ac37b1f44dd05","tarball":"https://registry.npmjs.org/@alphinex/layouts/-/layouts-2.2.0.tgz","fileCount":5,"unpackedSize":36907,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCFnz4IZ53SzHfkrWTM1i2w7WVKwb5hDjwvpmX4u7ZqzwIhANikQ/Ju3OI5NMB+9QbcV9iE6Yic2OR5JozbC5EPTpTa"}]},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"directories":{},"maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/layouts_2.2.0_1786638716531_0.9281208892258273"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-04T14:07:59.440Z","modified":"2026-08-13T16:31:57.151Z","1.0.0":"2026-08-04T14:07:59.742Z","2.0.0":"2026-08-04T15:47:06.408Z","2.1.0":"2026-08-05T01:33:18.181Z","2.1.1":"2026-08-05T02:15:21.555Z","2.1.2":"2026-08-05T13:57:40.114Z","2.1.3":"2026-08-05T15:42:58.926Z","2.1.4":"2026-08-06T08:12:12.931Z","2.1.5":"2026-08-08T14:47:32.019Z","2.1.6":"2026-08-08T19:46:49.200Z","2.1.7":"2026-08-09T11:02:00.735Z","2.1.8":"2026-08-09T18:03:35.644Z","2.1.9":"2026-08-12T09:04:52.074Z","2.1.10":"2026-08-12T14:55:39.807Z","2.2.0":"2026-08-13T16:31:56.708Z"},"license":"UNLICENSED","description":"Layout Engine: Shell + slot model and named layout presets (Dashboard, POS, Auth, ...).","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"readme":"# @alphinex/layouts\n\nLayout Engine: a single slot-based `<Shell>` primitive plus ~9 named layout presets built on\ntop of it (Dashboard, POS, Auth, Blank, Print, Landing, Settings, Reports). Every preset is a\nthin wrapper that fills `<Shell>`'s slots for a specific screen shape — reach for a preset\nfirst, and drop to `<Shell>` directly only when none of them fit.\n\n## `Shell` + `useShell()`\n\n`<Shell>` is the one primitive every named layout is a preset of. It arranges up to four\noptional slots — `header`, `rail` (a narrow persistent icon strip, distinct from the full\nsidebar), `sidebar`, and `footer` — around required `children` content. Below the desktop\nbreakpoint (`min-width: 48rem`), a supplied `sidebar` automatically becomes an off-canvas\ndrawer instead of an inline column; `useShell()` exposes the drawer's open/close state to\nwhatever you render in `header`, most commonly a menu-toggle button:\n\n```tsx\nimport { Shell, useShell } from \"@alphinex/layouts\";\nimport { Button } from \"@alphinex/ui\";\nimport { Icon } from \"@alphinex/icons\";\n\nfunction MenuButton() {\n  const { toggleSidebar, isSidebarOpen } = useShell();\n  return (\n    <Button variant=\"ghost\" size=\"sm\" onClick={toggleSidebar} className=\"md:hidden\">\n      <Icon name=\"menu\" aria-label={isSidebarOpen ? \"Close menu\" : \"Open menu\"} />\n    </Button>\n  );\n}\n\nfunction CustomAppShell() {\n  return (\n    <Shell\n      header={\n        <div className=\"flex items-center gap-3 p-3\">\n          <MenuButton />\n          <span className=\"font-medium\">Alphinex Admin</span>\n        </div>\n      }\n      sidebar={<nav className=\"p-3\">{/* nav items */}</nav>}\n      sidebarWidth=\"16rem\"\n      defaultSidebarOpen={false}\n    >\n      <p className=\"p-4\">Page content</p>\n    </Shell>\n  );\n}\n```\n\n`useShell()` throws if called outside a `<Shell>` — it only works inside content rendered by\none of `Shell`'s slots or `children`. `ShellProps` also accepts `className` (outer wrapper) and\n`contentClassName` (the scrollable `<main>` region only).\n\n## `DashboardLayout` + `DashboardLayout.SidebarToggle`\n\nThe default authenticated-app shell: header + collapsible sidebar + content. It's `<Shell>`\nwith the `rail` slot removed (`DashboardLayoutProps = Omit<ShellProps, \"rail\">`), plus a\nready-made hamburger button — `DashboardLayout.SidebarToggle` — attached as a static property,\nso you don't have to hand-roll the `useShell()` toggle button shown above:\n\n```tsx\nimport { DashboardLayout } from \"@alphinex/layouts\";\n\nfunction AdminShell() {\n  return (\n    <DashboardLayout\n      header={\n        <div className=\"flex items-center gap-3 p-3\">\n          <DashboardLayout.SidebarToggle />\n          <span className=\"font-medium\">Alphinex Admin</span>\n        </div>\n      }\n      sidebar={\n        <nav className=\"space-y-1 p-3 text-sm\">\n          {[\"Overview\", \"Invoices\", \"Settings\"].map((item) => (\n            <a key={item} href={`/${item.toLowerCase()}`} className=\"block px-2 py-1.5\">\n              {item}\n            </a>\n          ))}\n        </nav>\n      }\n    >\n      <p className=\"p-4 text-sm\">Page content — the sidebar collapses into a drawer below 768px.</p>\n    </DashboardLayout>\n  );\n}\n```\n\n`SidebarToggle` renders `<Icon name=\"menu\">` in a ghost `Button`, is hidden at desktop widths\n(`md:hidden`) since the sidebar is already visible inline there, and accepts any `ButtonProps`\nexcept `children`/`onClick`/`aria-label` (which it sets itself).\n\n## Other presets\n\nEach of these is a small, purpose-built wrapper around `<Shell>` (or, for `PrintLayout`,\naround `@alphinex/printing`'s `<PrintFrame>`). Import whichever fits the screen you're\nbuilding:\n\n| Preset           | Key props                                                  | Use for                                                                                                                                                                                 |\n| ---------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `AuthLayout`     | `children`, `illustration?`                                | Centered content, no nav chrome — sign-in/sign-up/reset-password. `illustration` renders as a side panel, hidden below desktop width.                                                   |\n| `BlankLayout`    | `children`                                                 | No chrome at all — embeds and standalone flows that still participate in normal page flow.                                                                                              |\n| `PrintLayout`    | `children`, `paperSize?` (`\"a4\"` default)                  | No chrome, exact physical paper dimensions, print-isolated via `@alphinex/printing`'s `PrintFrame`. Unlike `BlankLayout`, only one `PrintLayout`/`PrintFrame` may be mounted at a time. |\n| `LandingLayout`  | `header?`, `footer?`, `children`                           | Marketing-site chrome (nav + footer), distinct from the authenticated app shell.                                                                                                        |\n| `SettingsLayout` | `nav`, `header?`, `children`                               | A narrower (`14rem`) secondary-nav sidebar — typically rendered _inside_ a `DashboardLayout` for a settings section.                                                                    |\n| `ReportsLayout`  | `header?`, `filters?`, `footer?`, `children`, `fullBleed?` | A filter bar between header and content; `fullBleed` removes the default content padding for edge-to-edge charts/tables.                                                                |\n| `POSLayout`      | `header?`, `catalog`, `cart`, `footer?`                    | No sidebar, touch/tablet-optimized counter layout — `catalog` and `cart` stack vertically on narrow widths, sit side by side (`cart` capped at `24rem`) above `md`.                     |\n\n```tsx\nimport { AuthLayout, POSLayout, ReportsLayout } from \"@alphinex/layouts\";\n\nfunction SignIn() {\n  return (\n    <AuthLayout illustration={<img src=\"/auth-art.svg\" alt=\"\" />}>\n      <form className=\"space-y-3\">{/* email/password fields */}</form>\n    </AuthLayout>\n  );\n}\n\nfunction Register() {\n  return (\n    <POSLayout\n      header={<div className=\"p-3 font-medium\">Register 1</div>}\n      catalog={<ProductGrid />}\n      cart={<CartSummary />}\n      footer={<CheckoutBar />}\n    />\n  );\n}\n\nfunction RevenueReport() {\n  return (\n    <ReportsLayout\n      header={<h1 className=\"p-3 font-medium\">Revenue</h1>}\n      filters={<FilterBar />}\n      fullBleed\n    >\n      <RevenueChart />\n    </ReportsLayout>\n  );\n}\n```\n\nSee [documentation/ARCHITECTURE.md](../../documentation/ARCHITECTURE.md) for the full package contract, dependency rules, and roadmap placement.\n","readmeFilename":""}