{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "landing-page", "type": "registry:block", "title": "Landing Page", "description": "A comprehensive landing page with hero, pricing, about, and contact sections.", "dependencies": [ "@icons-pack/react-simple-icons", "@number-flow/react", "media-chrome", "react-fast-marquee" ], "registryDependencies": [ "button", "card", "badge", "tabs" ], "files": [ { "path": "registry/new-york/blocks/landing-page/landing-page.tsx", "content": "\"use client\"\n\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\nimport { useEffect, useState } from 'react';\n\nimport {\n SiApple,\n SiFacebook,\n SiGithub,\n SiGoogle,\n SiInstagram,\n SiX,\n SiYoutube,\n} from '@icons-pack/react-simple-icons';\nimport {\n Announcement,\n AnnouncementTag,\n AnnouncementTitle,\n} from '@/components/ui/announcement';\nimport {\n Marquee,\n MarqueeContent,\n MarqueeFade,\n MarqueeItem,\n} from '@/components/ui/marquee';\nimport {\n VideoPlayer,\n VideoPlayerContent,\n VideoPlayerControlBar,\n VideoPlayerMuteButton,\n VideoPlayerPlayButton,\n VideoPlayerSeekBackwardButton,\n VideoPlayerSeekForwardButton,\n VideoPlayerTimeDisplay,\n VideoPlayerTimeRange,\n VideoPlayerVolumeRange,\n} from '@/components/ui/video-player';\nimport NumberFlow from '@number-flow/react';\nimport { Badge } from '@/components/ui/badge';\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from '@/components/ui/card';\nimport { ArrowRight, BadgeCheck, Mail, Phone, MapPin, Send } from 'lucide-react';\nimport { Tabs, TabsList, TabsTrigger } from '@/components/ui/tabs';\n\ninterface FloatingNavProps {\n className?: string;\n}\n\nconst navItems = [\n { label: 'Hero', href: '#hero' },\n { label: 'Pricing', href: '#pricing' },\n { label: 'About', href: '#about' },\n { label: 'Contact', href: '#contact' },\n];\n\nconst logos = [\n {\n name: 'GitHub',\n icon: SiGithub,\n url: 'https://github.com',\n },\n {\n name: 'Facebook',\n icon: SiFacebook,\n url: 'https://facebook.com',\n },\n {\n name: 'Google',\n icon: SiGoogle,\n url: 'https://google.com',\n },\n {\n name: 'X',\n icon: SiX,\n url: 'https://x.com',\n },\n {\n name: 'Apple',\n icon: SiApple,\n url: 'https://apple.com',\n },\n {\n name: 'Instagram',\n icon: SiInstagram,\n url: 'https://instagram.com',\n },\n {\n name: 'YouTube',\n icon: SiYoutube,\n url: 'https://youtube.com',\n },\n];\n\nconst plans = [\n {\n id: 'hobby',\n name: 'Hobby',\n price: {\n monthly: 'Free forever',\n yearly: 'Free forever',\n },\n description:\n 'The perfect starting place for your web app or personal project.',\n features: [\n '50 API calls / month',\n '60 second checks',\n 'Single-user account',\n '5 monitors',\n 'Basic email support',\n ],\n cta: 'Get started for free',\n },\n {\n id: 'pro',\n name: 'Pro',\n price: {\n monthly: 90,\n yearly: 75,\n },\n description: 'Everything you need to build and scale your business.',\n features: [\n 'Unlimited API calls',\n '30 second checks',\n 'Multi-user account',\n '10 monitors',\n 'Priority email support',\n ],\n cta: 'Subscribe to Pro',\n popular: true,\n },\n {\n id: 'enterprise',\n name: 'Enterprise',\n price: {\n monthly: 'Get in touch for pricing',\n yearly: 'Get in touch for pricing',\n },\n description: 'Critical security, performance, observability and support.',\n features: [\n 'You can DDOS our API.',\n 'Nano-second checks.',\n 'Invite your extended family.',\n 'Unlimited monitors.',\n \"We'll sit on your desk.\",\n ],\n cta: 'Contact us',\n },\n];\n\n\nconst FloatingNav = ({ className }: FloatingNavProps) => {\n const [isScrolled, setIsScrolled] = useState(false);\n const [activeSection, setActiveSection] = useState('hero');\n\n useEffect(() => {\n const handleScroll = () => {\n setIsScrolled(window.scrollY > 50);\n \n // Determine active section based on scroll position\n const sections = navItems.map(item => item.href.substring(1));\n const scrollPosition = window.scrollY + 100;\n \n for (const section of sections) {\n const element = document.getElementById(section);\n if (element) {\n const { offsetTop, offsetHeight } = element;\n if (scrollPosition >= offsetTop && scrollPosition < offsetTop + offsetHeight) {\n setActiveSection(section);\n break;\n }\n }\n }\n };\n\n window.addEventListener('scroll', handleScroll);\n handleScroll(); // Call once to set initial state\n \n return () => window.removeEventListener('scroll', handleScroll);\n }, []);\n\n const scrollToSection = (href: string) => {\n const element = document.getElementById(href.substring(1));\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n };\n\n return (\n \n
\n {navItems.map((item) => (\n scrollToSection(item.href)}\n className=\"text-sm font-medium transition-colors\"\n >\n {item.label}\n \n ))}\n
\n \n );\n};\n\n// Hero Section Component\nconst HeroSection = () => (\n
\n
\n \n \n New\n Revolutionary SaaS Dashboard Platform\n \n \n

\n Build. Scale. Succeed.\n

\n

\n Transform your business with our cutting-edge dashboard platform. \n Streamline operations, analyze data, and accelerate growth with \n beautiful, responsive components designed for the modern web.\n

\n
\n \n \n
\n
\n
\n \n No credit card required\n
\n
\n \n 14-day free trial\n
\n
\n \n Cancel anytime\n
\n
\n
\n
\n

\n Trusted by teams at leading companies worldwide\n

\n
\n \n \n \n \n {logos.map((logo) => (\n \n \n \n \n \n ))}\n \n \n
\n
\n
\n
10k+
\n
Active Users
\n
\n
\n
99.9%
\n
Uptime
\n
\n
\n
24/7
\n
Support
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n);\n\n// Pricing Section Component\nconst PricingSection = () => {\n const [frequency, setFrequency] = useState('monthly');\n \n return (\n
\n
\n

\n Simple, transparent pricing\n

\n

\n Managing a business is hard enough, so why not make your life easier?\n Our pricing plans are simple, transparent and scale with you.\n

\n \n \n Monthly\n \n Yearly\n 20% off\n \n \n \n
\n {plans.map((plan) => (\n \n {plan.popular && (\n \n Popular\n \n )}\n \n \n {plan.name}\n \n \n

{plan.description}

\n {typeof plan.price[frequency as keyof typeof plan.price] ===\n 'number' ? (\n \n ) : (\n \n {plan.price[frequency as keyof typeof plan.price]}.\n \n )}\n
\n
\n \n {plan.features.map((feature, index) => (\n \n \n {feature}\n
\n ))}\n \n \n \n {plan.cta}\n \n \n \n \n ))}\n
\n \n
\n );\n};\n\n// About Section Component\nconst AboutSection = () => (\n
\n
\n

