UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

22 lines (21 loc) 1.08 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { walkElements } from "../../util/element.js"; import { DirectoryCard } from "../docs/DirectoryCard.js"; import { DocumentationCard } from "../docs/DocumentationCard.js"; import { FileCard } from "../docs/FileCard.js"; import { createMapper } from "../misc/Mapper.js"; /** Mapping + Mapper pair for tree cards — wrap children in `<TreeCardMapping>` to override. */ export const [TreeCardMapping, TreeCardMapper] = createMapper({ "tree-directory": DirectoryCard, "tree-file": FileCard, "tree-documentation": DocumentationCard, }); /** * Render a list of tree elements as a stack of cards. * - Each element is dispatched via `<TreeCardMapper>` to its registered renderer. * - `path` is threaded through to each card so it can compute its href as `path + name`. * - To override the renderer for a specific element type, wrap in `<TreeCardMapping mapping={…}>`. */ export function TreeCards({ path = "/", children }) { return _jsx(TreeCardMapper, { path: path, children: walkElements(children) }); }