import { mergeProps } from "@base-ui/react/merge-props";
import { useRender } from "@base-ui/react/use-render";
import type { ComponentProps } from "react";
import { Tagline } from "@/components/features/pxl/marketing/tagline";
import { cn } from "@/lib/utils";
function SectionHeading({
}: ComponentProps<"div"> & {
alignment?: "left" | "center" | "right";
data-slot="section-heading"
data-alignment={alignment}
"group/section-heading flex max-w-3xl flex-col gap-2.5",
alignment === "left" && "items-start text-left",
alignment === "right" && "items-end text-right",
alignment === "center" && "mx-auto items-center text-center",
function SectionHeadingTagline({ ...props }: ComponentProps<typeof Tagline>) {
return <Tagline variant="default" {...props} />;
function SectionHeadingTitle({
}: useRender.ComponentProps<"h2">) {
props: mergeProps<"div">(
"data-slot": "section-heading-title",
"cn-font-heading scroll-m-20 text-4xl font-medium tracking-tight text-balance group-data-[size=sm]/section-heading:text-3xl lg:text-5xl lg:group-data-[size=sm]/section-heading:text-4xl",
function SectionHeadingBody({ className, ...props }: ComponentProps<"div">) {
data-slot="section-heading-body"
"max-w-2xl text-base text-pretty text-muted-foreground",
function SectionHeadingActions({ className, ...props }: ComponentProps<"div">) {
data-slot="section-heading-actions"
"flex w-full flex-col gap-1.5 sm:w-fit sm:flex-row",