59 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { motion } from 'framer-motion'
 | 
						|
import { Container } from '../../components/Container'
 | 
						|
 | 
						|
const galleryItems = [
 | 
						|
  { text: 'Navigate and interact with any web interface', image: '/images/gallery/interface.jpg' },
 | 
						|
  { text: 'Process documents across all formats', image: '/images/gallery/docs.jpg' },
 | 
						|
  { text: 'Execute multi-step workflows autonomously', image: '/images/gallery/flow.jpg' },
 | 
						|
  { text: 'Manage calendars, emails, and tasks', image: '/images/gallery/calendar.jpg' },
 | 
						|
  { text: 'Perform deep semantic search across all data sources', image: '/images/gallery/data.jpg' },
 | 
						|
  { text: 'Identify patterns in complex datasets', image: '/images/gallery/datasets.jpg' },
 | 
						|
]
 | 
						|
 | 
						|
export function GallerySection() {
 | 
						|
  return (
 | 
						|
    <section className="bg-gray-50 py-20 lg:py-32">
 | 
						|
      <Container>
 | 
						|
        <motion.div
 | 
						|
          initial={{ opacity: 0, y: 20 }}
 | 
						|
          whileInView={{ opacity: 1, y: 0 }}
 | 
						|
          viewport={{ once: true }}
 | 
						|
          transition={{ duration: 0.8 }}
 | 
						|
          className="mx-auto max-w-3xl text-center mb-16"
 | 
						|
        >
 | 
						|
          <h2 className="text-3xl lg:text-4xl font-medium tracking-tight text-gray-900">
 | 
						|
            Agents with Endless Possibilities.
 | 
						|
          </h2>
 | 
						|
          <p className="mt-6 text-lg text-gray-600">
 | 
						|
            Your private agent coordinates a team of specialists that spin up on demand, collaborate across your world, and deliver end-to-end results. Many agents, one intelligence—yours.
 | 
						|
          </p>
 | 
						|
        </motion.div>
 | 
						|
 | 
						|
        <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
 | 
						|
          {galleryItems.map((item, index) => (
 | 
						|
            <motion.div
 | 
						|
              key={index}
 | 
						|
              initial={{ opacity: 0, y: 20 }}
 | 
						|
              whileInView={{ opacity: 1, y: 0 }}
 | 
						|
              viewport={{ once: true }}
 | 
						|
              transition={{ duration: 0.5, delay: index * 0.1 }}
 | 
						|
              className="group relative overflow-hidden rounded-2xl bg-white border border-gray-200 hover:border-cyan-500 hover:shadow-lg transition-all duration-300"
 | 
						|
            >
 | 
						|
              <div className="aspect-video overflow-hidden">
 | 
						|
                <img
 | 
						|
                  src={item.image}
 | 
						|
                  alt={item.text}
 | 
						|
                  className="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
 | 
						|
                />
 | 
						|
              </div>
 | 
						|
              <div className="p-6">
 | 
						|
                <p className="text-sm font-medium text-gray-900">{item.text}</p>
 | 
						|
              </div>
 | 
						|
            </motion.div>
 | 
						|
          ))}
 | 
						|
        </div>
 | 
						|
      </Container>
 | 
						|
    </section>
 | 
						|
  )
 | 
						|
}
 |