---
title: "Catalogue"
description: "Every component id the system has declared, with its category, its release phase and the search synonyms that reach it."
url: "https://opsinjs.pensievelabs.org/reference/generated/catalogue"
source: "https://opsinjs.pensievelabs.org/reference/generated/catalogue.md"
section: "Reference"
kind: "reference"
reviewed: "2026-09-02"
reviewer: "engineering"
aliases: ["component list", "does opsinjs have"]
---

> Elements written as `<PascalCase … />` below are opsinjs documentation
> components. Their attributes are the content: the values they render are
> generated from `tokens/*.json` and `registry/catalogue.ts` and are
> published separately at https://opsinjs.pensievelabs.org/r/index.json and under the Reference
> section.
> Nothing is missing from this page. The data simply does not live in
> the prose.

<PageTemplate kind="reference" />

## How this is generated [#how-this-is-generated]

**Source:** `registry/catalogue.ts`, which is the single declaration of the id
namespace.
&#x2A;*Script:** `scripts/build-registry.mts` writes `lib/generated/catalogue.json`;
`scripts/build-reference.mts` renders this page. &#x2A;*Command:** `pnpm run generate`.

This is the answer to "does opsinjs have one of these". It is deliberately the
most boring page on the site and the one most worth trusting: every id the system
will ever resolve appears here, and nothing appears here that is not declared in
the catalogue file. Every id declared today is implemented, installable and
documented, so there is no row on this page without a page behind it. A row for
something specified and not yet built would still appear, with its phase saying
so.

**Five columns.** *Component* is the kebab-case id, which is the same string used
in a URL, in a registry item and in a CLI command, and it is also the docs URL
segment for that component's page. *Category* groups it, and a category beginning
`health-` carries extra obligations, namely a clinical contract section and at
least one governing doctrine page. *Status* is one of the three
[release phases](../../project/release-phases.mdx), and every row reads `shipped`
today. *Since* is the version an id first shipped under, and no version has been
cut yet, so every row reads `unreleased` and the column distinguishes nothing.
*Search synonyms* are the aliases, which is how "lab result" and "blood pressure"
find their way to the right row.

**What is deliberately excluded.** Parts of compound components are not catalogue
entries, so a dialog's panel is documented on the dialog page, not as its own id.
Examples and screens have their own registry types and are listed with the
registry, not here.

{/* opsinjs:generated:begin - everything below is replaced by scripts/build-reference.mts */}

## Specified [#specified]

