diff --git a/src/components/sections/team/TeamCardSix.tsx b/src/components/sections/team/TeamCardSix.tsx
index 6224daf..3dee9e0 100644
--- a/src/components/sections/team/TeamCardSix.tsx
+++ b/src/components/sections/team/TeamCardSix.tsx
@@ -1,11 +1,200 @@
-import { useCardAnimation } from '@/components/cardStack/CardStack';
+"use client";
-export function TeamCardSix() {
- const { animate } = useCardAnimation();
+import { memo } from "react";
+import CardStack from "@/components/cardStack/CardStack";
+import MediaContent from "@/components/shared/MediaContent";
+import { cls } from "@/lib/utils";
+import type { LucideIcon } from "lucide-react";
+import type { ButtonConfig, GridVariant, CardAnimationTypeWith3D, TitleSegment, ButtonAnimationType } from "@/components/cardStack/types";
+import type { TextboxLayout, InvertedBackground } from "@/providers/themeProvider/config/constants";
- return (
-
-
-
- );
+type TeamCardSixGridVariant = Exclude;
+
+const MASK_GRADIENT = "linear-gradient(to bottom, transparent, black 60%)";
+
+type TeamMember = {
+ id: string;
+ name: string;
+ role: string;
+ imageSrc?: string;
+ videoSrc?: string;
+ imageAlt?: string;
+ videoAriaLabel?: string;
+};
+
+interface TeamCardSixProps {
+ members: TeamMember[];
+ carouselMode?: "auto" | "buttons";
+ gridVariant: TeamCardSixGridVariant;
+ uniformGridCustomHeightClasses?: string;
+ animationType: CardAnimationTypeWith3D;
+ title: string;
+ titleSegments?: TitleSegment[];
+ description: string;
+ tag?: string;
+ tagIcon?: LucideIcon;
+ tagAnimation?: ButtonAnimationType;
+ buttons?: ButtonConfig[];
+ buttonAnimation?: ButtonAnimationType;
+ textboxLayout: TextboxLayout;
+ useInvertedBackground: InvertedBackground;
+ ariaLabel?: string;
+ className?: string;
+ containerClassName?: string;
+ cardClassName?: string;
+ textBoxTitleClassName?: string;
+ textBoxTitleImageWrapperClassName?: string;
+ textBoxTitleImageClassName?: string;
+ textBoxDescriptionClassName?: string;
+ imageClassName?: string;
+ overlayClassName?: string;
+ nameClassName?: string;
+ roleClassName?: string;
+ gridClassName?: string;
+ carouselClassName?: string;
+ controlsClassName?: string;
+ textBoxClassName?: string;
+ textBoxTagClassName?: string;
+ textBoxButtonContainerClassName?: string;
+ textBoxButtonClassName?: string;
+ textBoxButtonTextClassName?: string;
}
+
+interface TeamMemberCardProps {
+ member: TeamMember;
+ cardClassName?: string;
+ imageClassName?: string;
+ overlayClassName?: string;
+ nameClassName?: string;
+ roleClassName?: string;
+}
+
+const TeamMemberCard = memo(({
+ member,
+ cardClassName = "",
+ imageClassName = "",
+ overlayClassName = "",
+ nameClassName = "",
+ roleClassName = "",
+}: TeamMemberCardProps) => {
+ return (
+
+
+
+
+
+
+ {member.name}
+
+
+ {member.role}
+
+
+
+
+
+
+ );
+});
+
+TeamMemberCard.displayName = "TeamMemberCard";
+
+const TeamCardSix = ({
+ members,
+ carouselMode = "buttons",
+ gridVariant,
+ uniformGridCustomHeightClasses = "min-h-95 2xl:min-h-105",
+ animationType,
+ title,
+ titleSegments,
+ description,
+ tag,
+ tagIcon,
+ tagAnimation,
+ buttons,
+ buttonAnimation,
+ textboxLayout,
+ useInvertedBackground,
+ ariaLabel = "Team section",
+ className = "",
+ containerClassName = "",
+ cardClassName = "",
+ textBoxTitleClassName = "",
+ textBoxTitleImageWrapperClassName = "",
+ textBoxTitleImageClassName = "",
+ textBoxDescriptionClassName = "",
+ imageClassName = "",
+ overlayClassName = "",
+ nameClassName = "",
+ roleClassName = "",
+ gridClassName = "",
+ carouselClassName = "",
+ controlsClassName = "",
+ textBoxClassName = "",
+ textBoxTagClassName = "",
+ textBoxButtonContainerClassName = "",
+ textBoxButtonClassName = "",
+ textBoxButtonTextClassName = "",
+}: TeamCardSixProps) => {
+ return (
+
+ {members.map((member, index) => (
+
+ ))}
+
+ );
+};
+
+TeamCardSix.displayName = "TeamCardSix";
+
+export default TeamCardSix;
\ No newline at end of file