import * as React from "react"; import { BinaryTicker } from "@/src/components/bits/BinaryTicker"; import { BitSeam } from "@/src/components/bits/BitSeam"; import { BitWipe } from "@/src/components/bits/BitWipe"; import { DecodeText } from "@/src/components/bits/DecodeText"; import { Reveal } from "@/src/components/Reveal"; import { ChapterIntro } from "@/src/components/story/ChapterIntro"; import type { Figure } from "@/src/components/story/threadPath"; interface BlockProps { /** Two-digit section index, shown with its binary form. */ index: string; label: string; title: React.ReactNode; /** Makes the section a chapter of the story: its sentence and the figure the thread forms. */ chapter?: { line: string; figure: Figure; flip: boolean }; id?: string; /** `dark` turns the section into a dark stage. */ tone?: "light" | "dark"; children: React.ReactNode; } /** * Block: one section of the homepage. A single left axis, one kicker line, * one oversized headline, then the content. No sidebars. */ export const Block: React.FC = ({ index, label, title, chapter, id, tone = "light", children, }) => { const dark = tone === "dark"; return (
{dark && (
); };