"use client"; import { motion } from "framer-motion"; import { Play } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Card } from "@/components/ui/card"; import { Dialog, DialogContent, DialogDescription, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { useIsMobile } from "@/hooks/use-mobile"; import { cn } from "@/lib/utils"; interface Feature313Props { className?: string; imageSrc: string; imageAlt: string; videoUrl?: string; videoCaption: string; videoSecondaryCaption: string; cards: { id: string; title: string; image: string; className?: string; }[]; } const Feature313 = ({ className, imageSrc = "/block-media/shadcnblocks/block/lummi/bw6.jpeg", imageAlt = "گزارش عملکرد", videoUrl = "/block-media/shadcnblocks/block/man-1.mp4", videoCaption = "داده پراکنده را به تصمیم تبدیل کنید", videoSecondaryCaption = "تحلیل داده", cards = [ { id: "growth", title: "گزارش زمان‌بندی‌شده", image: "/block-media/shadcnblocks/block/placeholder-2.svg", }, { id: "design", title: "تحلیل کوHORT", image: "/block-media/shadcnblocks/block/placeholder-3.svg", }, { id: "support", title: "مقایسه دوره‌ای", image: "/block-media/shadcnblocks/block/placeholder-4.svg", }, { id: "partnerships", title: "خروجی گزارش", image: "/block-media/shadcnblocks/block/placeholder-5.svg", }, ], }: Feature313Props) => { const getYouTubeVideoId = (url: string) => { const regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/; const match = url.match(regExp); return match && match[2].length === 11 ? match[2] : null; }; const youtubeId = videoUrl ? getYouTubeVideoId(videoUrl) : null; const isYouTube = !!youtubeId; const isMobile = useIsMobile(); return (
{cards.map((card, index) => (
{cards.map((_, circleIndex) => (
= circleIndex ? "bg-primary" : "bg-muted"} size-2 rounded-full`} /> ))}
{(index + 1).toLocaleString("fa-IR").padStart(2, "۰")}
{card.title}

{card.title}

))}

{videoCaption}

{videoSecondaryCaption}

{videoCaption} {videoSecondaryCaption} {videoCaption}
{isYouTube ? (