import type { ReactNode } from 'react'; import type { StoryBeat } from '@/lib/demo-kit/types'; import { cn } from '@/lib/utils'; export interface BeatSectionProps { beat: StoryBeat; /** 1-based. The narrative is numbered so a reader can be told "see beat 3". */ number: number; children: ReactNode; className?: string; } /** * One beat of the exec narrative: a number, a title, a claim, and the surface * that makes the claim true. * * The claim is typeset as an assertion — large, high contrast, above the * evidence — because the failure mode of a demo site is a visitor watching a * pretty animation and never learning what it was supposed to prove. */ export function BeatSection({ beat, number, children, className }: BeatSectionProps) { const headingId = `beat-${beat.id}-title`; return (

{beat.title}

{beat.claim}

{children}
); }