/**
 * MDX Components Registry
 * 
 * Exports all custom MDX components for use in documentation pages.
 * These components are Mintlify-compatible.
 */

// Callouts
export {
  Note,
  Warning,
  Info,
  Tip,
  Check,
  Error,
  Callout,
} from './callouts'

// Cards
export {
  Card,
  CardGroup,
} from './cards'

// Accordion
export {
  Accordion,
  AccordionGroup,
} from './accordion'

// Steps
export {
  Steps,
  Step,
} from './steps'

// Tabs
export {
  Tabs,
  Tab,
} from './tabs'

// Code Group
export { CodeGroup } from './code-group'

// Layout
export {
  Frame,
  Columns,
  Snippet,
  Latex,
} from './frame'

// API Documentation
export {
  ParamField,
  ResponseField,
  Expandable,
} from './param-field'

// Embeds
export {
  Iframe,
  Video,
  Loom,
} from './iframe'

// Images
export {
  Image,
  Screenshot,
  Logo,
  Icon,
} from './image'

// Highlight
export {
  Highlight,
  Marker,
  Underline,
} from './highlight'

// Badge
export { Badge } from './badge'

// Mermaid
export { Mermaid } from './mermaid'

// File Embeds
export { PDF, Audio, Download } from './file-embeds'

// Changelog
export {
  ChangelogEntry,
  ChangelogTitle,
  ChangelogDescription,
  ChangelogImage,
  BreakingChange,
  MoreUpdates,
  UpdateItem,
} from './changelog'

// Landing Page Components
export {
  Hero,
  Pre,
  Tagline,
  Headline,
  Description,
  CommandBox,
  Section,
  Center,
  FeatureGrid,
  FeatureItem,
  ButtonLink,
  Spacer,
  Divider,
} from './landing'

// Re-export types
export type { Frontmatter } from '@/lib/docs/mdx/frontmatter'

/**
 * Default MDX components mapping
 * 
 * Use this object with next-mdx-remote to enable all custom components
 */
import { Note, Warning, Info, Tip, Check, Error as ErrorCallout, Callout } from './callouts'
import { Card, CardGroup } from './cards'
import { Accordion, AccordionGroup } from './accordion'
import { Steps, Step } from './steps'
import { Tabs, Tab } from './tabs'
import { CodeGroup } from './code-group'
import { Frame, Columns, Snippet, Latex } from './frame'
import { ParamField, ResponseField, Expandable } from './param-field'
import { Iframe, Video, Loom } from './iframe'
import { Image, Screenshot, Logo, Icon } from './image'
import { Highlight, Marker, Underline } from './highlight'
import { Badge } from './badge'
import { Mermaid } from './mermaid'
import { PDF, Audio, Download } from './file-embeds'
import { ChangelogEntry, ChangelogTitle, ChangelogDescription, ChangelogImage, BreakingChange, MoreUpdates, UpdateItem } from './changelog'
import { Hero, Pre, Tagline, Headline, Description, CommandBox, Section, Center, FeatureGrid, FeatureItem, ButtonLink, Spacer, Divider } from './landing'

export const mdxComponents = {
  // Callouts
  Note,
  Warning,
  Info,
  Tip,
  Check,
  Error: ErrorCallout,
  Callout,
  
  // Cards
  Card,
  CardGroup,
  
  // Accordion
  Accordion,
  AccordionGroup,
  
  // Steps
  Steps,
  Step,
  
  // Tabs
  Tabs,
  Tab,
  
  // Code
  CodeGroup,
  
  // Layout
  Frame,
  Columns,
  Snippet,
  Latex,
  
  // API docs
  ParamField,
  ResponseField,
  Expandable,
  
  // Embeds
  Iframe,
  Video,
  Loom,
  
  // Images
  Image,
  Screenshot,
  Logo,
  Icon,
  
  // Highlight
  Highlight,
  Marker,
  Underline,
  
  // Badge
  Badge,
  
  // Mermaid
  Mermaid,
  
  // File Embeds
  PDF,
  Audio,
  Download,
  
  // Changelog
  ChangelogEntry,
  ChangelogTitle,
  ChangelogDescription,
  ChangelogImage,
  BreakingChange,
  MoreUpdates,
  UpdateItem,
  
  // Landing Page
  Hero,
  Pre,
  Tagline,
  Headline,
  Description,
  CommandBox,
  Section,
  Center,
  FeatureGrid,
  FeatureItem,
  ButtonLink,
  Spacer,
  Divider,
}

export default mdxComponents
