{"_id":"@duytran7/landing-components","_rev":"2-d9ac2006c353bd361589158eca99788e","name":"@duytran7/landing-components","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@duytran7/landing-components","version":"0.1.0","keywords":["landing","react","components","shadcn","tailwind","ui"],"license":"MIT","_id":"@duytran7/landing-components@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":"9f49578d1d7f0b5d0a766f05caf487d295282a63","tarball":"https://registry.npmjs.org/@duytran7/landing-components/-/landing-components-0.1.0.tgz","fileCount":9,"integrity":"sha512-ONwHDP1lG233OSrk+scOZ0TLg0HVedPBdVkhADMENmNcg7IeW+3kWTZX7EMI06Qt9cE+R+AWqHFnEneURL6Ejw==","signatures":[{"sig":"MEYCIQC31sLs29qGLQ3o/J0zPlnd83x2+5YNvIC75noqv6u5+QIhAL9SzZtPMgOyS3OQyjDeffqWHemdKrmJO/n5CE84Yxf5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408888},"main":"./dist/index.cjs","type":"module","_from":"file:duytran7-landing-components-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/090ae251de7b0ce2a472fe80d23d12ee/duytran7-landing-components-0.1.0.tgz","_integrity":"sha512-ONwHDP1lG233OSrk+scOZ0TLg0HVedPBdVkhADMENmNcg7IeW+3kWTZX7EMI06Qt9cE+R+AWqHFnEneURL6Ejw==","repository":{"url":"git+https://github.com/Tran-Duc-Duy/duytran7.git","type":"git","directory":"packages/components"},"_npmVersion":"10.8.2","description":"React section components (hero, nav, features, CTA, footer, etc.) and SectionRenderer. Shadcn-style, Tailwind, config-driven.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@duytran7/landing-core":"0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","react":"^19.0.0","react-dom":"^19.0.0","typescript":"~5.7.2","@types/react":"^19.0.6","@types/react-dom":"^19.0.2"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/landing-components_0.1.0_1772514168463_0.23646024447206382","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@duytran7/landing-components","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"},"./nav-mobile":{"types":"./dist/nav-mobile.d.ts","import":"./dist/nav-mobile.js","require":"./dist/nav-mobile.cjs"},"./lottie":{"types":"./dist/lottie.d.ts","import":"./dist/lottie.js","require":"./dist/lottie.cjs"},"./package.json":"./package.json"},"dependencies":{"@lottiefiles/react-lottie-player":"^3.6.0","@duytran7/landing-core":"0.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"devDependencies":{"@types/react":"^19.0.6","@types/react-dom":"^19.0.2","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/components"},"license":"MIT","keywords":["landing","react","components","shadcn","tailwind","ui"],"description":"React section components (hero, nav, features, CTA, footer, etc.) and SectionRenderer. Shadcn-style, Tailwind, config-driven.","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-components@0.1.1","bugs":{"url":"https://github.com/Tran-Duc-Duy/duytran7/issues"},"homepage":"https://github.com/Tran-Duc-Duy/duytran7#readme","_integrity":"sha512-mz+JPXucLjzQDQvcYKr4UdAv/f4Msy9P9j8+jgQJBABL3pPfCIUjiQjyx3YJDbvkua3xpbEgIHTx9tN6s1UuwA==","_resolved":"/tmp/0f2f02fcbf953e467e378c66d2841506/duytran7-landing-components-0.1.1.tgz","_from":"file:duytran7-landing-components-0.1.1.tgz","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-mz+JPXucLjzQDQvcYKr4UdAv/f4Msy9P9j8+jgQJBABL3pPfCIUjiQjyx3YJDbvkua3xpbEgIHTx9tN6s1UuwA==","shasum":"ecdeb5cc14a61a3b15691fc1a82ddc6cb3bae215","tarball":"https://registry.npmjs.org/@duytran7/landing-components/-/landing-components-0.1.1.tgz","fileCount":21,"unpackedSize":538268,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBiqRjjxGcJBVoeGIbXIQyNBi/XVc7oN2NFqGzAW9uLIAiEA014JthieJt4pWj+333LlGEZagHy/Pai5Y/kBle3aBig="}]},"_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-components_0.1.1_1773075198836_0.4312265801088875"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-03T05:02:48.383Z","modified":"2026-03-09T16:53:19.438Z","0.1.0":"2026-03-03T05:02:48.614Z","0.1.1":"2026-03-09T16:53:18.979Z"},"bugs":{"url":"https://github.com/Tran-Duc-Duy/duytran7/issues"},"license":"MIT","homepage":"https://github.com/Tran-Duc-Duy/duytran7#readme","keywords":["landing","react","components","shadcn","tailwind","ui"],"repository":{"type":"git","url":"git+https://github.com/Tran-Duc-Duy/duytran7.git","directory":"packages/components"},"description":"React section components (hero, nav, features, CTA, footer, etc.) and SectionRenderer. Shadcn-style, Tailwind, config-driven.","maintainers":[{"name":"tranduybthv","email":"tranduybthv@gmail.com"}],"readme":"# @duytran7/landing-components\n\nReact section components (hero, nav, features, stats, testimonials, pricing, FAQ, CTA, video-embed, countdown, trust-badges, footer, etc.) and `SectionRenderer`. Shadcn-style, Tailwind CSS, config-driven.\n\n## Install\n\n```bash\npnpm add @duytran7/landing-components @duytran7/landing-core\n```\n\nPeer dependencies: `react`, `react-dom`. Your app must use Tailwind CSS and the same CSS variables as the [demo app](https://github.com/Tran-Duc-Duy/duytran7/tree/main/apps/demo).\n\n## Usage\n\n```tsx\nimport { SectionRenderer } from \"@duytran7/landing-components\"\nimport type { LandingSection } from \"@duytran7/landing-core\"\n\nconst section: LandingSection = {\n  id: \"hero-1\",\n  type: \"hero\",\n  headline: \"Welcome\",\n  subheadline: \"Subheadline.\",\n  primaryCta: { label: \"Get started\", href: \"#\" },\n}\n\nexport default function Page() {\n  return <SectionRenderer section={section} />\n}\n```\n\n## Mobile nav (hamburger + sheet)\n\nFor `config.mobile?.menu === \"hamburger\"`, use **NavWithMobile** from a **client component** so the nav can toggle a sheet on small viewports:\n\n```tsx\n\"use client\"\n\nimport { SectionRenderer } from \"@duytran7/landing-components\"\nimport { NavWithMobile } from \"@duytran7/landing-components/nav-mobile\"\nimport type { LandingSection, NavSection } from \"@duytran7/landing-core\"\n\nfunction SectionOrNav({ section }: { section: LandingSection }) {\n  if (section.type === \"nav\" && section.mobile?.menu === \"hamburger\") {\n    return <NavWithMobile config={section as NavSection} />\n  }\n  return <SectionRenderer section={section} />\n}\n```\n\n## Lottie background (Hero)\n\nWhen Hero uses `background.type === \"lottie\"`, it renders a placeholder with `data-landing-bg=\"lottie\"`. Add **LottieInjector** from `@duytran7/landing-components/lottie` once in your app layout (client) so the Lottie player is injected into those placeholders. The package includes `@lottiefiles/react-lottie-player`.\n\n## Section types and primitives\n\nExported sections: Hero, Nav, Features, Stats, LogoCloud, Team, Testimonials, Pricing, Faq, Cta, Newsletter, Contact, Gallery, Banner, Comparison, Timeline, Map, BlogGrid, VideoEmbed, Countdown, TrustBadges, Footer.\n\nPrimitives: `Section`, `Container`, `Button`, `Card`, `cn`.\n\nSee [docs/COMPONENTS.md](../../docs/COMPONENTS.md), [docs/STATE-AND-RICH-UI.md](../../docs/STATE-AND-RICH-UI.md), and [monorepo README](https://github.com/Tran-Duc-Duy/duytran7#readme).\n","readmeFilename":"README.md"}