import Link from 'next/link'; import VisualLinkPreview from '@/components/blog/VisualLinkPreview'; import { Callout } from '@/components/ui'; import HighlightBox from '@/components/blog/HighlightBox'; import Stats from '@/components/blog/Stats'; import AnimatedImage from '@/components/blog/AnimatedImage'; import ChatBubble from '@/components/blog/ChatBubble'; import SplitHeading from '@/components/blog/SplitHeading'; import PowerCTA from '@/components/blog/PowerCTA'; import StickyNarrative from '@/components/blog/StickyNarrative'; import TechnicalGrid from '@/components/blog/TechnicalGrid'; import ComparisonGrid from '@/components/blog/ComparisonGrid'; import { generateHeadingId, getTextContent } from '@/lib/blog'; export const mdxComponents = { VisualLinkPreview, Callout, HighlightBox, Stats, AnimatedImage, ChatBubble, PowerCTA, SplitHeading, StickyNarrative, TechnicalGrid, ComparisonGrid, h1: ({ children, ...props }: any) => { const id = props.id || generateHeadingId(getTextContent(children)); return ( {children} ); }, a: ({ href, children, ...props }: any) => { // Special handling for PDF downloads to make them prominent if (href?.endsWith('.pdf')) { return ( {children} (PDF) ); } if (href?.startsWith('/')) { return ( {children} ); } return ( {children} ); }, img: (props: any) => , h2: ({ children, ...props }: any) => { const id = props.id || generateHeadingId(getTextContent(children)); return (

{children}

); }, h3: ({ children, ...props }: any) => { const id = props.id || generateHeadingId(getTextContent(children)); return (

{children}

); }, p: ({ children, ...props }: any) => (
{children}
), ul: ({ children, ...props }: any) => ( ), ol: ({ children, ...props }: any) => (
    {children}
), li: ({ children, ...props }: any) => (
  • {children}
  • ), blockquote: ({ children, ...props }: any) => (
    {children}
    ), strong: ({ children, ...props }: any) => ( {children} ), code: ({ children, ...props }: any) => ( {children} ), pre: ({ children, ...props }: any) => (
          {children}
        
    ), table: ({ children, ...props }: any) => (
    {children}
    ), thead: ({ children, ...props }: any) => ( {children} ), tbody: ({ children, ...props }: any) => ( {children} ), tr: ({ children, ...props }: any) => ( {children} ), th: ({ children, ...props }: any) => ( {children} ), td: ({ children, ...props }: any) => ( {children} ), };