--- /** * docs/02: "Three or four credential slots. NEVER matter counts — AGENTS.md §4." * * THE SUBSTITUTION PRINCIPLE IS THE POINT OF THIS COMPONENT (§4). Wherever a * design wants a "how much / how many", it takes a longer-arc credential * instead: something already substantial and true at launch that does not grow * by closing files. `Q.Med` / `JD + ML` / `EN · FA`, with `Q.Arb` fourth. * * So this component is not a stat row wearing a different name, and it must * never be handed one. §4 Forbidden bars every count of matters closed, hours * mediated or years in practice, plus settlement rates and dollar figures. The * slots come from src/data/site.ts, which mirrors §4; nothing is typed here. * *
RATHER THAN A DIV GRID. Each pair is a term and its description, which * is what a description list is, and it fixes the reading order: a screen * reader gets "Q.Arb — ADRIC / ADRIO" as one associated pair rather than four * values then four labels. Wrapping each dt/dd pair in a
inside
is * valid HTML and is what makes the grid tractable. */ interface Props { slots: ReadonlyArray<{ value: string; label: string }>; } // No `class` prop: it was declared, never passed, and a parent cannot reach this // root anyway (SectionHeading carries the measurement; CLAUDE.md the rule). const { slots } = Astro.props; ---
{ slots.map((slot) => (
{slot.value}
{slot.label}
)) }