{"_id":"@academy-sdk/nova","_rev":"10-9ea6ba897108be9744dc8b3e1f8cc238","name":"@academy-sdk/nova","dist-tags":{"latest":"1.0.10"},"versions":{"1.0.1":{"name":"@academy-sdk/nova","version":"1.0.1","_id":"@academy-sdk/nova@1.0.1","maintainers":[{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"}],"dist":{"shasum":"6a717673a7998c14ec40db84bd4a2979f734e0b1","tarball":"https://registry.npmjs.org/@academy-sdk/nova/-/nova-1.0.1.tgz","fileCount":41,"integrity":"sha512-OrYtAkL6XyEPiosGQgM28Jkdmdgt1VJwg5hvBkbAnYNcmndY8lWNl9GolFuAB/6DLHeOlH+cJdOjxoGhQt62Cg==","signatures":[{"sig":"MEYCIQC9F+H6AySliWYAyFv+FX2sNDmGLIEo3cAHgpaqOn44AQIhAOm30+rw8puVu/4IfSjzt1dY7e0dwgtgVDyGp2WhCNZ+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283989},"gitHead":"cc222c828d62a772b90d160092f533c4515c71d2","scripts":{"dev":"node build.mjs --watch","zip":"node build.mjs && node zip.mjs","build":"node build.mjs","preview":"node preview.mjs"},"_npmUser":{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"},"_npmVersion":"10.9.3","description":"Starter kit for building custom Academy learner templates","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@academy/sdk":"file:../sdk"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","react":"19.2.0","esbuild":"^0.25.0","postcss":"^8.5.8","archiver":"^7.0.0","react-dom":"19.2.0","typescript":"5.9.3","tailwindcss":"^4.2.1","lucide-react":"0.555.0","tailwind-merge":"3.4.0","@tailwindcss/postcss":"^4.2.1","class-variance-authority":"0.7.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nova_1.0.1_1773862987142_0.9624417971385975","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@academy-sdk/nova","version":"1.0.2","_id":"@academy-sdk/nova@1.0.2","maintainers":[{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"}],"dist":{"shasum":"c863fe40977e0aca20cb50f95bc61c3281e6c8e6","tarball":"https://registry.npmjs.org/@academy-sdk/nova/-/nova-1.0.2.tgz","fileCount":41,"integrity":"sha512-GaafCfYc8xGQSO+m06K7VFlJqpvmfvs+/wZ1aLadOJHsPtAOvaXLbcdtDXPTbIg6RNSqIxPYKZbFyunoryvyTQ==","signatures":[{"sig":"MEUCIHlkuRZIgIMKU9bEBa92GAGdtvhNrVqODs78P38HDGuoAiEA4r26Y0/CeeKCwJ6noGbCDJeA5322e6wKk5GdYNVeW/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284261},"gitHead":"cc222c828d62a772b90d160092f533c4515c71d2","scripts":{"dev":"node build.mjs --watch","zip":"node build.mjs && node zip.mjs","build":"node build.mjs","preview":"node preview.mjs"},"_npmUser":{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"},"_npmVersion":"10.9.3","description":"Starter kit for building custom Academy learner templates","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@academy/sdk":"file:../sdk"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","react":"19.2.0","esbuild":"^0.25.0","postcss":"^8.5.8","archiver":"^7.0.0","react-dom":"19.2.0","typescript":"5.9.3","tailwindcss":"^4.2.1","lucide-react":"0.555.0","tailwind-merge":"3.4.0","@tailwindcss/postcss":"^4.2.1","class-variance-authority":"0.7.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nova_1.0.2_1773863313193_0.5078575454174086","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@academy-sdk/nova","version":"1.0.3","_id":"@academy-sdk/nova@1.0.3","maintainers":[{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"}],"dist":{"shasum":"888d432f6981f767ec1205877f35360ac1e2754a","tarball":"https://registry.npmjs.org/@academy-sdk/nova/-/nova-1.0.3.tgz","fileCount":43,"integrity":"sha512-JCK6byVGHv377NTP78T5HXkj7e+qtr/Xaq7K0Qj0XIi3LxWqh9k+qnucBfZfzawN5uMbi50VZ+FFaWNO/7bhGw==","signatures":[{"sig":"MEUCIGTkbnMJ7BtHbSHIYaWNg02CvSfwMZXyNewoTpuq/yRgAiEAriHaq9JLqJwK6sU7+cbvttHTjWWUJAGyIBx2tsSnl/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311107},"gitHead":"c0aecf7307d8cbf2aa351422f77751d51e28b1d7","scripts":{"dev":"node build.mjs --watch","zip":"node build.mjs && node zip.mjs","build":"node build.mjs","preview":"node preview.mjs"},"_npmUser":{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"},"_npmVersion":"10.9.3","description":"Starter kit for building custom Academy learner templates","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@academy/sdk":"file:../sdk"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","react":"19.2.0","esbuild":"^0.25.0","postcss":"^8.5.8","archiver":"^7.0.0","react-dom":"19.2.0","typescript":"5.9.3","tailwindcss":"^4.2.1","lucide-react":"0.555.0","tailwind-merge":"3.4.0","@tailwindcss/postcss":"^4.2.1","class-variance-authority":"0.7.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nova_1.0.3_1773908224296_0.13848868043557228","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@academy-sdk/nova","version":"1.0.4","_id":"@academy-sdk/nova@1.0.4","maintainers":[{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"}],"dist":{"shasum":"1a1afe4fc55b807e52012c45d0e34b9c92b484f3","tarball":"https://registry.npmjs.org/@academy-sdk/nova/-/nova-1.0.4.tgz","fileCount":45,"integrity":"sha512-wjaar0bVzL1SE2nLMj4DNF9pplHR38/I2tyUwDaQbgAoJPmpmHIHK9PdRa1Cs/qRWZXWNktFzqGYhWXGOcEZhg==","signatures":[{"sig":"MEUCIF07zqg5jz82Kx2aLBl8Fnf9lPGgglrRw4rPQJCy1l6iAiEAnKxSFuR3c5b8xr4eX/DWkdOx18+kXjmf9Vas6zWYgbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331391},"gitHead":"c0aecf7307d8cbf2aa351422f77751d51e28b1d7","scripts":{"dev":"node build.mjs --watch","zip":"node build.mjs && node zip.mjs","build":"node build.mjs","preview":"node preview.mjs"},"_npmUser":{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"},"_npmVersion":"10.9.3","description":"Starter kit for building custom Academy learner templates","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@academy/sdk":"file:../sdk","@academy-sdk/sdk":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","react":"19.2.0","esbuild":"^0.25.0","postcss":"^8.5.8","archiver":"^7.0.0","react-dom":"19.2.0","typescript":"5.9.3","tailwindcss":"^4.2.1","lucide-react":"0.555.0","tailwind-merge":"3.4.0","@tailwindcss/postcss":"^4.2.1","class-variance-authority":"0.7.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nova_1.0.4_1774946586584_0.6104171248419616","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@academy-sdk/nova","version":"1.0.5","_id":"@academy-sdk/nova@1.0.5","maintainers":[{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"}],"dist":{"shasum":"e4d40bc383d9ba30039f3376a71d4f24ca91d6db","tarball":"https://registry.npmjs.org/@academy-sdk/nova/-/nova-1.0.5.tgz","fileCount":36,"integrity":"sha512-x/51XgeoDeBHDpxm+1bGVkE2ZleydLQ4mzYA139HZiqQbJqicLSP3eIGq8oYix60aMidAjjTA04XB+JvHAZEXA==","signatures":[{"sig":"MEYCIQDktrk6dP7O5EO2JtPIniTaiGUiPp2Nc66+mdTk5f7DFgIhAJOO0qCVQ/ENAlJdaeqgVSRfCkFHZhZ/jjWzQBHzixE4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323674},"gitHead":"79f7b7a7d01589374bdec24bc603e76647956f40","scripts":{"dev":"node build.mjs --watch","zip":"node build.mjs && node zip.mjs","build":"node build.mjs","preview":"node preview.mjs"},"_npmUser":{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"},"_npmVersion":"10.9.3","description":"Starter kit for building custom Academy learner templates","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@academy/sdk":"file:../sdk","@academy-sdk/sdk":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","react":"19.2.0","esbuild":"^0.25.0","postcss":"^8.5.8","archiver":"^7.0.0","react-dom":"19.2.0","typescript":"5.9.3","tailwindcss":"^4.2.1","lucide-react":"0.555.0","tailwind-merge":"3.4.0","@tailwindcss/postcss":"^4.2.1","class-variance-authority":"0.7.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nova_1.0.5_1774954149950_0.80241628643852","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@academy-sdk/nova","version":"1.0.6","_id":"@academy-sdk/nova@1.0.6","maintainers":[{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"}],"dist":{"shasum":"8fd2191759a0e3c701aa5248bf98b83d7fcb7548","tarball":"https://registry.npmjs.org/@academy-sdk/nova/-/nova-1.0.6.tgz","fileCount":36,"integrity":"sha512-Cfwi/ddNl+cStZLcUIebabEPpiP1VZyi58dUXX1MrMEJuGsLS9tBrAp4krDOGEi7hjz1LxE4RBH5ddekxy9oSg==","signatures":[{"sig":"MEUCIEPctduR9FSrzFFcBlM+wCT6cikhgtn3puhgk/bel4GIAiEAg6enzSWXqshUgmWdSmoFi4ciaJqHd5kXEATk/lu0qXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":324426},"gitHead":"191dcbea02be752e4401425bbbf8fb2916a6673b","scripts":{"dev":"node build.mjs --watch","zip":"node build.mjs && node zip.mjs","build":"node build.mjs","preview":"node preview.mjs"},"_npmUser":{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"},"_npmVersion":"10.9.3","description":"Starter kit for building custom Academy learner templates","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@academy/sdk":"file:../sdk","@academy-sdk/sdk":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","react":"19.2.0","esbuild":"^0.25.0","postcss":"^8.5.8","archiver":"^7.0.0","react-dom":"19.2.0","typescript":"5.9.3","tailwindcss":"^4.2.1","lucide-react":"0.555.0","tailwind-merge":"3.4.0","@tailwindcss/postcss":"^4.2.1","class-variance-authority":"0.7.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nova_1.0.6_1774958889257_0.6266018057659535","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@academy-sdk/nova","version":"1.0.7","_id":"@academy-sdk/nova@1.0.7","maintainers":[{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"}],"dist":{"shasum":"b35a103d20f52616e2c7de40d973172025b15560","tarball":"https://registry.npmjs.org/@academy-sdk/nova/-/nova-1.0.7.tgz","fileCount":36,"integrity":"sha512-cbTzatE6zYcSr0p3v9KV81FpyISL+tOibL6ewpIyDKKtTkG64gpf1nzqTgxTDFWSUSa4W0V6wzEbBMuD4OznTg==","signatures":[{"sig":"MEUCIQCbOLyTMtG1bKEAcyltBz/SiT24qDlZgLYd3/fsuwgKhAIgK9RVdsBSJ2ZUo74uMPlwIky3TP9if27tHCYT2kMupHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325414},"gitHead":"e77548e312b63b4b10af7c0a06978a5fe0366551","scripts":{"dev":"node build.mjs --watch","zip":"node build.mjs && node zip.mjs","build":"node build.mjs","preview":"node preview.mjs"},"_npmUser":{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"},"_npmVersion":"10.9.3","description":"Starter kit for building custom Academy learner templates","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@academy/sdk":"file:../sdk","@academy-sdk/sdk":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","react":"19.2.0","esbuild":"^0.25.0","postcss":"^8.5.8","archiver":"^7.0.0","react-dom":"19.2.0","typescript":"5.9.3","tailwindcss":"^4.2.1","lucide-react":"0.555.0","tailwind-merge":"3.4.0","@tailwindcss/postcss":"^4.2.1","class-variance-authority":"0.7.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nova_1.0.7_1774963472822_0.5907816828411638","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@academy-sdk/nova","version":"1.0.8","_id":"@academy-sdk/nova@1.0.8","maintainers":[{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"}],"dist":{"shasum":"ec33265bf80d3563b76c0b7238e724e7e9b60822","tarball":"https://registry.npmjs.org/@academy-sdk/nova/-/nova-1.0.8.tgz","fileCount":36,"integrity":"sha512-ErFQC6OWsPGMUTRNz6nQkYQox8uEdquKt52+Z3SF9+BDYeljfQLc7WFJgDEiA1RbFH0AgftD6gFF+AuJ7Wxeug==","signatures":[{"sig":"MEYCIQDc8hdaLKZXB0Pzx7ZR63yKpTRCAm2bvuSA84b5aGvm+QIhAJvx1oAwjeN+m6kqQHe+UQPoz9BRDNPSHiryLRjwTk/o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326707},"gitHead":"d5ce34a37ee6495e7cc66a21a669c6edeb4c5135","scripts":{"dev":"node build.mjs --watch","zip":"node build.mjs && node zip.mjs","build":"node build.mjs","preview":"node preview.mjs"},"_npmUser":{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"},"_npmVersion":"10.9.3","description":"Starter kit for building custom Academy learner templates","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@academy/sdk":"file:../sdk","@academy-sdk/sdk":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","react":"19.2.0","esbuild":"^0.25.0","postcss":"^8.5.8","archiver":"^7.0.0","react-dom":"19.2.0","typescript":"5.9.3","tailwindcss":"^4.2.1","lucide-react":"0.555.0","tailwind-merge":"3.4.0","@tailwindcss/postcss":"^4.2.1","class-variance-authority":"0.7.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nova_1.0.8_1775036741809_0.4161810124044063","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@academy-sdk/nova","version":"1.0.9","_id":"@academy-sdk/nova@1.0.9","maintainers":[{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"}],"dist":{"shasum":"e3a42d4831959c6f76f3dfcb29ce8a6e1a31f3f2","tarball":"https://registry.npmjs.org/@academy-sdk/nova/-/nova-1.0.9.tgz","fileCount":36,"integrity":"sha512-laAvcrkIJu4CbRG3k09IoHcU7NAHleLJSu/qBkN92wF1rIKyaM4s5dbto9e+Dq7NFWbzxJga5z6DCj6nTxi/Rw==","signatures":[{"sig":"MEUCIQCGZarC/CusfpUg354HiP8sS2B1cvOGe2lpVc6Uz70SnwIgAsArKRAVMCHRxNrCnb/RuVdEPKeLi9ONIl+azVzJqrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326707},"gitHead":"479b101a586e5961ad75a93504e681d4c956218d","scripts":{"dev":"node build.mjs --watch","zip":"node build.mjs && node zip.mjs","build":"node build.mjs","preview":"node preview.mjs"},"_npmUser":{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"},"_npmVersion":"10.9.3","description":"Starter kit for building custom Academy learner templates","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@academy/sdk":"file:../sdk","@academy-sdk/sdk":"^0.2.8"},"_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","react":"19.2.0","esbuild":"^0.25.0","postcss":"^8.5.8","archiver":"^7.0.0","react-dom":"19.2.0","typescript":"5.9.3","tailwindcss":"^4.2.1","lucide-react":"0.555.0","tailwind-merge":"3.4.0","@tailwindcss/postcss":"^4.2.1","class-variance-authority":"0.7.1"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nova_1.0.9_1775037951890_0.9232136600842151","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@academy-sdk/nova","version":"1.0.10","description":"Starter kit for building custom Academy learner templates","scripts":{"dev":"node build.mjs --watch","build":"node build.mjs","zip":"node build.mjs && node zip.mjs","preview":"node preview.mjs"},"dependencies":{"@academy-sdk/sdk":"^0.2.8","@academy/sdk":"file:../sdk"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"devDependencies":{"@tailwindcss/postcss":"^4.2.1","archiver":"^7.0.0","class-variance-authority":"0.7.1","clsx":"2.1.1","esbuild":"^0.25.0","lucide-react":"0.555.0","postcss":"^8.5.8","react":"19.2.0","react-dom":"19.2.0","tailwind-merge":"3.4.0","tailwindcss":"^4.2.1","typescript":"5.9.3"},"_id":"@academy-sdk/nova@1.0.10","gitHead":"875a0bc3d449e8301779e242ff8899fa51575898","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-7jYL88cvHFz6u/NAILPPKukVvlBRfR0Uo/nFtNczxj8XMziiAKGoAC5Ilqv7WpeCK6iIKYLMMxNyDuVL+BvAwA==","shasum":"e4fa4e5939e568e7622ebc68985f82cee96eacc3","tarball":"https://registry.npmjs.org/@academy-sdk/nova/-/nova-1.0.10.tgz","fileCount":36,"unpackedSize":326764,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBKGNioD5Z4aJmuVc3ntWDRJacYFBCzcPmLM/XqWV0meAiACoc/DmVYYoyuaZh5z74O8ViwLAcIv0yM+Tl4j3efm5w=="}]},"_npmUser":{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"},"directories":{},"maintainers":[{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nova_1.0.10_1775040887710_0.5615877742017563"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-18T19:43:07.074Z","modified":"2026-04-01T10:54:48.019Z","1.0.1":"2026-03-18T19:43:07.292Z","1.0.2":"2026-03-18T19:48:33.356Z","1.0.3":"2026-03-19T08:17:04.439Z","1.0.4":"2026-03-31T08:43:06.734Z","1.0.5":"2026-03-31T10:49:10.113Z","1.0.6":"2026-03-31T12:08:09.409Z","1.0.7":"2026-03-31T13:24:32.987Z","1.0.8":"2026-04-01T09:45:41.959Z","1.0.9":"2026-04-01T10:05:52.026Z","1.0.10":"2026-04-01T10:54:47.857Z"},"description":"Starter kit for building custom Academy learner templates","maintainers":[{"name":"hamzeh010","email":"hamzehsalhi92@gmail.com"}],"readme":"# @academy-sdk/nova\n\nA fully customized dark-themed learner template for the Academy platform, built with the `@academy-sdk/sdk`.\n\n## Installation\n\n```bash\nnpm install @academy-sdk/nova\n```\n\nOr use as a starting point by cloning:\n\n```bash\ngit clone <repo-url>\ncd template-nova\nnpm install\n```\n\n## Usage\n\n### As an npm dependency\n\n```tsx\nimport template from '@academy-sdk/nova';\n\n// Register the template with the Academy platform\nregisterTemplate(template);\n```\n\n### As a standalone template\n\n1. Edit `src/manifest.json` with your template name\n2. Customize pages in `src/pages/`\n3. Update `src/index.tsx` to register your custom pages\n4. Build and package:\n\n```bash\nnpm run build    # Compile to dist/bundle.js\nnpm run zip      # Create deployable .zip package\nnpm run preview  # Local preview at http://localhost:3000\nnpm run dev      # Watch mode for development\n```\n\n5. Upload the `.zip` file in **Academy Creator Dashboard → Settings → Learner Template**\n\n## What's Customized\n\n| Page | Description |\n|---|---|\n| My Learning | Custom course grid with progress indicators |\n| Catalog Courses | Hero search, courses & bundles tabs, deals section |\n| Catalog Bundles | Bundle card grid with pricing |\n| Course Detail | Full course overview with curriculum |\n| Course Player | Video player with lesson sidebar |\n| Messages | Chat interface with conversation list |\n| Learner Settings | Settings page |\n| Account | Profile and preferences |\n\n### Custom Components\n\n- **CustomSidebar** — Dark-themed navigation sidebar\n- **CustomNavbar** — Top navigation bar\n- **CatalogSearchHero** — Hero banner with search\n- **CatalogRecommendedSection** — Course recommendations\n- **CatalogDealsSection** — Featured deals\n- **CatalogPlatformCTA** — Platform call-to-action\n\n## How It Works\n\n- All data comes through **props** — no API calls needed\n- Built on top of `@academy-sdk/sdk` components and contracts\n- Only the **view layer** is customized — the platform handles routing, data, and logic\n- Uses CSS custom properties for theming (dark Nova theme by default)\n\n## Preview Mode\n\nPreview locally with mock data:\n\n```bash\nnpm run preview            # starts at http://localhost:3000\nPORT=4000 npm run preview  # custom port\n```\n\nThe preview toolbar lets you switch between all pages. Edit `preview/mock-data.ts` to customize test data.\n\nFiles in `preview/` are **never** included in the production bundle.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}