\n About Our Platform\n

\n
\n
\n

Our Mission

\n

\n We're dedicated to providing developers with the best tools and components\n to build exceptional web applications. Our platform combines modern design\n principles with cutting-edge technology.\n

\n

Why Choose Us?

\n
    \n
  • \n \n Modern, responsive design components\n
  • \n
  • \n \n Comprehensive documentation\n
  • \n
  • \n \n Active community support\n
  • \n
  • \n \n Regular updates and improvements\n
  • \n
\n
\n
\n

Get Started Today

\n

\n Join thousands of developers who are already building amazing applications\n with our platform.\n

\n \n
\n
\n
\n
\n);\n\n// Contact Section Component\nconst ContactSection = () => (\n
\n
\n
\n

\n Let's Build Something Amazing Together\n

\n

\n Ready to transform your business? Get in touch with our team and let's discuss \n how we can help you achieve your goals.\n

\n
\n \n
\n {/* Contact Information */}\n
\n
\n

Get in Touch

\n
\n
\n
\n \n
\n
\n

Email Us

\n

hello@yourcompany.com

\n

We'll respond within 24 hours

\n
\n
\n \n
\n
\n \n
\n
\n

Call Us

\n

+1 (555) 123-4567

\n

Mon-Fri 9AM-6PM EST

\n
\n
\n \n
\n
\n \n
\n
\n

Visit Us

\n

123 Innovation Street
Tech Valley, CA 94000

\n

Open office hours

\n
\n
\n
\n
\n \n
\n

Why Work With Us?

\n
    \n
  • \n \n Expert team with 10+ years experience\n
  • \n
  • \n \n Proven track record with 500+ projects\n
  • \n
  • \n \n 24/7 dedicated support\n
  • \n
  • \n \n Money-back guarantee\n
  • \n
\n
\n
\n \n {/* Contact Form */}\n \n \n Send us a Message\n \n Fill out the form below and we'll get back to you as soon as possible.\n \n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n