import { Kanit } from 'next/font/google';
import Image from 'next/image';
import Link from 'next/link';

import { Button } from '@gib/ui';

const kanitSans = Kanit({
  subsets: ['latin'],
  weight: ['400', '500', '600', '700'],
});

const highlights = ['TypeScript', 'Self-Hosted', 'Real-time', 'Auth Included'];

export const Hero = () => (
  <section className='container mx-auto px-4 py-24 md:py-32 lg:py-40'>
    <div className='mx-auto flex max-w-5xl flex-col items-center gap-8 text-center'>
      <div className='border-border/40 bg-muted/50 inline-flex items-center rounded-full border px-3 py-1 text-sm font-medium'>
        <span className='mr-2'>🚀</span>
        <span>Production-ready monorepo template</span>
      </div>

      <h1 className='from-foreground to-foreground/70 bg-linear-to-br bg-clip-text text-4xl font-bold tracking-tight text-transparent sm:text-5xl md:text-6xl lg:text-7xl'>
        Build Full-Stack Apps with{' '}
        <span
          className={`${kanitSans.className} to-accent-foreground bg-linear-to-r from-[#281A65] via-[#363354] bg-clip-text text-transparent sm:text-6xl lg:text-7xl xl:text-8xl dark:from-[#bec8e6] dark:via-[#F0EEE4] dark:to-[#FFF8E7]`}
        >
          convex monorepo
        </span>
      </h1>

      <p className='text-muted-foreground max-w-2xl text-lg md:text-xl'>
        A Turborepo starter with Next.js, Expo, and self-hosted Convex. Ship web
        and mobile apps faster with shared code, type-safe backend, and complete
        control over your infrastructure.
      </p>

      <div className='flex flex-col gap-3 sm:flex-row'>
        <Button size='lg' variant='outline' asChild>
          <Link
            href='https://git.gbrown.org/gib/convex-monorepo'
            target='_blank'
            rel='noopener noreferrer'
          >
            <Image
              src='/misc/gitea/gitea.svg'
              alt='Gitea'
              width={20}
              height={20}
            />
            View Source Code
          </Link>
        </Button>
      </div>

      <div className='text-muted-foreground mt-8 flex flex-wrap items-center justify-center gap-6 text-sm'>
        {highlights.map((highlight) => (
          <div key={highlight} className='flex items-center gap-2'>
            <svg
              className='h-5 w-5 text-green-500'
              fill='none'
              viewBox='0 0 24 24'
              stroke='currentColor'
            >
              <path
                strokeLinecap='round'
                strokeLinejoin='round'
                strokeWidth={2}
                d='M5 13l4 4L19 7'
              />
            </svg>
            <span>{highlight}</span>
          </div>
        ))}
      </div>
    </div>
  </section>
);
