"use client"; import React, { useState, useEffect } from 'react'; import { motion } from 'framer-motion'; const VectorNoCode = () => { const [step, setStep] = useState(0); const nodes = [ { icon: ( ), label: "Input" }, { icon: ( ), label: "Process" }, { icon: ( ), label: "Output" } ]; useEffect(() => { const timer = setTimeout(() => { setStep((prev) => (prev + 1) % 3); }, 3000); return () => clearTimeout(timer); }, [step]); return (
{nodes.map((node, i) => ( {/* Node container */} = i ? 1.1 : 1, opacity: step >= i ? 1 : 0.5, }} transition={{ duration: 0.5, type: "spring", }} > {/* Node */} = i ? "rgba(139, 92, 246, 0.4)" : "rgba(139, 92, 246, 0.2)" }} transition={{ duration: 0.5 }} > {node.icon} {/* Label */} = i ? 1 : 0.5 }} > {node.label} {/* Connection line */} {i < 2 && ( i ? 1 : 0, }} transition={{ duration: 1, ease: "easeInOut" }} > {/* Moving dot */} i ? [0, 200] : 0, opacity: step > i ? [1, 0] : 0, scale: step > i ? [1, 1.5, 1] : 1 }} transition={{ duration: 1, ease: "easeInOut" }} /> )} ))}
); }; const VectorCreativeSuite = () => (
{/* Editor Panel */}
{[...Array(5)].map((_, i) => ( ))}
{/* Preview Panel */}
Typing Image
); const VectorCommunity = () => { // Reduced number of points const gridPoints = Array.from({ length: 15 }, (_, i) => ({ id: i, x: (i % 5) * 100 + 80, y: Math.floor(i / 5) * 100 + 80, })); return (
{/* Connection lines */} {gridPoints.map((point, i) => ( gridPoints.slice(i + 1).map((target, j) => { const distance = Math.sqrt( Math.pow(point.x - target.x, 2) + Math.pow(point.y - target.y, 2) ); // Increased connection distance for wider coverage if (distance < 240) { // Increased distance to maintain connections return ( ); } return null; }) ))} {/* User icons */} {gridPoints.map((point, i) => (
))} {/* Central hub - made larger */}
); }; const VectorMonetization = () => { const subscriptionTiers = [ { name: "Started", price: "29", color: "from-blue-500/30 to-purple-500/30" }, { name: "Professional", price: "69", color: "from-purple-500/30 to-pink-500/30" }, { name: "Business", price: "349", color: "from-pink-500/30 to-orange-500/30" } ]; return (
{/* Background rings */} {[...Array(3)].map((_, i) => ( ))} {/* Subscription tiers */} {subscriptionTiers.map((tier, i) => ( {tier.name} £{tier.price} per month ))} {/* Floating elements */} {[...Array(5)].map((_, i) => (
))}
); }; const defaultFeaturesData = [ { title: "No-Code AI Builder", description: "Design, test, and deploy AI agents effortlessly. Create powerful AI applications without any coding knowledge required.", vector: , }, { title: "Creative Suite", description: "Access powerful forms, video editing, and content creation tools to bring your vision to life. Transform your ideas into polished, professional content.", vector: , }, { title: "Community & Marketplace", description: "Grow your audience on your own platform or join our marketplace to reach thousands of SMBs. Build and nurture your community while expanding your reach.", vector: , }, { title: "Subscription-Based Monetization", description: "Generate recurring revenue with our seamless subscription integration. Turn your AI solutions into a sustainable business model.", vector: , }, ]; interface Feature { title: string; description: string; vector: React.ReactNode; } export default function Features({ featuresData }: { featuresData?: Feature[] }) { const dataToUse = featuresData || defaultFeaturesData; return (
Everything You Need to Create, Manage, and Monetize Your AI Offerings
{/* Increased spacing between features */} {dataToUse.map((feature, index) => (

{feature.title}

{feature.description}

Learn More
{feature.vector}
))}
); }