/** * `` — the catalogue root at `/c`: the carousel over the top-level * tree. * * This is a single-pair screen, which is exactly why it has a nav entry while * `/` does not. The storefront's landing composes THIS pair's carousel with * search's newest-listings feed (spec §5.1), and a composed route belongs to * the container that composes it — see `nav/manifest.ts`. * * Everything a host can decide about the chrome below it passes THROUGH this * screen, because the nav manifest mounts this component and nothing else: a * prop the parts take and this page does not forward is a capability the `/c` * route can never have. Two of them, both wired here: * * - `linkComponent` — the host router's ``, so a category click is an * SPA navigation instead of a full page load (`CategoryLink.tsx`); * - `renderIcon` — the resolver for the carousel's OPAQUE icon references. * Without it the landing hero is a row of text tiles by construction, and * that is not a decision this page is allowed to take for the host. */ import type { ReactElement, ReactNode } from "react"; import type { CarouselEntry } from "../headless/CategoryCarousel.js"; import type { LinkComponentProp } from "./CategoryLink.js"; import type { BlockRhythm } from "./blockRhythm.js"; import type { ThemeModeProp } from "./types.js"; export interface CatalogPageProps extends ThemeModeProp, LinkComponentProp { readonly basePath?: string; /** * Turn a carousel tile's opaque icon reference into something renderable — * forwarded verbatim to {@link CategoryCarouselStrip}. Absent means the * tiles are text only, which is a legitimate configuration and not a * default this screen may impose by dropping the prop. */ readonly renderIcon?: (reference: string, entry: CarouselEntry) => ReactNode; /** * WHERE the space between this page's blocks comes from. Default `"token"` * — the same token pair `` and `@stapel/search-react` read, so * one declaration tunes every screen. `"legacy"` keeps the flat `spacing[4]` * this page wrote inline. See `blockRhythmCss`. */ readonly blockRhythm?: BlockRhythm; } export declare function CatalogPage(props: CatalogPageProps): ReactElement; //# sourceMappingURL=CatalogPage.d.ts.map