diff --git a/src/components/sections/metrics/MetricCardSeven.tsx b/src/components/sections/metrics/MetricCardSeven.tsx
index c84cd5d..f61d0da 100644
--- a/src/components/sections/metrics/MetricCardSeven.tsx
+++ b/src/components/sections/metrics/MetricCardSeven.tsx
@@ -1,11 +1,194 @@
-import { useCardAnimation } from '@/components/cardStack/CardStack';
+"use client";
-export function MetricCardSeven() {
- const { animate } = useCardAnimation();
+import { memo } from "react";
+import CardStack from "@/components/cardStack/CardStack";
+import PricingFeatureList from "@/components/shared/PricingFeatureList";
+import { cls, shouldUseInvertedText } from "@/lib/utils";
+import { useTheme } from "@/providers/themeProvider/ThemeProvider";
+import type { LucideIcon } from "lucide-react";
+import type { ButtonConfig, CardAnimationTypeWith3D, TitleSegment, ButtonAnimationType } from "@/components/cardStack/types";
+import type { TextboxLayout, InvertedBackground } from "@/providers/themeProvider/config/constants";
- return (
-
-
-
- );
+type Metric = {
+ id: string;
+ value: string;
+ title: string;
+ items: string[];
+};
+
+interface MetricCardSevenProps {
+ metrics: Metric[];
+ carouselMode?: "auto" | "buttons";
+ 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;
+ valueClassName?: string;
+ metricTitleClassName?: string;
+ featuresClassName?: string;
+ featureItemClassName?: string;
+ gridClassName?: string;
+ carouselClassName?: string;
+ controlsClassName?: string;
+ textBoxClassName?: string;
+ textBoxTagClassName?: string;
+ textBoxButtonContainerClassName?: string;
+ textBoxButtonClassName?: string;
+ textBoxButtonTextClassName?: string;
}
+
+interface MetricCardItemProps {
+ metric: Metric;
+ shouldUseLightText: boolean;
+ cardClassName?: string;
+ valueClassName?: string;
+ metricTitleClassName?: string;
+ featuresClassName?: string;
+ featureItemClassName?: string;
+}
+
+const MetricCardItem = memo(({
+ metric,
+ shouldUseLightText,
+ cardClassName = "",
+ valueClassName = "",
+ metricTitleClassName = "",
+ featuresClassName = "",
+ featureItemClassName = "",
+}: MetricCardItemProps) => {
+ return (
+
+
+
+ {metric.value}
+
+
+ {metric.title}
+
+
+
+ {metric.items.length > 0 && (
+
+ )}
+
+
+ );
+});
+
+MetricCardItem.displayName = "MetricCardItem";
+
+const MetricCardSeven = ({
+ metrics,
+ carouselMode = "buttons",
+ uniformGridCustomHeightClasses,
+ animationType,
+ title,
+ titleSegments,
+ description,
+ tag,
+ tagIcon,
+ tagAnimation,
+ buttons,
+ buttonAnimation,
+ textboxLayout,
+ useInvertedBackground,
+ ariaLabel = "Metrics section",
+ className = "",
+ containerClassName = "",
+ cardClassName = "",
+ textBoxTitleClassName = "",
+ textBoxTitleImageWrapperClassName = "",
+ textBoxTitleImageClassName = "",
+ textBoxDescriptionClassName = "",
+ valueClassName = "",
+ metricTitleClassName = "",
+ featuresClassName = "",
+ featureItemClassName = "",
+ gridClassName = "",
+ carouselClassName = "",
+ controlsClassName = "",
+ textBoxClassName = "",
+ textBoxTagClassName = "",
+ textBoxButtonContainerClassName = "",
+ textBoxButtonClassName = "",
+ textBoxButtonTextClassName = "",
+}: MetricCardSevenProps) => {
+ const theme = useTheme();
+ const shouldUseLightText = shouldUseInvertedText(useInvertedBackground, theme.cardStyle);
+
+ const customUniformHeight = uniformGridCustomHeightClasses || "min-h-70 2xl:min-h-80";
+
+ return (
+
+ {metrics.map((metric, index) => (
+
+ ))}
+
+ );
+};
+
+MetricCardSeven.displayName = "MetricCardSeven";
+
+export default MetricCardSeven;