diff --git a/src/components/sections/features/FeaturesBento.tsx b/src/components/sections/features/FeaturesBento.tsx index 0775b16..e69de29 100644 --- a/src/components/sections/features/FeaturesBento.tsx +++ b/src/components/sections/features/FeaturesBento.tsx @@ -1,103 +0,0 @@ -import Button from "@/components/ui/Button"; -import TextAnimation from "@/components/ui/TextAnimation"; -import GridOrCarousel from "@/components/ui/GridOrCarousel"; -import ScrollReveal from "@/components/ui/ScrollReveal"; -import InfoCardMarquee from "@/components/ui/InfoCardMarquee"; -import TiltedStackCards from "@/components/ui/TiltedStackCards"; -import AnimatedBarChart from "@/components/ui/AnimatedBarChart"; -import OrbitingIcons from "@/components/ui/OrbitingIcons"; -import IconTextMarquee from "@/components/ui/IconTextMarquee"; -import ChatMarquee from "@/components/ui/ChatMarquee"; -import ChecklistTimeline from "@/components/ui/ChecklistTimeline"; -import MediaStack from "@/components/ui/MediaStack"; -import type { LucideIcon } from "lucide-react"; - -type IconInput = string | LucideIcon; - -type FeatureCard = { title: string; description: string } & ( - | { bentoComponent: "info-card-marquee"; infoCards: { icon: IconInput; label: string; value: string }[] } - | { bentoComponent: "tilted-stack-cards"; stackCards: [{ icon: IconInput; title: string; subtitle: string; detail: string }, { icon: IconInput; title: string; subtitle: string; detail: string }, { icon: IconInput; title: string; subtitle: string; detail: string }] } - | { bentoComponent: "animated-bar-chart" } - | { bentoComponent: "orbiting-icons"; centerIcon: IconInput; orbitIcons: IconInput[] } - | { bentoComponent: "icon-text-marquee"; centerIcon: IconInput; marqueeTexts: string[] } - | { bentoComponent: "chat-marquee"; aiIcon: IconInput; userIcon: IconInput; exchanges: { userMessage: string; aiResponse: string }[]; placeholder: string } - | { bentoComponent: "checklist-timeline"; heading: string; subheading: string; checklistItems: [{ label: string; detail: string }, { label: string; detail: string }, { label: string; detail: string }]; completedLabel: string } - | { bentoComponent: "media-stack"; mediaItems: [{ imageSrc?: string; videoSrc?: string }, { imageSrc?: string; videoSrc?: string }, { imageSrc?: string; videoSrc?: string }] } -); - -const getBentoComponent = (feature: FeatureCard) => { - switch (feature.bentoComponent) { - case "info-card-marquee": return ; - case "tilted-stack-cards": return ; - case "animated-bar-chart": return ; - case "orbiting-icons": return ; - case "icon-text-marquee": return ; - case "chat-marquee": return ; - case "checklist-timeline": return ; - case "media-stack": return ; - } -}; - -const FeaturesBento = ({ - tag, - title, - description, - primaryButton, - secondaryButton, - features, -}: { - tag: string; - title: string; - description: string; - primaryButton?: { text: string; href: string }; - secondaryButton?: { text: string; href: string }; - features: FeatureCard[]; -}) => ( -
-
-
-
-

{tag}

-
- - - - - - {(primaryButton || secondaryButton) && ( -
- {primaryButton &&
- )} -
- - - {features.map((feature) => ( -
-
{getBentoComponent(feature)}
-
-

{feature.title}

-

{feature.description}

-
-
- ))} -
-
-
-
-); - -export default FeaturesBento;