| Component           | Category             | Status  | Since      | Search synonyms                                                                             |
| ------------------- | -------------------- | ------- | ---------- | ------------------------------------------------------------------------------------------- |
| `result-card`       | health-data-display  | shipped | unreleased | results, lab result, test result, report card, blood pressure, a1c                          |
| `range-bar`         | health-data-display  | shipped | unreleased | reference range, normal range, in range, range indicator, gauge bar                         |
| `score-dial`        | health-data-display  | shipped | unreleased | dial, ring, gauge, score, index, bmi                                                        |
| `trend-sparkline`   | health-data-display  | shipped | unreleased | sparkline, trend, over time, mini chart, line chart, chart, graph                           |
| `metric-tile`       | health-data-display  | shipped | unreleased | stat, kpi, vitals, summary tile, steps, resting heart rate, spo2, tile                      |
| `status-pill`       | health-data-display  | shipped | unreleased | chip, status chip, status badge, status label, traffic light                                |
| `timeline-entry`    | health-data-display  | shipped | unreleased | history item, event list, activity feed                                                     |
| `range-legend`      | health-data-display  | shipped | unreleased | key, chart legend, band legend                                                              |
| `alert-banner`      | health-communication | shipped | unreleased | warning banner, notification banner, inline alert, warning, notification, alert, banner     |
| `care-card`         | health-communication | shipped | unreleased | what to do next, action card, advice card, next steps, guidance card, what to do, advice    |
| `term`              | health-communication | shipped | unreleased | glossary term, jargon, plain word, definition, plain english, tooltip term                  |
| `consent-sheet`     | health-communication | shipped | unreleased | consent, permission, opt in, data sharing, agree                                            |
| `disclaimer-note`   | health-communication | shipped | unreleased | disclaimer, not medical advice, legal note, small print, safety note                        |
| `source-citation`   | health-communication | shipped | unreleased | citation, evidence link, reviewed by                                                        |
| `log-sheet`         | health-input         | shipped | unreleased | log, diary, journal, daily entry, capture, quick entry, bottom sheet entry                  |
| `reading-input`     | health-input         | shipped | unreleased | enter a reading, measurement input, numeric entry, manual entry, numeric input, unit switch |
| `body-map`          | health-input         | shipped | unreleased | pain map, anatomy diagram, where does it hurt                                               |
| `value`             | health-formatting    | shipped | unreleased | number, unit, format a number, numeric display, figure, format, formatted number            |
| `relative-time`     | health-formatting    | shipped | unreleased | time ago, timestamp, last updated, date display, ago, freshness, staleness                  |
| `table`             | data-display         | shipped | unreleased | data table, grid, rows and columns                                                          |
| `badge`             | data-display         | shipped | unreleased | counter, label chip                                                                         |
| `surface`           | surfaces             | shipped | unreleased | material, glass, blur, elevation, layer, translucency, vibrancy                             |
| `card`              | surfaces             | shipped | unreleased | panel, container, content box, box, tile group                                              |
| `sheet`             | surfaces             | shipped | unreleased | bottom sheet, drawer, side panel, slide over, modal sheet, detent                           |
| `dialog`            | surfaces             | shipped | unreleased | modal, alert dialog, confirm, popup                                                         |
| `callout`           | feedback             | shipped | unreleased | admonition, note box, info box, tip, note, aside                                            |
| `empty-state`       | feedback             | shipped | unreleased | no data, nothing here, zero state, blank slate                                              |
| `skeleton`          | feedback             | shipped | unreleased | loading placeholder, shimmer, ghost, loading state, placeholder                             |
| `segmented-control` | navigation           | shipped | unreleased | segmented buttons, toggle group                                                             |
| `tab-bar`           | navigation           | shipped | unreleased | bottom navigation, nav bar                                                                  |
| `stepper`           | navigation           | shipped | unreleased | wizard, step indicator, multi step                                                          |
| `button`            | actions-and-forms    | shipped | unreleased | cta, action, submit, primary button                                                         |
| `link`              | actions-and-forms    | shipped | unreleased | anchor, hyperlink                                                                           |
| `field`             | actions-and-forms    | shipped | unreleased | form field, input wrapper, form control, validation message, label, error message, hint     |
| `icon-button`       | actions-and-forms    | shipped | unreleased | glyph button, round button                                                                  |
| `switch`            | actions-and-forms    | shipped | unreleased | toggle                                                                                      |
| `checkbox`          | actions-and-forms    | shipped | unreleased | tick box, multi select                                                                      |
| `radio-group`       | actions-and-forms    | shipped | unreleased | radio buttons, single choice                                                                |
| `select`            | actions-and-forms    | shipped | unreleased | dropdown, picker                                                                            |
| `number-field`      | actions-and-forms    | shipped | unreleased | stepper input, quantity input                                                               |
| `textarea`          | actions-and-forms    | shipped | unreleased | long text, notes input                                                                      |
| `divider`           | layout               | shipped | unreleased | separator, rule                                                                             |
| `avatar`            | utility              | shipped | unreleased | profile picture, initials, user image                                                       |
| `visually-hidden`   | utility              | shipped | unreleased | sr only, screen reader only, clip                                                           |
| `goal-ring`         | health-data-display  | shipped | unreleased | activity ring, close your rings, daily goal                                                 |
| `scale-input`       | health-input         | shipped | unreleased | pain scale, rating scale, likert                                                            |
| `dose-tracker`      | health-input         | shipped | unreleased | medication, pill tracker, dose, adherence tracker                                           |
| `questionnaire`     | health-input         | shipped | unreleased | survey, assessment, phq, screening form                                                     |
| `symptom-picker`    | health-input         | shipped | unreleased | symptoms, how are you feeling, symptom checker                                              |
| `toast`             | feedback             | shipped | unreleased | snackbar, transient message, notification toast                                             |
| `progress`          | feedback             | shipped | unreleased | progress bar, completion                                                                    |
| `spinner`           | feedback             | shipped | unreleased | loader, busy indicator, activity indicator                                                  |
| `tooltip`           | overlay              | shipped | unreleased | hover label                                                                                 |
| `popover`           | overlay              | shipped | unreleased | anchored panel, flyout                                                                      |
| `menu`              | overlay              | shipped | unreleased | dropdown menu, context menu, overflow menu                                                  |
| `tabs`              | navigation           | shipped | unreleased | tab list, view switcher                                                                     |
| `accordion`         | navigation           | shipped | unreleased | disclosure, expander, collapsible                                                           |
| `slider`            | actions-and-forms    | shipped | unreleased | range input, drag to set                                                                    |
| `combobox`          | actions-and-forms    | shipped | unreleased | autocomplete, typeahead, search select                                                      |
| `scroll-area`       | layout               | shipped | unreleased | scroller, overflow container                                                                |

{/* opsinjs:generated:end */}
