---
/**
 * Custom Portable Text renderer for marketing blocks.
 *
 * This component maps custom block types (marketing.hero, marketing.features, etc.)
 * to their corresponding Astro components. Pass it to the PortableText component
 * via the `components` prop.
 */
import type { PortableTextBlock } from "emdash";
import { PortableText } from "emdash/ui";
import Hero from "./blocks/Hero.astro";
import Features from "./blocks/Features.astro";
import Testimonials from "./blocks/Testimonials.astro";
import Pricing from "./blocks/Pricing.astro";
import FAQ from "./blocks/FAQ.astro";

interface Props {
	value: PortableTextBlock[];
}

const { value } = Astro.props;

// Custom block type components
const marketingTypes = {
	"marketing.hero": Hero,
	"marketing.features": Features,
	"marketing.testimonials": Testimonials,
	"marketing.pricing": Pricing,
	"marketing.faq": FAQ,
};
---

<PortableText value={value} components={{ type: marketingTypes }} />
