scalesite/app/services/page.tsx
bast1qn 98552163a8 Initial ScaleSite Next.js implementation
Complete frontend implementation with:
- Next.js 16 with App Router and TypeScript
- Tailwind CSS v4 with custom violet theme
- shadcn/ui components with Lucide React icons
- Landing page with hero, services, pricing, testimonials, FAQ
- Service selection page with toggle
- Login/Register pages with social auth UI
- Multi-step checkout flow
- Client dashboard with stats, projects, support tickets
- Billing page with subscription, payment methods, invoices
- All mock data and TypeScript types

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-01 21:42:48 +01:00

83 lines
2.8 KiB
TypeScript

'use client'
import { useState, useMemo } from 'react'
import { MarketingLayout } from '@/components/layouts/marketing-layout'
import { ServiceTypeToggle } from '@/components/services/service-type-toggle'
import { ProgressStepper } from '@/components/services/progress-stepper'
import { PricingCard } from '@/components/marketing/pricing-card'
import { TrustBadges } from '@/components/services/trust-badges'
import { getPricingPlansByServiceType, type ServiceType } from '@/lib/mock-data'
import { Button } from '@/components/ui/button'
import Link from 'next/link'
export default function ServicesPage() {
const [serviceType, setServiceType] = useState<ServiceType>('web-design')
const pricingPlans = useMemo(
() => getPricingPlansByServiceType(serviceType),
[serviceType]
)
return (
<MarketingLayout>
<section className="w-full py-20 min-h-screen">
<div className="w-full max-w-[1280px] mx-auto px-4 md:px-10">
{/* Progress Stepper */}
<ProgressStepper
currentStep={2}
totalSteps={4}
stepLabel="Choose Your Plan"
/>
{/* Service Type Toggle */}
<ServiceTypeToggle
defaultValue="web-design"
onChange={setServiceType}
/>
{/* Header */}
<div className="text-center max-w-2xl mx-auto mb-12">
<h1 className="text-3xl md:text-5xl font-bold text-foreground mb-4">
{serviceType === 'web-design' ? 'Web Design Packages' : 'AI Automation Packages'}
</h1>
<p className="text-muted-foreground text-lg">
{serviceType === 'web-design'
? 'Professional websites built to convert visitors into customers. Choose the package that fits your needs.'
: 'Intelligent automation solutions that save time and boost efficiency. Start automating today.'}
</p>
</div>
{/* Pricing Cards */}
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 max-w-6xl mx-auto mb-12">
{pricingPlans.map((plan) => (
<PricingCard
key={plan.id}
tier={plan.tier}
price={plan.price}
currency={plan.currency}
features={plan.features}
popular={plan.popular}
planId={plan.id}
/>
))}
</div>
{/* Trust Badges */}
<TrustBadges />
{/* Back Button */}
<div className="flex justify-center mt-12">
<Button
variant="outline"
asChild
className="bg-card border border-border hover:border-primary text-foreground"
>
<Link href="/"> Back to Home</Link>
</Button>
</div>
</div>
</section>
</MarketingLayout>
)
}