'use client'; import { useMemo } from 'react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; import { Button } from '@/components/ui/button'; import { Copy, Download } from 'lucide-react'; import { toast } from 'sonner'; import { buildCSS, buildTailwindCSS } from '@/lib/animate/cssBuilder'; import type { AnimationConfig } from '@/types/animate'; interface Props { config: AnimationConfig; } function CodeBlock({ code, filename }: { code: string; filename: string }) { const copy = () => { navigator.clipboard.writeText(code); toast.success('Copied to clipboard!'); }; const download = () => { const blob = new Blob([code], { type: 'text/css' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = filename; a.click(); URL.revokeObjectURL(url); toast.success(`Downloaded ${filename}`); }; return (
          {code}
        
); } export function ExportPanel({ config }: Props) { const css = useMemo(() => buildCSS(config), [config]); const tailwind = useMemo(() => buildTailwindCSS(config), [config]); return ( Export Plain CSS Tailwind v4 ); }