{"_id":"@duytran7/landing-next","_rev":"2-eb3e9c024fc9837e66462d0452fb96b5","name":"@duytran7/landing-next","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@duytran7/landing-next","version":"0.1.0","keywords":["landing","nextjs","seo","metadata","json-config"],"license":"MIT","_id":"@duytran7/landing-next@0.1.0","maintainers":[{"name":"tranduybthv","email":"tranduybthv@gmail.com"}],"homepage":"https://github.com/Tran-Duc-Duy/duytran7#readme","bugs":{"url":"https://github.com/Tran-Duc-Duy/duytran7/issues"},"dist":{"shasum":"e4937c011d0c0b99cafd669432556d9eaeefb98d","tarball":"https://registry.npmjs.org/@duytran7/landing-next/-/landing-next-0.1.0.tgz","fileCount":9,"integrity":"sha512-OhsxrpatPUpxPVxzER1Z8/GXpAZe39XEqe8BycwPr1CrCbhnqnB/OPBkW61Zkzyhl2wP6S4m/Kn4EnbOIzF2Tg==","signatures":[{"sig":"MEUCICceCj2vmSML5o0gI4ONDyceeNJZoT+kEnivHMVhV9SWAiEAvwjNd4eiuOowHu8JDQseDS0CjHfvEaSt7PbQZYIwQVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20808},"main":"./dist/index.cjs","type":"module","_from":"file:duytran7-landing-next-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsup --watch","test":"vitest run --config ../../vitest.config.ts","build":"tsup","clean":"rm -rf dist","ci:publish":"pnpm publish --access public --no-git-checks"},"_npmUser":{"name":"tranduybthv","email":"tranduybthv@gmail.com"},"_resolved":"/tmp/e64cf11183fb94462e1453f7426701db/duytran7-landing-next-0.1.0.tgz","_integrity":"sha512-OhsxrpatPUpxPVxzER1Z8/GXpAZe39XEqe8BycwPr1CrCbhnqnB/OPBkW61Zkzyhl2wP6S4m/Kn4EnbOIzF2Tg==","repository":{"url":"git+https://github.com/Tran-Duc-Duy/duytran7.git","type":"git","directory":"packages/next"},"_npmVersion":"10.8.2","description":"Next.js adapter: buildMetadata, JsonLd, LandingPage from JSON config. Use with @duytran7/landing-core and @duytran7/landing-components.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@duytran7/landing-core":"0.1.0","@duytran7/landing-components":"0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.0.0","tsup":"^8.4.0","react":"^19.0.0","react-dom":"^19.0.0","typescript":"~5.7.2","@types/node":"^22.10.2"},"peerDependencies":{"next":">=16","react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/landing-next_0.1.0_1772514174056_0.1048929827361158","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@duytran7/landing-next","version":"0.1.1","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.js","require":"./dist/client.cjs"},"./package.json":"./package.json"},"dependencies":{"framer-motion":"^11.15.0","@duytran7/landing-components":"0.1.1","@duytran7/landing-core":"0.1.1"},"peerDependencies":{"next":">=16","react":">=18","react-dom":">=18"},"devDependencies":{"@types/node":"^22.10.2","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","next":"^16.0.0","react":"^19.0.0","react-dom":"^19.0.0","tsup":"^8.4.0","typescript":"~5.7.2"},"repository":{"type":"git","url":"git+https://github.com/Tran-Duc-Duy/duytran7.git","directory":"packages/next"},"license":"MIT","keywords":["landing","nextjs","seo","metadata","json-config"],"description":"Next.js adapter: buildMetadata, JsonLd, LandingPage from JSON config. Use with @duytran7/landing-core and @duytran7/landing-components.","scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist","test":"vitest run --config ../../vitest.config.ts","ci:publish":"pnpm publish --access public --no-git-checks"},"_id":"@duytran7/landing-next@0.1.1","bugs":{"url":"https://github.com/Tran-Duc-Duy/duytran7/issues"},"homepage":"https://github.com/Tran-Duc-Duy/duytran7#readme","_integrity":"sha512-5/zejEH6+bTRGzlw9/YC+1Pu64G6uwcycGZm0sfN/fIJ6DSRziacBAhP8enpxS6Sn4F0DO+sk1CXl63pLUpSYA==","_resolved":"/tmp/af973031c21fd33d9bd1105fc11aaec8/duytran7-landing-next-0.1.1.tgz","_from":"file:duytran7-landing-next-0.1.1.tgz","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-5/zejEH6+bTRGzlw9/YC+1Pu64G6uwcycGZm0sfN/fIJ6DSRziacBAhP8enpxS6Sn4F0DO+sk1CXl63pLUpSYA==","shasum":"25919edd6d6ac5a5300755b551910294b10f6810","tarball":"https://registry.npmjs.org/@duytran7/landing-next/-/landing-next-0.1.1.tgz","fileCount":15,"unpackedSize":54509,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB/OrgQHRDjDvhL+FD1LJgQdqgBPmaRinxBl34AOF37xAiBoOVZc/MiZy5bEsOQlQW+VHD19JyqZefyrGGfUXwzEKQ=="}]},"_npmUser":{"name":"tranduybthv","email":"tranduybthv@gmail.com"},"directories":{},"maintainers":[{"name":"tranduybthv","email":"tranduybthv@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/landing-next_0.1.1_1773075193969_0.7102400011363483"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-03T05:02:53.974Z","modified":"2026-03-09T16:53:14.268Z","0.1.0":"2026-03-03T05:02:54.200Z","0.1.1":"2026-03-09T16:53:14.113Z"},"bugs":{"url":"https://github.com/Tran-Duc-Duy/duytran7/issues"},"license":"MIT","homepage":"https://github.com/Tran-Duc-Duy/duytran7#readme","keywords":["landing","nextjs","seo","metadata","json-config"],"repository":{"type":"git","url":"git+https://github.com/Tran-Duc-Duy/duytran7.git","directory":"packages/next"},"description":"Next.js adapter: buildMetadata, JsonLd, LandingPage from JSON config. Use with @duytran7/landing-core and @duytran7/landing-components.","maintainers":[{"name":"tranduybthv","email":"tranduybthv@gmail.com"}],"readme":"# @duytran7/landing-next\n\nNext.js adapter: `buildMetadata`, `JsonLd`, and `LandingPage` rendered from JSON config. Use with `@duytran7/landing-core` and `@duytran7/landing-components`.\n\n## Install\n\n```bash\npnpm add @duytran7/landing-next @duytran7/landing-core @duytran7/landing-components\n```\n\nPeer dependencies: `next`, `react`, `react-dom`.\n\n## Usage\n\n```tsx\n// app/page.tsx\nimport { readFileSync } from \"fs\"\nimport { join } from \"path\"\nimport {\n  LandingPage,\n  buildMetadata,\n  parseLandingConfigStrict,\n} from \"@duytran7/landing-next\"\n\nconst config = parseLandingConfigStrict(\n  JSON.parse(readFileSync(join(process.cwd(), \"landing.json\"), \"utf-8\"))\n)\n\nexport const metadata = buildMetadata(config)\n\nexport default function Home() {\n  return <LandingPage config={config} />\n}\n```\n\n## Theme and font\n\n`config.theme` can include `themeId`, `fontId` (app-defined), or legacy `primaryColor`, `fontFamily`. Wrap the app (or layout) with **LandingThemeProvider** from the client entry so `data-theme` and optional font class are applied:\n\n```tsx\nimport { LandingThemeProvider, LandingPage } from \"@duytran7/landing-next\"\nimport { LandingPageWithAnimations } from \"@duytran7/landing-next/client\"\n\n// With animation + effects (client):\nexport default function Page() {\n  return (\n    <LandingThemeProvider theme={config.theme} fontClassName={fontClassName}>\n      <LandingPageWithAnimations config={config} />\n    </LandingThemeProvider>\n  )\n}\n```\n\nSee [docs/STATE-AND-RICH-UI.md](../../docs/STATE-AND-RICH-UI.md).\n\n## Animation and effects (client entry)\n\nFor scroll-in animation (`section.animation.enter`: fade, fade-up, fade-down, slide-left, slide-right) and section effects (parallax, float, mouseAware), use **LandingPageWithAnimations** from `@duytran7/landing-next/client` instead of `LandingPage`. Requires `framer-motion` (already a dependency of this package).\n\n## Lottie background (Hero)\n\nWhen Hero uses `background.type === \"lottie\"`, the library renders a placeholder with `data-landing-bg=\"lottie\"`. Add **LottieInjector** once in your client layout so the player is injected: `import { LottieInjector } from \"@duytran7/landing-components/lottie\"` and render `<LottieInjector />` in the root layout (client).\n\n## Mobile hamburger nav\n\n`LandingPage` always uses the default `Nav` (desktop layout). For nav with `mobile.menu === \"hamburger\"`, render the page from a client component that uses `NavWithMobile` from `@duytran7/landing-components/nav-mobile` for the nav section. See [packages/components README](../components/README.md).\n\n[Monorepo](https://github.com/Tran-Duc-Duy/duytran7#readme) · [Schema](../../docs/SCHEMA.md) · [Components](../../docs/COMPONENTS.md)\n","readmeFilename":"README.md"}