diff --git a/src/app/page.tsx b/src/app/page.tsx
index fafe753..3067cd4 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -2,15 +2,17 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
-import HeroBillboard from '@/components/sections/hero/HeroBillboard';
-import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
-import FeatureCardTwentyFive from '@/components/sections/feature/FeatureCardTwentyFive';
-import MetricCardOne from '@/components/sections/metrics/MetricCardOne';
-import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne';
+import { HeroCarouselLogo } from '@/components/sections/hero/HeroCarouselLogo';
+import { TextImageAbout } from '@/components/sections/about/TextImageAbout';
+import { FeatureCardTwenty } from '@/components/sections/feature/FeatureCardTwenty';
+import MetricCardTwo from '@/components/sections/metrics/MetricCardTwo';
+import TestimonialCardTwo from '@/components/sections/testimonial/TestimonialCardTwo';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterSimple from '@/components/sections/footer/FooterSimple';
import Link from 'next/link';
import { Sparkles, CheckCircle, ArrowRight, Brain, Code, BookOpen, Users, Trophy, TrendingUp, Shield } from 'lucide-react';
+import TestimonialCardOne from "@/components/sections/testimonial/TestimonialCardOne";
+import HeroLogo from '@/components/sections/hero/HeroLogo';
export default function HomePage() {
return (
@@ -44,23 +46,23 @@ export default function HomePage() {
-
-
-
-
{
+ switch (buttonAnimation) {
+ case "slide-up":
+ return "animate-slide-up";
+ case "fade-in":
+ return "animate-fade-in";
+ default:
+ return "";
+ }
+ };
+
+ return (
+
+
+
+ {/* Text Content */}
+
+
+
+ {title}
+
+
+ {description.map((paragraph, index) => (
+
+ {paragraph}
+
+ ))}
+
+
+
+ {/* Buttons */}
+
+
+
+ {/* Image */}
+
+
+
+

+
+
+
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/src/components/sections/feature/FeatureCardTwenty.tsx b/src/components/sections/feature/FeatureCardTwenty.tsx
new file mode 100644
index 0000000..5e0f57f
--- /dev/null
+++ b/src/components/sections/feature/FeatureCardTwenty.tsx
@@ -0,0 +1,207 @@
+'use client';
+
+import React, { useState, useEffect } from 'react';
+import { LucideIcon } from 'lucide-react';
+
+interface MediaItem {
+ imageSrc: string;
+ imageAlt: string;
+}
+
+interface Feature {
+ title: string;
+ description: string;
+ icon: LucideIcon;
+ mediaItems: MediaItem[];
+}
+
+interface FeatureCardTwentyProps {
+ title: string;
+ description: string;
+ animationType?: 'slide-up' | 'fade-in' | 'slide-left';
+ textboxLayout?: 'default' | 'centered' | 'compact';
+ useInvertedBackground?: boolean;
+ features: Feature[];
+}
+
+export function FeatureCardTwenty({
+ title,
+ description,
+ animationType = 'slide-up',
+ textboxLayout = 'default',
+ useInvertedBackground = false,
+ features,
+}: FeatureCardTwentyProps) {
+ const [activeFeatureIndex, setActiveFeatureIndex] = useState(0);
+ const [isVisible, setIsVisible] = useState(false);
+
+ useEffect(() => {
+ setIsVisible(true);
+ }, []);
+
+ const getAnimationClass = () => {
+ if (!isVisible) {
+ switch (animationType) {
+ case 'slide-up':
+ return 'opacity-0 translate-y-8';
+ case 'slide-left':
+ return 'opacity-0 -translate-x-8';
+ case 'fade-in':
+ default:
+ return 'opacity-0';
+ }
+ }
+
+ switch (animationType) {
+ case 'slide-up':
+ return 'opacity-100 translate-y-0 transition-all duration-700 ease-out';
+ case 'slide-left':
+ return 'opacity-100 translate-x-0 transition-all duration-700 ease-out';
+ case 'fade-in':
+ default:
+ return 'opacity-100 transition-opacity duration-700 ease-out';
+ }
+ };
+
+ const getTextboxLayoutClass = () => {
+ switch (textboxLayout) {
+ case 'centered':
+ return 'text-center';
+ case 'compact':
+ return 'text-left max-w-2xl';
+ case 'default':
+ default:
+ return 'text-left';
+ }
+ };
+
+ const bgClass = useInvertedBackground ? 'bg-slate-900 text-white' : 'bg-white text-slate-900';
+ const activeFeature = features[activeFeatureIndex];
+ const IconComponent = activeFeature.icon;
+
+ return (
+
+
+ {/* Header Section */}
+
+
+ {title}
+
+
+ {description}
+
+
+
+ {/* Features Grid and Detail View */}
+
+ {/* Feature Cards */}
+
+ {features.map((feature, index) => {
+ const CardIcon = feature.icon;
+ const isActive = index === activeFeatureIndex;
+
+ return (
+
+ );
+ })}
+
+
+ {/* Active Feature Detail */}
+
+
+ {/* Feature Header */}
+
+
+
+
+
+
+ {activeFeature.title}
+
+
+ {activeFeature.description}
+
+
+
+
+ {/* Media Gallery */}
+
+ {activeFeature.mediaItems.map((media, index) => (
+
+

+
+ ))}
+
+
+ {/* Indicator Dots */}
+
+ {features.map((_, index) => (
+
+
+
+
+
+
+
+
+ );
+}
\ No newline at end of file