"use client"; import TextBox from "@/components/Textbox"; import MediaContent from "@/components/shared/MediaContent"; import HeroBackgrounds, { type HeroBackgroundVariantProps } from "@/components/background/HeroBackgrounds"; import { cls } from "@/lib/utils"; import { Star } from "lucide-react"; import type { LucideIcon } from "lucide-react"; import type { ButtonConfig } from "@/types/button"; type HeroSplitDualMediaBackgroundProps = Extract< HeroBackgroundVariantProps, | { variant: "plain" } | { variant: "animated-grid" } | { variant: "canvas-reveal" } | { variant: "cell-wave" } | { variant: "downward-rays-animated" } | { variant: "downward-rays-animated-grid" } | { variant: "downward-rays-static" } | { variant: "downward-rays-static-grid" } | { variant: "glowing-orb" } | { variant: "gradient-bars" } | { variant: "radial-gradient" } | { variant: "rotated-rays-animated" } | { variant: "rotated-rays-animated-grid" } | { variant: "rotated-rays-static" } | { variant: "rotated-rays-static-grid" } | { variant: "sparkles-gradient" } >; interface MediaItem { imageSrc?: string; videoSrc?: string; imageAlt?: string; videoAriaLabel?: string; } interface HeroSplitDualMediaProps { title: string; description: string; background: HeroSplitDualMediaBackgroundProps; tag: string; tagIcon?: LucideIcon; buttons?: ButtonConfig[]; mediaItems: [MediaItem, MediaItem]; rating: number; ratingText: string; ariaLabel?: string; className?: string; containerClassName?: string; textBoxClassName?: string; titleClassName?: string; descriptionClassName?: string; tagClassName?: string; buttonContainerClassName?: string; buttonClassName?: string; buttonTextClassName?: string; mediaWrapperClassName?: string; mediaItemClassName?: string; imageClassName?: string; ratingClassName?: string; ratingTextClassName?: string; } const HeroSplitDualMedia = ({ title, description, background, tag, tagIcon, buttons, mediaItems, rating, ratingText, ariaLabel = "Hero section", className = "", containerClassName = "", textBoxClassName = "", titleClassName = "", descriptionClassName = "", tagClassName = "", buttonContainerClassName = "", buttonClassName = "", buttonTextClassName = "", mediaWrapperClassName = "", mediaItemClassName = "", imageClassName = "", ratingClassName = "", ratingTextClassName = "", }: HeroSplitDualMediaProps) => { const mediaContent = (
{mediaItems.map((item, index) => (
))}
); const ratingElement = (
{Array.from({ length: rating }).map((_, index) => ( ))}

{ratingText}

); return (
{ratingElement}
{mediaContent}
); }; HeroSplitDualMedia.displayName = "HeroSplitDualMedia"; export default HeroSplitDualMedia;