@djangocfg/ui-nextjs 2.1.103 → 2.1.104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +26 -30
- package/src/components/index.ts +2 -0
- package/src/components/ssr-pagination.tsx +2 -1
- package/src/hooks/index.ts +1 -6
- package/src/index.ts +2 -0
- package/src/theme/index.ts +2 -0
- package/dist/animations.cjs +0 -880
- package/dist/animations.cjs.map +0 -1
- package/dist/animations.d.mts +0 -36
- package/dist/animations.d.ts +0 -36
- package/dist/animations.mjs +0 -877
- package/dist/animations.mjs.map +0 -1
- package/dist/blocks.cjs +0 -1609
- package/dist/blocks.cjs.map +0 -1
- package/dist/blocks.d.mts +0 -278
- package/dist/blocks.d.ts +0 -278
- package/dist/blocks.mjs +0 -1589
- package/dist/blocks.mjs.map +0 -1
- package/dist/components.cjs +0 -1946
- package/dist/components.cjs.map +0 -1
- package/dist/components.d.mts +0 -322
- package/dist/components.d.ts +0 -322
- package/dist/components.mjs +0 -1860
- package/dist/components.mjs.map +0 -1
- package/dist/hooks.cjs +0 -530
- package/dist/hooks.cjs.map +0 -1
- package/dist/hooks.d.mts +0 -364
- package/dist/hooks.d.ts +0 -364
- package/dist/hooks.mjs +0 -506
- package/dist/hooks.mjs.map +0 -1
- package/dist/index.cjs +0 -4080
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.mts +0 -1044
- package/dist/index.d.ts +0 -1044
- package/dist/index.mjs +0 -3962
- package/dist/index.mjs.map +0 -1
- package/dist/theme.cjs +0 -189
- package/dist/theme.cjs.map +0 -1
- package/dist/theme.d.mts +0 -60
- package/dist/theme.d.ts +0 -60
- package/dist/theme.mjs +0 -184
- package/dist/theme.mjs.map +0 -1
- package/src/hooks/useCfgRouter.ts +0 -153
- package/src/hooks/useQueryParams.ts +0 -73
package/dist/blocks.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/blocks/ArticleCard.tsx","../src/blocks/ArticleList.tsx","../src/blocks/CTASection.tsx","../src/blocks/FeatureSection.tsx","../src/blocks/Hero.tsx","../src/blocks/NewsletterSection.tsx","../src/blocks/SplitHero/SplitHeroContent.tsx","../src/blocks/SplitHero/SplitHeroMedia.tsx","../src/blocks/SplitHero/SplitHero.tsx","../src/blocks/StatsSection.tsx","../src/animations/AnimatedBackground.tsx","../src/theme/ForceTheme.tsx","../src/blocks/SuperHero.tsx","../src/blocks/TestimonialSection.tsx"],"names":["moment","jsxs","cn","jsx","Card","CardHeader","CardTitle","CardContent","CardDescription","ButtonLink","React","Button","useMemo","Fragment","Sparkles","ArrowRight"],"mappings":"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","file":"blocks.mjs","sourcesContent":["import React from 'react';\nimport moment from 'moment';\n\nimport {\n Badge, ButtonLink, Card, CardContent, CardDescription, CardHeader, CardTitle\n} from '@djangocfg/ui-core/components';\nimport { cn } from '@djangocfg/ui-core/lib';\n\nexport type ArticleType = 'security' | 'release' | 'announcement' | 'feature';\n\ninterface ArticleCardProps {\n title: string;\n description?: string;\n date: string;\n type: ArticleType;\n href: string;\n author?: string;\n tags?: string[];\n featured?: boolean;\n className?: string;\n}\n\nconst typeConfig: Record<ArticleType, { label: string; variant: 'default' | 'secondary' | 'destructive' | 'outline'; icon: string }> = {\n security: { label: 'Security', variant: 'destructive', icon: '🛡️' },\n release: { label: 'Release', variant: 'default', icon: '📦' },\n announcement: { label: 'Announcement', variant: 'secondary', icon: '📢' },\n feature: { label: 'Feature', variant: 'outline', icon: '✨' },\n};\n\nexport const ArticleCard: React.FC<ArticleCardProps> = ({\n title,\n description,\n date,\n type,\n href,\n author,\n tags,\n featured = false,\n className,\n}) => {\n const config = typeConfig[type];\n const formattedDate = moment(date).format('MMMM D, YYYY');\n\n return (\n <Card className={cn(\n 'group relative overflow-hidden transition-all duration-200 hover:shadow-lg',\n featured && 'border-primary/50 bg-primary/5',\n className\n )}>\n <CardHeader className=\"pb-3\">\n <div className=\"flex items-center justify-between gap-2 mb-2\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-lg\">{config.icon}</span>\n <Badge variant={config.variant}>{config.label}</Badge>\n </div>\n <time className=\"text-sm text-muted-foreground\">{formattedDate}</time>\n </div>\n <CardTitle className=\"text-xl group-hover:text-primary transition-colors line-clamp-2\">\n <a href={href} className=\"hover:underline\">\n {title}\n </a>\n </CardTitle>\n {description && (\n <CardDescription className=\"line-clamp-2 mt-2\">\n {description}\n </CardDescription>\n )}\n </CardHeader>\n\n <CardContent className=\"pt-0\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n {author && (\n <span className=\"text-sm text-muted-foreground\">by {author}</span>\n )}\n {tags && tags.length > 0 && (\n <div className=\"flex gap-1\">\n {tags.slice(0, 2).map((tag) => (\n <Badge key={tag} variant=\"outline\" className=\"text-xs\">\n {tag}\n </Badge>\n ))}\n </div>\n )}\n </div>\n <ButtonLink href={href} variant=\"ghost\" size=\"sm\">\n Read more →\n </ButtonLink>\n </div>\n </CardContent>\n </Card>\n );\n};\n","import React, { useMemo } from 'react';\nimport moment from 'moment';\n\nimport { cn } from '@djangocfg/ui-core/lib';\n\nimport { ArticleCard, ArticleType } from './ArticleCard';\n\nexport interface Article {\n title: string;\n description?: string;\n date: string;\n type: ArticleType;\n href: string;\n author?: string;\n tags?: string[];\n featured?: boolean;\n}\n\ninterface ArticleListProps {\n articles: Article[];\n title?: string;\n description?: string;\n showFeatured?: boolean;\n columns?: 1 | 2 | 3;\n className?: string;\n}\n\nexport const ArticleList: React.FC<ArticleListProps> = ({\n articles,\n title,\n description,\n showFeatured = true,\n columns = 2,\n className,\n}) => {\n // Sort by date, newest first, and separate featured/regular articles\n const { featuredArticles, regularArticles } = useMemo(() => {\n const sorted = [...articles].sort(\n (a, b) => moment(b.date).valueOf() - moment(a.date).valueOf()\n );\n return {\n featuredArticles: showFeatured ? sorted.filter((a) => a.featured) : [],\n regularArticles: showFeatured ? sorted.filter((a) => !a.featured) : sorted,\n };\n }, [articles, showFeatured]);\n\n const gridCols = {\n 1: 'grid-cols-1',\n 2: 'grid-cols-1 md:grid-cols-2',\n 3: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',\n };\n\n return (\n <section className={cn('py-8', className)}>\n {(title || description) && (\n <div className=\"mb-8\">\n {title && (\n <h2 className=\"text-3xl font-bold tracking-tight\">{title}</h2>\n )}\n {description && (\n <p className=\"mt-2 text-lg text-muted-foreground\">{description}</p>\n )}\n </div>\n )}\n\n {/* Featured Articles */}\n {featuredArticles.length > 0 && (\n <div className=\"mb-8\">\n <h3 className=\"text-sm font-semibold uppercase tracking-wider text-muted-foreground mb-4\">\n Featured\n </h3>\n <div className=\"grid gap-4\">\n {featuredArticles.map((article, index) => (\n <ArticleCard key={index} {...article} featured />\n ))}\n </div>\n </div>\n )}\n\n {/* Regular Articles */}\n {regularArticles.length > 0 && (\n <div className={cn('grid gap-4', gridCols[columns])}>\n {regularArticles.map((article, index) => (\n <ArticleCard key={index} {...article} />\n ))}\n </div>\n )}\n\n {articles.length === 0 && (\n <div className=\"text-center py-12 text-muted-foreground\">\n No articles yet. Check back soon!\n </div>\n )}\n </section>\n );\n};\n","\"use client\"\n\nimport Link from 'next/link';\nimport React from 'react';\n\nimport { Button } from '@djangocfg/ui-core/components';\nimport { cn } from '@djangocfg/ui-core/lib';\n\ninterface CTAButton {\n label: string;\n href?: string;\n onClick?: () => void;\n variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';\n size?: 'default' | 'sm' | 'lg' | 'icon';\n}\n\ninterface CTASectionProps {\n title: string;\n subtitle?: string;\n primaryCTA?: CTAButton;\n secondaryCTA?: CTAButton;\n background?: 'default' | 'muted' | 'primary' | 'gradient';\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const CTASection: React.FC<CTASectionProps> = ({\n title,\n subtitle,\n primaryCTA,\n secondaryCTA,\n background = 'default',\n className,\n children\n}) => {\n // Simple Tailwind 4 classes - no custom utilities\n const backgroundClasses = {\n default: 'bg-background',\n muted: 'bg-muted/30',\n primary: 'bg-primary/5',\n gradient: 'bg-gradient-to-b from-background via-primary/5 to-background',\n };\n\n return (\n <section\n className={cn(\n 'relative py-16 sm:py-20 md:py-24 lg:py-32',\n backgroundClasses[background],\n className\n )}\n >\n {/* Simple decorative background - using only Tailwind classes */}\n {background === 'gradient' && (\n <div className=\"absolute inset-0 -z-10 overflow-hidden pointer-events-none\" aria-hidden=\"true\">\n <div className=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full max-w-4xl aspect-square bg-primary/10 rounded-full blur-3xl\" />\n </div>\n )}\n\n <div className=\"container max-w-4xl mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"text-center space-y-6 sm:space-y-8\">\n {/* Title */}\n <h2 className=\"text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold tracking-tight\">\n {title}\n </h2>\n\n {/* Subtitle */}\n {subtitle && (\n <p className=\"text-base sm:text-lg md:text-xl text-muted-foreground max-w-2xl mx-auto leading-relaxed\">\n {subtitle}\n </p>\n )}\n\n {/* CTA Buttons */}\n {(primaryCTA || secondaryCTA) && (\n <div className=\"flex flex-col sm:flex-row gap-3 sm:gap-4 justify-center items-center pt-4\">\n {primaryCTA && (\n primaryCTA.onClick ? (\n <Button\n onClick={primaryCTA.onClick}\n variant={primaryCTA.variant || 'default'}\n size={primaryCTA.size || 'lg'}\n className=\"w-full sm:w-auto\"\n >\n {primaryCTA.label}\n </Button>\n ) : (\n <Button\n asChild\n variant={primaryCTA.variant || 'default'}\n size={primaryCTA.size || 'lg'}\n className=\"w-full sm:w-auto\"\n >\n <Link href={primaryCTA.href || '#'}>\n {primaryCTA.label}\n </Link>\n </Button>\n )\n )}\n\n {secondaryCTA && (\n secondaryCTA.onClick ? (\n <Button\n onClick={secondaryCTA.onClick}\n variant={secondaryCTA.variant || 'outline'}\n size={secondaryCTA.size || 'lg'}\n className=\"w-full sm:w-auto\"\n >\n {secondaryCTA.label}\n </Button>\n ) : (\n <Button\n asChild\n variant={secondaryCTA.variant || 'outline'}\n size={secondaryCTA.size || 'lg'}\n className=\"w-full sm:w-auto\"\n >\n <Link href={secondaryCTA.href || '#'}>\n {secondaryCTA.label}\n </Link>\n </Button>\n )\n )}\n </div>\n )}\n\n {/* Optional children content */}\n {children && (\n <div className=\"pt-8 sm:pt-12\">\n {children}\n </div>\n )}\n </div>\n </div>\n </section>\n );\n};\n","import React from 'react';\n\nimport {\n Card, CardContent, CardDescription, CardHeader, CardTitle\n} from '@djangocfg/ui-core/components';\nimport { cn } from '@djangocfg/ui-core/lib';\n\ninterface Feature {\n icon?: React.ReactNode;\n title: string;\n description: string;\n gradient?: string;\n}\n\ninterface FeatureSectionProps {\n title?: string;\n subtitle?: string;\n features: Feature[];\n columns?: 1 | 2 | 3 | 4 | 6;\n className?: string;\n background?: 'dark' | 'card' | 'gradient' | 'none';\n /** Compact variant: smaller icons, no cards, minimal spacing */\n variant?: 'default' | 'compact';\n}\n\nexport const FeatureSection: React.FC<FeatureSectionProps> = ({\n title,\n subtitle,\n features,\n columns = 3,\n className,\n background = 'dark',\n variant = 'default'\n}) => {\n const getGridClasses = () => {\n if (variant === 'compact') {\n switch (columns) {\n case 2:\n return 'grid-cols-2';\n case 3:\n return 'grid-cols-2 md:grid-cols-3';\n case 4:\n return 'grid-cols-2 md:grid-cols-4';\n case 6:\n return 'grid-cols-2 md:grid-cols-3 lg:grid-cols-6';\n default:\n return 'grid-cols-2 md:grid-cols-3';\n }\n }\n switch (columns) {\n case 1:\n return 'grid-cols-1 max-w-2xl mx-auto';\n case 2:\n return 'grid-cols-1 sm:grid-cols-2';\n case 3:\n return 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3';\n case 4:\n return 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4';\n case 6:\n return 'grid-cols-2 sm:grid-cols-3 lg:grid-cols-6';\n default:\n return 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3';\n }\n };\n\n const getBackgroundClasses = () => {\n switch (background) {\n case 'dark':\n return 'bg-muted/30';\n case 'card':\n return 'bg-card';\n case 'gradient':\n return 'bg-gradient-to-b from-background to-muted/20';\n case 'none':\n return '';\n default:\n return 'bg-background';\n }\n };\n\n // Compact variant render\n if (variant === 'compact') {\n return (\n <section className={cn('py-12 md:py-16', getBackgroundClasses(), className)}>\n <div className=\"container max-w-5xl mx-auto px-4\">\n {(title || subtitle) && (\n <div className=\"text-center mb-8\">\n {title && (\n <h2 className=\"text-xl sm:text-2xl font-bold text-foreground mb-2\">\n {title}\n </h2>\n )}\n {subtitle && (\n <p className=\"text-sm text-muted-foreground max-w-2xl mx-auto\">\n {subtitle}\n </p>\n )}\n </div>\n )}\n <div className={cn('grid gap-4', getGridClasses())}>\n {features.map((feature, index) => (\n <div key={index} className=\"text-center p-4\">\n {feature.icon && (\n <div\n className={cn(\n 'w-10 h-10 mx-auto mb-3 rounded-lg flex items-center justify-center',\n feature.gradient || 'bg-primary/10 text-primary'\n )}\n >\n <div className=\"[&>svg]:w-5 [&>svg]:h-5\">\n {feature.icon}\n </div>\n </div>\n )}\n <h3 className=\"font-medium text-sm mb-1\">{feature.title}</h3>\n <p className=\"text-xs text-muted-foreground\">{feature.description}</p>\n </div>\n ))}\n </div>\n </div>\n </section>\n );\n }\n\n // Default variant render\n return (\n <section className={cn('py-12 sm:py-16 lg:py-24', getBackgroundClasses(), className)}>\n <div className=\"w-full px-4 sm:px-6 lg:px-8\">\n {(title || subtitle) && (\n <div className=\"text-center mb-12 sm:mb-16\">\n {title && (\n <h2 className=\"text-2xl sm:text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mb-4 sm:mb-6\">\n {title}\n </h2>\n )}\n {subtitle && (\n <p className=\"text-base sm:text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto px-2\">\n {subtitle}\n </p>\n )}\n </div>\n )}\n\n <div className={cn('grid gap-6 sm:gap-8', getGridClasses())}>\n {features.map((feature, index) => (\n <Card\n key={index}\n className=\"h-full hover:shadow-lg transition-all duration-300 backdrop-blur-sm border-border/50 hover:border-primary/30 group\"\n >\n <CardHeader className=\"pb-4\">\n {feature.icon && (\n <div className={cn(\n 'w-12 h-12 sm:w-16 sm:h-16 rounded-lg flex items-center justify-center mb-4 sm:mb-6 group-hover:scale-110 transition-all duration-300',\n feature.gradient || 'bg-primary/10 text-primary group-hover:bg-primary/20'\n )}>\n <div className=\"text-xl sm:text-2xl\">\n {feature.icon}\n </div>\n </div>\n )}\n <CardTitle className=\"text-lg sm:text-xl text-foreground group-hover:text-primary transition-colors duration-300\">\n {feature.title}\n </CardTitle>\n </CardHeader>\n <CardContent>\n <CardDescription className=\"text-sm sm:text-base text-muted-foreground leading-relaxed\">\n {feature.description}\n </CardDescription>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n </section>\n );\n}; ","import React from 'react';\n\nimport { ButtonLink } from '@djangocfg/ui-core/components';\nimport { cn } from '@djangocfg/ui-core/lib';\n\ninterface HeroProps {\n title: string;\n subtitle?: string;\n description?: string;\n primaryAction?: {\n label: string;\n href: string;\n variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';\n };\n secondaryAction?: {\n label: string;\n href: string;\n variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';\n };\n background?: 'gradient' | 'solid' | 'image' | 'dark';\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const Hero: React.FC<HeroProps> = ({\n title,\n subtitle,\n description,\n primaryAction,\n secondaryAction,\n background = 'dark',\n className,\n children\n}) => {\n // Simple Tailwind 4 classes only - no custom utilities\n const backgroundClasses = {\n gradient: 'bg-gradient-to-b from-primary/10 to-background',\n solid: 'bg-primary text-primary-foreground',\n image: 'bg-cover bg-center bg-no-repeat text-white',\n dark: 'bg-background text-foreground',\n };\n\n return (\n <section className={cn(\n 'relative py-16 sm:py-20 md:py-24 lg:py-32',\n backgroundClasses[background],\n className\n )}>\n <div className=\"container max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"text-center max-w-4xl mx-auto\">\n {subtitle && (\n <p className=\"text-base sm:text-lg md:text-xl mb-4 sm:mb-6 text-muted-foreground font-medium\">\n {subtitle}\n </p>\n )}\n\n <h1 className=\"text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-bold mb-6 sm:mb-8 leading-tight\">\n {title}\n </h1>\n\n {description && (\n <p className=\"text-lg sm:text-xl md:text-2xl mb-8 sm:mb-10 md:mb-12 text-muted-foreground leading-relaxed max-w-3xl mx-auto\">\n {description}\n </p>\n )}\n\n {(primaryAction || secondaryAction) && (\n <div className=\"flex flex-col sm:flex-row gap-3 sm:gap-4 justify-center\">\n {primaryAction && (\n <ButtonLink\n href={primaryAction.href}\n variant={primaryAction.variant || 'default'}\n size=\"huge\"\n className=\"w-full sm:w-auto\"\n >\n {primaryAction.label}\n </ButtonLink>\n )}\n\n {secondaryAction && (\n <ButtonLink\n href={secondaryAction.href}\n variant={secondaryAction.variant || 'outline'}\n size=\"huge\"\n className=\"w-full sm:w-auto\"\n >\n {secondaryAction.label}\n </ButtonLink>\n )}\n </div>\n )}\n\n {children && (\n <div className=\"mt-12 sm:mt-14 md:mt-16 flex justify-center\">\n {children}\n </div>\n )}\n </div>\n </div>\n </section>\n );\n}; ","\"use client\"\n\nimport { Mail } from 'lucide-react';\nimport React from 'react';\n\nimport { Button, Input } from '@djangocfg/ui-core/components';\nimport { cn } from '@djangocfg/ui-core/lib';\n\ninterface NewsletterSectionProps {\n title?: string;\n description?: string;\n placeholder?: string;\n buttonText?: string;\n disclaimer?: string;\n background?: 'default' | 'muted' | 'primary' | 'gradient';\n className?: string;\n onSubmit?: (email: string) => void;\n}\n\n/**\n * NewsletterSection - Email subscription block\n * Fully responsive and theme-aware (light/dark mode)\n * Follows Tailwind CSS v4 canons - no custom utilities\n */\nexport const NewsletterSection: React.FC<NewsletterSectionProps> = ({\n title = \"Stay Updated with Our Newsletter\",\n description = \"Get the latest insights on AI, technology, and software development delivered to your inbox.\",\n placeholder = \"Enter your email address\",\n buttonText = \"Subscribe\",\n disclaimer = \"No spam, unsubscribe at any time\",\n background = 'muted',\n className,\n onSubmit\n}) => {\n const [email, setEmail] = React.useState('');\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (email && onSubmit) {\n onSubmit(email);\n setEmail('');\n }\n };\n\n // Simple Tailwind 4 classes only - no custom utilities\n // All variants work in both light and dark themes\n const backgroundClasses = {\n default: 'bg-background',\n muted: 'bg-muted/50',\n primary: 'bg-primary/5',\n gradient: 'bg-gradient-to-b from-background via-primary/5 to-background',\n };\n\n return (\n <section className={cn(\n 'relative py-16 sm:py-20 md:py-24 lg:py-32',\n backgroundClasses[background],\n className\n )}>\n {/* Decorative background for gradient variant only */}\n {background === 'gradient' && (\n <div className=\"absolute inset-0 -z-10 overflow-hidden pointer-events-none\" aria-hidden=\"true\">\n <div className=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full max-w-4xl aspect-square bg-primary/10 rounded-full blur-3xl\" />\n </div>\n )}\n\n <div className=\"container max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n <div className=\"text-center max-w-3xl mx-auto\">\n {/* Title */}\n <h2 className=\"text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold tracking-tight mb-4 sm:mb-6\">\n {title}\n </h2>\n\n {/* Description */}\n {description && (\n <p className=\"text-base sm:text-lg md:text-xl text-muted-foreground leading-relaxed mb-8 sm:mb-10 md:mb-12\">\n {description}\n </p>\n )}\n\n {/* Form */}\n <form onSubmit={handleSubmit} className=\"max-w-md mx-auto\">\n <div className=\"flex flex-col sm:flex-row gap-3 sm:gap-4\">\n {/* Email Input */}\n <div className=\"relative flex-1\">\n <Mail className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none\" />\n <Input\n type=\"email\"\n placeholder={placeholder}\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className=\"pl-10 h-12 w-full\"\n required\n aria-label=\"Email address\"\n />\n </div>\n\n {/* Submit Button */}\n <Button\n type=\"submit\"\n size=\"lg\"\n className=\"h-12 w-full sm:w-auto sm:min-w-[120px]\"\n >\n {buttonText}\n </Button>\n </div>\n\n {/* Disclaimer */}\n {disclaimer && (\n <p className=\"text-xs sm:text-sm text-muted-foreground mt-3 text-center\">\n {disclaimer}\n </p>\n )}\n </form>\n </div>\n </div>\n </section>\n );\n}; ","'use client';\n\nimport React from 'react';\nimport { ArrowRight, Sparkles } from 'lucide-react';\nimport { ButtonLink } from '@djangocfg/ui-core/components';\nimport { cn } from '@djangocfg/ui-core/lib';\nimport type { SplitHeroBadge, SplitHeroAction, SplitHeroFeature } from './types';\n\ninterface SplitHeroContentProps {\n badge?: SplitHeroBadge;\n title: string;\n titleGradient?: string;\n subtitle?: string;\n features?: SplitHeroFeature[];\n primaryAction?: SplitHeroAction;\n secondaryAction?: SplitHeroAction;\n align?: 'top' | 'center' | 'bottom';\n className?: string;\n}\n\nexport const SplitHeroContent: React.FC<SplitHeroContentProps> = ({\n badge,\n title,\n titleGradient,\n subtitle,\n features = [],\n primaryAction,\n secondaryAction,\n align = 'center',\n className,\n}) => {\n const alignClasses = {\n top: 'justify-start',\n center: 'justify-center',\n bottom: 'justify-end',\n };\n\n return (\n <div className={cn('flex flex-col', alignClasses[align], className)}>\n {/* Badge */}\n {badge && (\n <div className=\"inline-flex items-center gap-2 px-3 py-1.5 bg-primary/10 text-primary rounded-full text-sm font-medium mb-4 w-fit border border-primary/20\">\n {badge.icon || <Sparkles className=\"w-3.5 h-3.5\" />}\n {badge.text}\n </div>\n )}\n\n {/* Title */}\n <h1 className=\"text-3xl sm:text-4xl lg:text-5xl font-bold text-foreground mb-4 leading-tight\">\n {title}\n {titleGradient && (\n <>\n {' '}\n <span className=\"bg-gradient-to-r from-primary to-secondary bg-clip-text text-transparent\">\n {titleGradient}\n </span>\n </>\n )}\n </h1>\n\n {/* Subtitle */}\n {subtitle && (\n <p className=\"text-lg text-muted-foreground mb-6 leading-relaxed\">\n {subtitle}\n </p>\n )}\n\n {/* Features */}\n {features.length > 0 && (\n <div className=\"flex flex-wrap gap-3 mb-6\">\n {features.map((feature, index) => (\n <div\n key={index}\n className=\"flex items-center gap-2 text-sm text-muted-foreground\"\n >\n {feature.icon && (\n <span className=\"text-primary\">{feature.icon}</span>\n )}\n <span>{feature.text}</span>\n </div>\n ))}\n </div>\n )}\n\n {/* Actions */}\n {(primaryAction || secondaryAction) && (\n <div className=\"flex flex-wrap gap-3\">\n {primaryAction && (\n <ButtonLink\n href={primaryAction.href || '#'}\n onClick={primaryAction.onClick}\n variant={primaryAction.variant || 'default'}\n size=\"lg\"\n className=\"group\"\n >\n {primaryAction.label}\n {primaryAction.icon || (\n <ArrowRight className=\"w-4 h-4 group-hover:translate-x-1 transition-transform\" />\n )}\n </ButtonLink>\n )}\n {secondaryAction && (\n <ButtonLink\n href={secondaryAction.href || '#'}\n onClick={secondaryAction.onClick}\n variant={secondaryAction.variant || 'outline'}\n size=\"lg\"\n >\n {secondaryAction.label}\n {secondaryAction.icon}\n </ButtonLink>\n )}\n </div>\n )}\n </div>\n );\n};\n","'use client';\n\nimport React from 'react';\nimport Image from 'next/image';\nimport { cn } from '@djangocfg/ui-core/lib';\nimport { VideoPlayer } from '@djangocfg/ui-tools';\nimport type { SplitHeroMedia as SplitHeroMediaType } from './types';\n\ninterface SplitHeroMediaProps {\n media: SplitHeroMediaType;\n className?: string;\n}\n\nexport const SplitHeroMedia: React.FC<SplitHeroMediaProps> = ({\n media,\n className,\n}) => {\n const containerClass = cn(\n 'relative w-full rounded-xl overflow-hidden',\n className\n );\n\n switch (media.type) {\n case 'image':\n return (\n <div className={containerClass}>\n <div className=\"relative aspect-[4/3] w-full\">\n <Image\n src={media.src}\n alt={media.alt || ''}\n fill\n className=\"object-cover\"\n sizes=\"(max-width: 768px) 100vw, 50vw\"\n />\n </div>\n </div>\n );\n\n case 'video':\n return (\n <div className={containerClass}>\n <VideoPlayer\n source={{\n type: 'url',\n url: media.url,\n title: media.title,\n poster: media.poster,\n }}\n theme=\"modern\"\n aspectRatio={16 / 9}\n autoPlay={media.autoplay}\n muted={media.muted ?? media.autoplay}\n />\n </div>\n );\n\n case 'custom':\n return (\n <div className={containerClass}>\n {media.content}\n </div>\n );\n\n default:\n return null;\n }\n};\n","'use client';\n\nimport React from 'react';\nimport { cn } from '@djangocfg/ui-core/lib';\nimport { SplitHeroContent } from './SplitHeroContent';\nimport { SplitHeroMedia } from './SplitHeroMedia';\nimport type { SplitHeroProps } from './types';\n\nconst MAX_WIDTH_CLASSES = {\n sm: 'max-w-3xl',\n md: 'max-w-4xl',\n lg: 'max-w-5xl',\n xl: 'max-w-6xl',\n full: 'max-w-7xl',\n};\n\nconst BACKGROUND_CLASSES = {\n none: '',\n muted: 'bg-muted/30',\n gradient: 'bg-gradient-to-br from-primary/5 via-background to-secondary/5',\n};\n\nexport const SplitHero: React.FC<SplitHeroProps> = ({\n badge,\n title,\n titleGradient,\n subtitle,\n features,\n primaryAction,\n secondaryAction,\n media,\n layout = 'text-left',\n mobileOrder = 'text-first',\n align = 'center',\n maxWidth = 'xl',\n background = 'none',\n className,\n}) => {\n const isTextLeft = layout === 'text-left';\n const isMediaFirst = mobileOrder === 'media-first';\n\n return (\n <section\n className={cn(\n 'py-12 md:py-16 lg:py-20',\n BACKGROUND_CLASSES[background],\n className\n )}\n >\n <div className={cn('mx-auto px-4', MAX_WIDTH_CLASSES[maxWidth])}>\n <div\n className={cn(\n 'grid gap-8 lg:gap-12 items-center',\n media ? 'lg:grid-cols-2' : 'lg:grid-cols-1 max-w-3xl mx-auto'\n )}\n >\n {/* Content - order changes based on layout and mobile settings */}\n <div\n className={cn(\n // Desktop order based on layout\n isTextLeft ? 'lg:order-1' : 'lg:order-2',\n // Mobile order based on mobileOrder\n isMediaFirst ? 'order-2' : 'order-1'\n )}\n >\n <SplitHeroContent\n badge={badge}\n title={title}\n titleGradient={titleGradient}\n subtitle={subtitle}\n features={features}\n primaryAction={primaryAction}\n secondaryAction={secondaryAction}\n align={align}\n />\n </div>\n\n {/* Media */}\n {media && (\n <div\n className={cn(\n // Desktop order based on layout\n isTextLeft ? 'lg:order-2' : 'lg:order-1',\n // Mobile order based on mobileOrder\n isMediaFirst ? 'order-1' : 'order-2'\n )}\n >\n <SplitHeroMedia media={media} />\n </div>\n )}\n </div>\n </div>\n </section>\n );\n};\n","import React from 'react';\n\nimport { Card, CardContent } from '@djangocfg/ui-core/components';\nimport { cn } from '@djangocfg/ui-core/lib';\n\ninterface Stat {\n number: string;\n label: string;\n description?: string;\n icon?: React.ReactNode;\n}\n\ninterface StatsSectionProps {\n title: string;\n subtitle?: string;\n stats: Stat[];\n columns?: 2 | 3 | 4;\n className?: string;\n background?: 'dark' | 'card' | 'gradient';\n}\n\nexport const StatsSection: React.FC<StatsSectionProps> = ({\n title,\n subtitle,\n stats,\n columns = 4,\n className,\n background = 'dark'\n}) => {\n const getGridClasses = () => {\n switch (columns) {\n case 2:\n return 'grid-cols-1 sm:grid-cols-2';\n case 3:\n return 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3';\n case 4:\n return 'grid-cols-2 sm:grid-cols-2 lg:grid-cols-4';\n default:\n return 'grid-cols-2 sm:grid-cols-2 lg:grid-cols-4';\n }\n };\n\n const getBackgroundClasses = () => {\n switch (background) {\n case 'dark':\n return 'bg-background';\n case 'card':\n return 'gradient-card';\n case 'gradient':\n return 'gradient-subtle';\n default:\n return 'bg-background';\n }\n };\n\n return (\n <section className={cn('py-12 sm:py-16 lg:py-24', getBackgroundClasses(), className)}>\n <div className=\"w-full px-4 sm:px-6 lg:px-8\">\n <div className=\"text-center mb-12 sm:mb-16 animate-fade-in\">\n <h2 className=\"text-2xl sm:text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mb-4 sm:mb-6\">\n {title}\n </h2>\n {subtitle && (\n <p className=\"text-base sm:text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto px-2\">\n {subtitle}\n </p>\n )}\n </div>\n \n <div className={cn('grid gap-6 sm:gap-8', getGridClasses())}>\n {stats.map((stat, index) => (\n <Card \n key={index} \n className=\"text-center hover:shadow-large transition-all duration-300 animate-scale-in backdrop-blur-sm border-border/50 hover:border-primary/30 group\"\n style={{ animationDelay: `${index * 0.1}s` }}\n >\n <CardContent className=\"p-6 sm:p-8\">\n {stat.icon && (\n <div className=\"w-12 h-12 sm:w-16 sm:h-16 bg-primary/10 text-primary rounded-lg flex items-center justify-center mx-auto mb-4 sm:mb-6 group-hover:scale-110 group-hover:bg-primary/20 transition-all duration-300\">\n <div className=\"text-xl sm:text-2xl\">\n {stat.icon}\n </div>\n </div>\n )}\n <div className=\"text-3xl sm:text-4xl lg:text-5xl font-bold text-foreground mb-2 sm:mb-3 group-hover:text-primary transition-colors duration-300\">\n {stat.number}\n </div>\n <div className=\"text-sm sm:text-base text-muted-foreground font-medium\">\n {stat.label}\n </div>\n {stat.description && (\n <p className=\"text-xs sm:text-sm text-muted-foreground mt-2\">\n {stat.description}\n </p>\n )}\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n </section>\n );\n}; ","'use client';\n\nimport React, { useMemo } from 'react';\n\nimport { cn } from '@djangocfg/ui-core/lib';\n\nexport type BackgroundVariant =\n | 'aurora-borealis'\n | 'mesh-gradient'\n | 'floating-orbs'\n | 'geometric-flow'\n | 'liquid-gradient'\n | 'spotlight'\n | 'none'\n // Legacy aliases\n | 'gradient-mesh'\n | 'dot-matrix'\n | 'grid-lines'\n | 'aurora'\n | 'particles'\n | 'waves';\n\ninterface AnimatedBackgroundProps {\n variant?: BackgroundVariant;\n className?: string;\n intensity?: 'subtle' | 'medium' | 'strong';\n /** Color scheme - 'vibrant' uses multiple colors, 'monochrome' uses primary only */\n colorScheme?: 'vibrant' | 'monochrome' | 'cool' | 'warm';\n}\n\n// Map legacy variants to new ones\nconst variantMap: Record<string, BackgroundVariant> = {\n 'gradient-mesh': 'mesh-gradient',\n 'dot-matrix': 'geometric-flow',\n 'grid-lines': 'geometric-flow',\n 'aurora': 'aurora-borealis',\n 'particles': 'floating-orbs',\n 'waves': 'liquid-gradient',\n};\n\nexport const AnimatedBackground: React.FC<AnimatedBackgroundProps> = ({\n variant = 'mesh-gradient',\n className,\n intensity = 'medium',\n colorScheme = 'vibrant',\n}) => {\n // Map legacy variants\n const resolvedVariant = variantMap[variant] || variant;\n\n const intensityConfig = useMemo(() => ({\n subtle: { opacity: 0.15, blur: 'blur-3xl', scale: 0.8 },\n medium: { opacity: 0.25, blur: 'blur-2xl', scale: 1 },\n strong: { opacity: 0.4, blur: 'blur-xl', scale: 1.2 },\n }[intensity]), [intensity]);\n\n // Color palettes using CSS variables\n const colors = useMemo(() => {\n const palettes = {\n vibrant: [\n 'hsl(var(--chart-1))', // Blue\n 'hsl(var(--chart-2))', // Green\n 'hsl(var(--chart-3))', // Purple\n 'hsl(var(--chart-4))', // Orange\n 'hsl(var(--chart-5))', // Red\n ],\n monochrome: [\n 'hsl(var(--primary))',\n 'hsl(var(--primary) / 0.8)',\n 'hsl(var(--primary) / 0.6)',\n ],\n cool: [\n 'hsl(var(--chart-1))', // Blue\n 'hsl(var(--chart-3))', // Purple\n 'hsl(210 100% 50%)', // Bright blue\n 'hsl(260 100% 60%)', // Violet\n ],\n warm: [\n 'hsl(var(--chart-4))', // Orange\n 'hsl(var(--chart-5))', // Red\n 'hsl(35 100% 55%)', // Gold\n 'hsl(350 100% 60%)', // Rose\n ],\n };\n return palettes[colorScheme];\n }, [colorScheme]);\n\n if (resolvedVariant === 'none') {\n return null;\n }\n\n return (\n <div\n className={cn(\"absolute overflow-hidden pointer-events-none\", className)}\n style={{ inset: 0, width: '100%', height: '100%' }}\n >\n {resolvedVariant === 'aurora-borealis' && (\n <AuroraBorealis colors={colors} intensity={intensityConfig} />\n )}\n\n {resolvedVariant === 'mesh-gradient' && (\n <MeshGradient colors={colors} intensity={intensityConfig} />\n )}\n\n {resolvedVariant === 'floating-orbs' && (\n <FloatingOrbs colors={colors} intensity={intensityConfig} />\n )}\n\n {resolvedVariant === 'geometric-flow' && (\n <GeometricFlow colors={colors} intensity={intensityConfig} />\n )}\n\n {resolvedVariant === 'liquid-gradient' && (\n <LiquidGradient colors={colors} intensity={intensityConfig} />\n )}\n\n {resolvedVariant === 'spotlight' && (\n <Spotlight colors={colors} intensity={intensityConfig} />\n )}\n\n <AnimationStyles />\n </div>\n );\n};\n\n// =============================================================================\n// Aurora Borealis - Flowing northern lights effect\n// =============================================================================\n\ninterface VariantProps {\n colors: string[];\n intensity: { opacity: number; blur: string; scale: number };\n}\n\nconst AuroraBorealis: React.FC<VariantProps> = ({ colors, intensity }) => (\n <>\n {/* Base layer - subtle gradient */}\n <div\n className=\"absolute inset-0\"\n style={{\n background: `linear-gradient(135deg, ${colors[0]} 0%, transparent 50%, ${colors[1]} 100%)`,\n opacity: intensity.opacity * 0.3,\n }}\n />\n\n {/* Aurora bands */}\n <div\n className={cn(\"absolute inset-0\", intensity.blur)}\n style={{\n background: `linear-gradient(110deg,\n transparent 0%,\n ${colors[0]} 20%,\n ${colors[2] || colors[0]} 35%,\n ${colors[1]} 50%,\n ${colors[3] || colors[1]} 65%,\n ${colors[0]} 80%,\n transparent 100%\n )`,\n opacity: intensity.opacity,\n animation: 'aurora-shift 15s ease-in-out infinite',\n transform: `translateY(-30%) scaleY(${intensity.scale})`,\n }}\n />\n\n {/* Secondary aurora layer */}\n <div\n className={cn(\"absolute inset-0\", intensity.blur)}\n style={{\n background: `linear-gradient(70deg,\n transparent 0%,\n ${colors[1]} 25%,\n ${colors[2] || colors[0]} 50%,\n ${colors[0]} 75%,\n transparent 100%\n )`,\n opacity: intensity.opacity * 0.7,\n animation: 'aurora-shift 20s ease-in-out infinite reverse',\n animationDelay: '-5s',\n transform: `translateY(-20%) scaleY(${intensity.scale * 0.8})`,\n }}\n />\n\n {/* Shimmer overlay */}\n <div\n className=\"absolute inset-0\"\n style={{\n background: `radial-gradient(ellipse 100% 50% at 50% 0%,\n ${colors[2] || colors[0]} 0%,\n transparent 70%\n )`,\n opacity: intensity.opacity * 0.4,\n animation: 'aurora-shimmer 8s ease-in-out infinite',\n }}\n />\n </>\n);\n\n// =============================================================================\n// Mesh Gradient - Modern Apple-style gradient mesh\n// =============================================================================\n\nconst MeshGradient: React.FC<VariantProps> = ({ colors, intensity }) => (\n <>\n {/* Large gradient orbs with different colors */}\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '60%',\n height: '60%',\n top: '-10%',\n right: '-10%',\n background: `radial-gradient(circle, ${colors[0]} 0%, transparent 70%)`,\n opacity: intensity.opacity,\n animation: 'mesh-float-1 25s ease-in-out infinite',\n transform: `scale(${intensity.scale})`,\n }}\n />\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '50%',\n height: '50%',\n bottom: '-5%',\n left: '-5%',\n background: `radial-gradient(circle, ${colors[1]} 0%, transparent 70%)`,\n opacity: intensity.opacity,\n animation: 'mesh-float-2 30s ease-in-out infinite',\n transform: `scale(${intensity.scale})`,\n }}\n />\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '40%',\n height: '40%',\n top: '30%',\n left: '25%',\n background: `radial-gradient(circle, ${colors[2] || colors[0]} 0%, transparent 70%)`,\n opacity: intensity.opacity * 0.8,\n animation: 'mesh-float-3 20s ease-in-out infinite',\n transform: `scale(${intensity.scale})`,\n }}\n />\n {colors[3] && (\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '35%',\n height: '35%',\n bottom: '20%',\n right: '15%',\n background: `radial-gradient(circle, ${colors[3]} 0%, transparent 70%)`,\n opacity: intensity.opacity * 0.6,\n animation: 'mesh-float-4 22s ease-in-out infinite',\n transform: `scale(${intensity.scale})`,\n }}\n />\n )}\n </>\n);\n\n// =============================================================================\n// Floating Orbs - Animated glowing spheres\n// =============================================================================\n\nconst FloatingOrbs: React.FC<VariantProps> = ({ colors, intensity }) => {\n const orbs = useMemo(() => {\n return Array.from({ length: 12 }).map((_, i) => ({\n id: i,\n size: 60 + (i % 4) * 40,\n x: (i * 23) % 100,\n y: (i * 31) % 100,\n color: colors[i % colors.length],\n duration: 15 + (i % 5) * 5,\n delay: i * 1.5,\n }));\n }, [colors]);\n\n return (\n <>\n {orbs.map((orb) => (\n <div\n key={orb.id}\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: `${orb.size * intensity.scale}px`,\n height: `${orb.size * intensity.scale}px`,\n left: `${orb.x}%`,\n top: `${orb.y}%`,\n background: `radial-gradient(circle at 30% 30%, ${orb.color}, transparent 70%)`,\n opacity: intensity.opacity * (0.5 + (orb.id % 3) * 0.2),\n animation: `orb-float-${(orb.id % 4) + 1} ${orb.duration}s ease-in-out infinite`,\n animationDelay: `${orb.delay}s`,\n }}\n />\n ))}\n </>\n );\n};\n\n// =============================================================================\n// Geometric Flow - Clean geometric patterns\n// =============================================================================\n\nconst GeometricFlow: React.FC<VariantProps> = ({ colors, intensity }) => (\n <>\n {/* Gradient base */}\n <div\n className=\"absolute inset-0\"\n style={{\n background: `linear-gradient(135deg,\n ${colors[0]} 0%,\n transparent 30%,\n transparent 70%,\n ${colors[1]} 100%\n )`,\n opacity: intensity.opacity * 0.3,\n }}\n />\n\n {/* Animated grid */}\n <div\n className=\"absolute inset-0\"\n style={{\n backgroundImage: `\n linear-gradient(${colors[0]}20 1px, transparent 1px),\n linear-gradient(90deg, ${colors[0]}20 1px, transparent 1px)\n `,\n backgroundSize: '60px 60px',\n animation: 'grid-drift 30s linear infinite',\n opacity: intensity.opacity,\n }}\n />\n\n {/* Diagonal lines */}\n <div\n className=\"absolute inset-0\"\n style={{\n backgroundImage: `repeating-linear-gradient(\n 45deg,\n transparent,\n transparent 80px,\n ${colors[2] || colors[0]}10 80px,\n ${colors[2] || colors[0]}10 82px\n )`,\n animation: 'diagonal-shift 20s linear infinite',\n opacity: intensity.opacity,\n }}\n />\n\n {/* Glowing intersection points */}\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '40%',\n height: '40%',\n top: '20%',\n left: '50%',\n transform: 'translateX(-50%)',\n background: `radial-gradient(circle, ${colors[0]} 0%, transparent 70%)`,\n opacity: intensity.opacity * 0.5,\n animation: 'pulse-glow 8s ease-in-out infinite',\n }}\n />\n </>\n);\n\n// =============================================================================\n// Liquid Gradient - Smooth flowing liquid effect\n// =============================================================================\n\nconst LiquidGradient: React.FC<VariantProps> = ({ colors, intensity }) => (\n <>\n {/* Base gradient */}\n <div\n className=\"absolute inset-0\"\n style={{\n background: `linear-gradient(180deg,\n transparent 0%,\n ${colors[0]}15 30%,\n ${colors[1]}20 50%,\n ${colors[2] || colors[0]}15 70%,\n transparent 100%\n )`,\n opacity: intensity.opacity,\n }}\n />\n\n {/* Liquid blob 1 */}\n <div\n className={cn(\"absolute\", intensity.blur)}\n style={{\n width: '120%',\n height: '50%',\n bottom: '-10%',\n left: '-10%',\n background: `linear-gradient(90deg,\n ${colors[0]} 0%,\n ${colors[1]} 33%,\n ${colors[2] || colors[0]} 66%,\n ${colors[0]} 100%\n )`,\n opacity: intensity.opacity,\n borderRadius: '50% 50% 0 0',\n animation: 'liquid-flow-1 12s ease-in-out infinite',\n transform: `scaleY(${intensity.scale})`,\n }}\n />\n\n {/* Liquid blob 2 */}\n <div\n className={cn(\"absolute\", intensity.blur)}\n style={{\n width: '100%',\n height: '40%',\n bottom: '-5%',\n left: '0',\n background: `linear-gradient(90deg,\n ${colors[1]} 0%,\n ${colors[2] || colors[0]} 50%,\n ${colors[3] || colors[1]} 100%\n )`,\n opacity: intensity.opacity * 0.8,\n borderRadius: '60% 40% 0 0',\n animation: 'liquid-flow-2 15s ease-in-out infinite',\n transform: `scaleY(${intensity.scale * 0.9})`,\n }}\n />\n\n {/* Floating bubbles */}\n {Array.from({ length: 6 }).map((_, i) => (\n <div\n key={i}\n className=\"absolute rounded-full\"\n style={{\n width: `${12 + i * 4}px`,\n height: `${12 + i * 4}px`,\n left: `${15 + i * 15}%`,\n bottom: '10%',\n background: `radial-gradient(circle at 30% 30%,\n ${colors[i % colors.length]}80,\n ${colors[i % colors.length]}20\n )`,\n border: `1px solid ${colors[i % colors.length]}40`,\n opacity: intensity.opacity,\n animation: `bubble-float ${8 + i * 2}s ease-in-out infinite`,\n animationDelay: `${i * 2}s`,\n }}\n />\n ))}\n </>\n);\n\n// =============================================================================\n// Spotlight - Dramatic spotlight effect\n// =============================================================================\n\nconst Spotlight: React.FC<VariantProps> = ({ colors, intensity }) => (\n <>\n {/* Main spotlight */}\n <div\n className={cn(\"absolute\", intensity.blur)}\n style={{\n width: '80%',\n height: '80%',\n top: '-20%',\n left: '50%',\n transform: 'translateX(-50%)',\n background: `conic-gradient(from 180deg at 50% 50%,\n ${colors[0]} 0deg,\n ${colors[1]} 60deg,\n ${colors[2] || colors[0]} 120deg,\n ${colors[3] || colors[1]} 180deg,\n ${colors[0]} 240deg,\n ${colors[1]} 300deg,\n ${colors[0]} 360deg\n )`,\n opacity: intensity.opacity,\n animation: 'spotlight-rotate 30s linear infinite',\n }}\n />\n\n {/* Center fade */}\n <div\n className=\"absolute inset-0\"\n style={{\n background: `radial-gradient(circle at 50% 30%,\n transparent 0%,\n hsl(var(--background)) 70%\n )`,\n }}\n />\n\n {/* Accent glow */}\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '50%',\n height: '50%',\n top: '10%',\n left: '25%',\n background: `radial-gradient(circle, ${colors[0]} 0%, transparent 70%)`,\n opacity: intensity.opacity * 0.5,\n animation: 'pulse-glow 6s ease-in-out infinite',\n }}\n />\n </>\n);\n\n// =============================================================================\n// Animation Styles\n// =============================================================================\n\nconst AnimationStyles: React.FC = () => (\n <style>{`\n @keyframes aurora-shift {\n 0%, 100% {\n transform: translateX(-10%) translateY(-30%) scaleX(1.1);\n }\n 50% {\n transform: translateX(10%) translateY(-25%) scaleX(0.9);\n }\n }\n\n @keyframes aurora-shimmer {\n 0%, 100% {\n opacity: 0.2;\n transform: scale(1);\n }\n 50% {\n opacity: 0.4;\n transform: scale(1.05);\n }\n }\n\n @keyframes mesh-float-1 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 25% { transform: translate(-5%, 10%) scale(1.05); }\n 50% { transform: translate(5%, 5%) scale(0.95); }\n 75% { transform: translate(-3%, -5%) scale(1.02); }\n }\n\n @keyframes mesh-float-2 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 33% { transform: translate(8%, -8%) scale(1.08); }\n 66% { transform: translate(-6%, 6%) scale(0.92); }\n }\n\n @keyframes mesh-float-3 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 50% { transform: translate(10%, 10%) scale(1.1); }\n }\n\n @keyframes mesh-float-4 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 25% { transform: translate(5%, -10%) scale(0.95); }\n 75% { transform: translate(-8%, 5%) scale(1.05); }\n }\n\n @keyframes orb-float-1 {\n 0%, 100% { transform: translate(0, 0); }\n 50% { transform: translate(30px, -40px); }\n }\n\n @keyframes orb-float-2 {\n 0%, 100% { transform: translate(0, 0); }\n 50% { transform: translate(-25px, 35px); }\n }\n\n @keyframes orb-float-3 {\n 0%, 100% { transform: translate(0, 0); }\n 33% { transform: translate(40px, 20px); }\n 66% { transform: translate(-20px, -30px); }\n }\n\n @keyframes orb-float-4 {\n 0%, 100% { transform: translate(0, 0); }\n 25% { transform: translate(-35px, -25px); }\n 75% { transform: translate(25px, 40px); }\n }\n\n @keyframes grid-drift {\n 0% { transform: translate(0, 0); }\n 100% { transform: translate(60px, 60px); }\n }\n\n @keyframes diagonal-shift {\n 0% { transform: translateX(0); }\n 100% { transform: translateX(160px); }\n }\n\n @keyframes pulse-glow {\n 0%, 100% { opacity: 0.3; transform: translateX(-50%) scale(1); }\n 50% { opacity: 0.6; transform: translateX(-50%) scale(1.1); }\n }\n\n @keyframes liquid-flow-1 {\n 0%, 100% {\n transform: translateY(0) scaleX(1);\n border-radius: 50% 50% 0 0;\n }\n 25% {\n transform: translateY(-30px) scaleX(1.05);\n border-radius: 45% 55% 0 0;\n }\n 50% {\n transform: translateY(-50px) scaleX(0.95);\n border-radius: 55% 45% 0 0;\n }\n 75% {\n transform: translateY(-25px) scaleX(1.02);\n border-radius: 48% 52% 0 0;\n }\n }\n\n @keyframes liquid-flow-2 {\n 0%, 100% {\n transform: translateY(0) scaleX(1);\n border-radius: 60% 40% 0 0;\n }\n 33% {\n transform: translateY(-40px) scaleX(1.08);\n border-radius: 40% 60% 0 0;\n }\n 66% {\n transform: translateY(-60px) scaleX(0.92);\n border-radius: 55% 45% 0 0;\n }\n }\n\n @keyframes bubble-float {\n 0%, 100% {\n transform: translateY(0) scale(1);\n opacity: 0.6;\n }\n 50% {\n transform: translateY(-100px) scale(1.2);\n opacity: 0.3;\n }\n }\n\n @keyframes spotlight-rotate {\n 0% { transform: translateX(-50%) rotate(0deg); }\n 100% { transform: translateX(-50%) rotate(360deg); }\n }\n `}</style>\n);\n","/**\n * ForceTheme - Force a specific theme for a section\n *\n * Wraps content to override the global theme setting.\n * Works by adding both the theme class and inline CSS variables\n * to ensure proper theme application regardless of parent context.\n */\n\n'use client';\n\nimport React, { ReactNode } from 'react';\n\nimport { cn } from '@djangocfg/ui-core/lib';\n\ninterface ForceThemeProps {\n theme: 'light' | 'dark';\n children: ReactNode;\n className?: string;\n}\n\n// Dark theme CSS variables\nconst darkThemeVars = {\n // Base HSL values\n '--background': '0 0% 4%',\n '--foreground': '0 0% 98%',\n '--card': '0 0% 8%',\n '--card-foreground': '0 0% 98%',\n '--popover': '0 0% 12%',\n '--popover-foreground': '0 0% 98%',\n '--primary': '217 91% 60%',\n '--primary-foreground': '0 0% 100%',\n '--secondary': '0 0% 98%',\n '--secondary-foreground': '0 0% 9%',\n '--muted': '0 0% 10%',\n '--muted-foreground': '0 0% 60%',\n '--accent': '0 0% 15%',\n '--accent-foreground': '0 0% 98%',\n '--destructive': '0 84% 60%',\n '--destructive-foreground': '0 0% 98%',\n '--border': '0 0% 15%',\n '--input': '0 0% 15%',\n '--ring': '217 91% 60%',\n // Tailwind color tokens (used by bg-*, text-*, etc)\n '--color-background': 'hsl(0 0% 4%)',\n '--color-foreground': 'hsl(0 0% 98%)',\n '--color-card': 'hsl(0 0% 8%)',\n '--color-card-foreground': 'hsl(0 0% 98%)',\n '--color-primary': 'hsl(217 91% 60%)',\n '--color-primary-foreground': 'hsl(0 0% 100%)',\n '--color-secondary': 'hsl(0 0% 98%)',\n '--color-secondary-foreground': 'hsl(0 0% 9%)',\n '--color-muted': 'hsl(0 0% 10%)',\n '--color-muted-foreground': 'hsl(0 0% 60%)',\n '--color-accent': 'hsl(0 0% 15%)',\n '--color-accent-foreground': 'hsl(0 0% 98%)',\n '--color-destructive': 'hsl(0 84% 60%)',\n '--color-destructive-foreground': 'hsl(0 0% 98%)',\n '--color-border': 'hsl(0 0% 15%)',\n '--color-input': 'hsl(0 0% 15%)',\n '--color-ring': 'hsl(217 91% 60%)',\n} as React.CSSProperties;\n\n// Light theme CSS variables\nconst lightThemeVars = {\n // Base HSL values\n '--background': '0 0% 96%',\n '--foreground': '0 0% 9%',\n '--card': '0 0% 100%',\n '--card-foreground': '0 0% 9%',\n '--popover': '0 0% 100%',\n '--popover-foreground': '0 0% 9%',\n '--primary': '217 91% 60%',\n '--primary-foreground': '0 0% 100%',\n '--secondary': '0 0% 9%',\n '--secondary-foreground': '0 0% 98%',\n '--muted': '0 0% 96%',\n '--muted-foreground': '0 0% 40%',\n '--accent': '0 0% 92%',\n '--accent-foreground': '0 0% 9%',\n '--destructive': '0 84% 60%',\n '--destructive-foreground': '0 0% 98%',\n '--border': '0 0% 90%',\n '--input': '0 0% 90%',\n '--ring': '217 91% 60%',\n // Tailwind color tokens (used by bg-*, text-*, etc)\n '--color-background': 'hsl(0 0% 96%)',\n '--color-foreground': 'hsl(0 0% 9%)',\n '--color-card': 'hsl(0 0% 100%)',\n '--color-card-foreground': 'hsl(0 0% 9%)',\n '--color-primary': 'hsl(217 91% 60%)',\n '--color-primary-foreground': 'hsl(0 0% 100%)',\n '--color-secondary': 'hsl(0 0% 9%)',\n '--color-secondary-foreground': 'hsl(0 0% 98%)',\n '--color-muted': 'hsl(0 0% 96%)',\n '--color-muted-foreground': 'hsl(0 0% 40%)',\n '--color-accent': 'hsl(0 0% 92%)',\n '--color-accent-foreground': 'hsl(0 0% 9%)',\n '--color-destructive': 'hsl(0 84% 60%)',\n '--color-destructive-foreground': 'hsl(0 0% 98%)',\n '--color-border': 'hsl(0 0% 90%)',\n '--color-input': 'hsl(0 0% 90%)',\n '--color-ring': 'hsl(217 91% 60%)',\n} as React.CSSProperties;\n\nexport function ForceTheme({ theme, children, className }: ForceThemeProps) {\n const themeVars = theme === 'dark' ? darkThemeVars : lightThemeVars;\n\n return (\n <div\n className={cn(theme, className)}\n style={themeVars}\n >\n {children}\n </div>\n );\n}\n","\"use client\"\n\nimport { ArrowRight, Sparkles, Wand2 } from 'lucide-react';\nimport React from 'react';\n\nimport {\n Button, ButtonLink, CopyButton, Sticky, Tooltip, TooltipContent, TooltipTrigger\n} from '@djangocfg/ui-core/components';\nimport { cn } from '@djangocfg/ui-core/lib';\n\nimport { AnimatedBackground, BackgroundVariant} from '../animations';\nimport { ForceTheme } from '../theme';\n\ninterface HeroFeature {\n icon: React.ReactNode;\n text: string;\n}\n\ninterface StatItem {\n number: string;\n label: string;\n icon?: React.ReactNode;\n}\n\ninterface SuperHeroProps {\n badge?: {\n icon?: React.ReactNode;\n text: string;\n };\n title: string;\n titleGradient?: string;\n subtitle: string;\n features?: HeroFeature[];\n primaryAction?: {\n label: string;\n href?: string;\n onClick?: () => void;\n };\n secondaryAction?: {\n label: string;\n href?: string;\n onClick?: () => void;\n icon?: React.ReactNode;\n };\n stats?: StatItem[];\n floatingElements?: React.ReactNode;\n backgroundVariant?: BackgroundVariant;\n backgroundIntensity?: 'subtle' | 'medium' | 'strong';\n showBackgroundSwitcher?: boolean;\n /** Single command (for backwards compatibility) */\n codeCommand?: string;\n /** Array of commands to display with copy buttons */\n codeCommands?: string[];\n className?: string;\n}\n\nconst BACKGROUND_VARIANTS: BackgroundVariant[] = [\n 'aurora-borealis',\n 'mesh-gradient',\n 'floating-orbs',\n 'geometric-flow',\n 'liquid-gradient',\n 'spotlight',\n 'none'\n];\n\nconst VARIANT_LABELS: Partial<Record<BackgroundVariant, string>> = {\n 'aurora-borealis': 'Aurora Borealis',\n 'mesh-gradient': 'Mesh Gradient',\n 'floating-orbs': 'Floating Orbs',\n 'geometric-flow': 'Geometric Flow',\n 'liquid-gradient': 'Liquid Gradient',\n 'spotlight': 'Spotlight',\n 'none': 'None',\n // Legacy labels for backwards compatibility\n 'gradient-mesh': 'Gradient Mesh',\n 'dot-matrix': 'Dot Matrix',\n 'grid-lines': 'Grid Lines',\n 'aurora': 'Aurora',\n 'particles': 'Particles',\n 'waves': 'Waves',\n};\n\nexport const SuperHero: React.FC<SuperHeroProps> = ({\n badge,\n title,\n titleGradient,\n subtitle,\n features = [],\n primaryAction,\n secondaryAction,\n stats = [],\n floatingElements,\n backgroundVariant = 'mesh-gradient',\n backgroundIntensity = 'medium',\n showBackgroundSwitcher = false,\n codeCommand,\n codeCommands,\n className\n}) => {\n const [currentVariant, setCurrentVariant] = React.useState<BackgroundVariant>(backgroundVariant);\n const [isMenuOpen, setIsMenuOpen] = React.useState(false);\n const [heroTheme, setHeroTheme] = React.useState<'light' | 'dark'>('dark');\n\n // Merge codeCommand (deprecated) with codeCommands for backwards compatibility\n const commands = React.useMemo(() => {\n if (codeCommands && codeCommands.length > 0) return codeCommands;\n if (codeCommand) return [codeCommand];\n return [];\n }, [codeCommand, codeCommands]);\n\n // Pre-compute title lines to avoid repeated split in JSX\n const titleLines = React.useMemo(() => title.split('\\n'), [title]);\n \n // Show background switcher in development mode or if explicitly enabled\n const isDevelopment = process.env.NODE_ENV === 'development';\n const shouldShowSwitcher = showBackgroundSwitcher || isDevelopment;\n\n const cycleBackground = () => {\n const currentIndex = BACKGROUND_VARIANTS.indexOf(currentVariant);\n const nextIndex = (currentIndex + 1) % BACKGROUND_VARIANTS.length;\n setCurrentVariant(BACKGROUND_VARIANTS[nextIndex]);\n };\n\n return (\n <ForceTheme theme={heroTheme}>\n <section\n className={cn(\n \"relative overflow-hidden bg-background text-foreground z-0 isolate\",\n className\n )}\n >\n {/* Animated Background */}\n <div className=\"absolute inset-0 -z-10\">\n <AnimatedBackground variant={currentVariant} intensity={backgroundIntensity} />\n </div>\n\n <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20 sm:py-24 lg:py-32 relative z-10\">\n <div className=\"text-center\">\n {/* Enhanced Badge */}\n {badge && (\n <div className=\"inline-flex items-center gap-2 px-4 py-2 bg-primary/10 text-primary rounded-full text-sm font-medium mb-6 border border-primary/20 hover:bg-primary/20 transition-all duration-300\">\n {badge.icon || <Sparkles className=\"w-4 h-4\" />}\n {badge.text}\n </div>\n )}\n\n {/* Enhanced Main Title */}\n <h1 className=\"text-4xl sm:text-5xl lg:text-6xl xl:text-7xl font-bold text-foreground mb-6 leading-tight\">\n {titleLines.map((line, index) => (\n <React.Fragment key={index}>\n {line}\n {index < titleLines.length - 1 && <br />}\n </React.Fragment>\n ))}\n {titleGradient && (\n <>\n <br />\n <span className=\"bg-gradient-to-r from-primary via-primary/80 to-secondary bg-clip-text text-transparent animate-pulse\">\n {titleGradient}\n </span>\n </>\n )}\n </h1>\n\n {/* Enhanced Subtitle */}\n <p className=\"text-xl sm:text-2xl lg:text-3xl text-muted-foreground mb-8 max-w-4xl mx-auto leading-relaxed\">\n {subtitle}\n </p>\n\n {/* Code Commands */}\n {commands.length > 0 && (\n <div className=\"flex flex-col items-center gap-2 mb-8\">\n {commands.map((cmd, index) => (\n <div\n key={index}\n className=\"inline-flex items-center gap-3 px-6 py-3 bg-background/50 backdrop-blur-md border border-primary/20 rounded-xl shadow-lg hover:border-primary/40 transition-colors group\"\n >\n <span className=\"text-muted-foreground font-mono text-sm select-none\">$</span>\n <code className=\"font-mono text-lg text-primary font-semibold\">\n {cmd}\n </code>\n <CopyButton\n value={cmd}\n variant=\"ghost\"\n className=\"p-1.5 h-auto rounded-md bg-primary/10 text-primary hover:bg-primary hover:text-primary-foreground transition-colors\"\n iconClassName=\"w-4 h-4\"\n />\n </div>\n ))}\n </div>\n )}\n\n {/* Enhanced Features */}\n {features.length > 0 && (\n <div className=\"flex flex-wrap justify-center gap-6 mb-8\">\n {features.map((feature, index) => (\n <div\n key={index}\n className=\"flex items-center gap-2 text-sm text-muted-foreground bg-card/50 px-4 py-2 rounded-full border border-border/50 hover:border-primary/30 hover:bg-card transition-all duration-300\"\n >\n {feature.icon}\n <span>{feature.text}</span>\n </div>\n ))}\n </div>\n )}\n\n {/* Enhanced CTA Buttons */}\n {(primaryAction || secondaryAction) && (\n <div className=\"flex flex-col sm:flex-row gap-4 justify-center mb-12\">\n {primaryAction && (\n <ButtonLink\n href={primaryAction.href || '#'}\n onClick={primaryAction.onClick}\n size=\"huge\"\n className=\"group\"\n >\n {primaryAction.label}\n <ArrowRight className=\"group-hover:translate-x-1 transition-transform duration-300\" />\n </ButtonLink>\n )}\n {secondaryAction && (\n <ButtonLink\n href={secondaryAction.href || '#'}\n onClick={secondaryAction.onClick}\n variant=\"outline\"\n size=\"huge\"\n className=\"group\"\n >\n {secondaryAction.label}\n {secondaryAction.icon && (\n <span className=\"group-hover:rotate-12 transition-transform duration-300\">\n {secondaryAction.icon}\n </span>\n )}\n </ButtonLink>\n )}\n </div>\n )}\n\n {/* Enhanced Stats Preview */}\n {stats.length > 0 && (\n <div className=\"flex flex-wrap justify-center gap-x-6 gap-y-3 md:gap-x-8 md:gap-y-4 max-w-3xl mx-auto\">\n {stats.map((stat, index) => (\n <div\n key={index}\n className=\"text-center min-w-[80px] md:min-w-[100px] px-4 py-2 md:px-5 md:py-3 rounded-lg border border-foreground/8 bg-background/10 backdrop-blur-sm\"\n >\n <div className=\"text-lg md:text-xl font-bold text-foreground mb-0.5 md:mb-1\">\n {stat.number}\n </div>\n <div className=\"text-[10px] md:text-xs text-foreground/50 uppercase tracking-wide\">\n {stat.label}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n\n {/* Floating Elements */}\n {floatingElements}\n\n {/* Sticky Background Switcher Bar */}\n {shouldShowSwitcher && (\n <Sticky \n bottom \n offsetBottom={32}\n className=\"w-full flex justify-center pointer-events-none\"\n zIndex={50}\n >\n <div className=\"inline-flex items-center gap-2 px-4 py-2 bg-background/90 backdrop-blur-md border border-border rounded-full shadow-lg pointer-events-auto\">\n {/* Current Background Label */}\n <span className=\"text-xs text-muted-foreground font-medium\">\n {VARIANT_LABELS[currentVariant] || currentVariant}\n </span>\n \n {/* Separator */}\n <div className=\"w-px h-4 bg-border\" />\n \n {/* Cycle Background Button */}\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={cycleBackground}\n className=\"h-7 w-7 p-0\"\n >\n <Wand2 className=\"w-3.5 h-3.5\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>Cycle background</p>\n </TooltipContent>\n </Tooltip>\n\n {/* Background Menu */}\n <div className=\"relative\">\n {isMenuOpen && (\n <div className=\"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 bg-card border border-border rounded-lg shadow-xl p-2 min-w-[180px]\">\n <div className=\"text-xs font-semibold text-muted-foreground mb-2 px-2\">\n Background Style\n </div>\n <div className=\"space-y-1\">\n {BACKGROUND_VARIANTS.map((variant) => (\n <button\n key={variant}\n onClick={() => {\n setCurrentVariant(variant);\n setIsMenuOpen(false);\n }}\n className={cn(\n \"w-full text-left px-3 py-2 rounded-md text-sm transition-colors\",\n currentVariant === variant\n ? \"bg-primary text-primary-foreground\"\n : \"hover:bg-accent hover:text-accent-foreground\"\n )}\n >\n {VARIANT_LABELS[variant] || variant}\n </button>\n ))}\n </div>\n </div>\n )}\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => setIsMenuOpen(!isMenuOpen)}\n className=\"h-7 w-7 p-0\"\n >\n <Sparkles className=\"w-3.5 h-3.5\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>Choose background</p>\n </TooltipContent>\n </Tooltip>\n </div>\n </div>\n </Sticky>\n )}\n </section>\n </ForceTheme>\n );\n}; ","import React from 'react';\n\nimport { Card, CardContent } from '@djangocfg/ui-core/components';\nimport { cn } from '@djangocfg/ui-core/lib';\n\ninterface Testimonial {\n content: string;\n author: {\n name: string;\n title?: string;\n company?: string;\n avatar?: string;\n };\n rating?: number;\n}\n\ninterface TestimonialSectionProps {\n title?: string;\n subtitle?: string;\n testimonials: Testimonial[];\n columns?: 1 | 2 | 3;\n className?: string;\n background?: 'dark' | 'card' | 'gradient';\n}\n\nexport const TestimonialSection: React.FC<TestimonialSectionProps> = ({\n title,\n subtitle,\n testimonials,\n columns = 3,\n className,\n background = 'dark'\n}) => {\n // Simple Tailwind 4 classes only - no custom utilities\n const gridClasses = {\n 1: 'grid-cols-1 max-w-4xl mx-auto',\n 2: 'grid-cols-1 md:grid-cols-2',\n 3: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',\n };\n\n const backgroundClasses = {\n dark: 'bg-background',\n card: 'bg-muted/30',\n gradient: 'bg-gradient-to-b from-background via-muted/10 to-background',\n };\n\n const renderStars = (rating: number) => {\n return Array.from({ length: 5 }, (_, i) => (\n <span key={i} className={i < rating ? 'text-yellow-400' : 'text-neutral-400'}>\n ★\n </span>\n ));\n };\n\n return (\n <section className={cn(\n 'relative py-16 sm:py-20 md:py-24 lg:py-32',\n backgroundClasses[background],\n className\n )}>\n <div className=\"container max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n {(title || subtitle) && (\n <div className=\"text-center mb-12 sm:mb-14 md:mb-16\">\n {title && (\n <h2 className=\"text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold text-foreground mb-4 sm:mb-6\">\n {title}\n </h2>\n )}\n {subtitle && (\n <p className=\"text-lg sm:text-xl text-muted-foreground max-w-3xl mx-auto\">\n {subtitle}\n </p>\n )}\n </div>\n )}\n\n <div className={cn('grid gap-6 sm:gap-8', gridClasses[columns])}>\n {testimonials.map((testimonial, index) => (\n <Card\n key={index}\n className=\"h-full hover:shadow-lg transition-all duration-300 backdrop-blur-sm border-border/50 hover:border-primary/30 group\"\n >\n <CardContent className=\"p-8\">\n {testimonial.rating && (\n <div className=\"flex mb-6 text-lg\">\n {renderStars(testimonial.rating)}\n </div>\n )}\n \n <blockquote className=\"text-foreground mb-8 italic text-lg leading-relaxed group-hover:text-primary transition-colors duration-300\">\n \"{testimonial.content}\"\n </blockquote>\n \n <div className=\"flex items-center\">\n {testimonial.author.avatar && (\n <img\n src={testimonial.author.avatar}\n alt={testimonial.author.name}\n className=\"w-14 h-14 rounded-full mr-4 ring-2 ring-primary/20 group-hover:ring-primary/40 transition-all duration-300\"\n />\n )}\n \n <div>\n <div className=\"font-semibold text-foreground group-hover:text-primary transition-colors duration-300\">\n {testimonial.author.name}\n </div>\n {testimonial.author.title && (\n <div className=\"text-sm text-muted-foreground\">\n {testimonial.author.title}\n {testimonial.author.company && ` at ${testimonial.author.company}`}\n </div>\n )}\n </div>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n </div>\n </section>\n );\n}; "]}
|