36 lines
2.6 KiB
Markdown
36 lines
2.6 KiB
Markdown
|
|
# CONTENT-WP-0002 implementation notes
|
||
|
|
|
||
|
|
Date: 2026-10-13
|
||
|
|
|
||
|
|
## T01 — tokens, layout, header, hero, table
|
||
|
|
|
||
|
|
Pinned upstream: `b594d7433bf4e408b44215e25e5304696d6f840e`.
|
||
|
|
|
||
|
|
R4 applies. `ResultsTable.tsx` in the pin depends on translation, column filters, column resize, and infinite scroll. `SiteChrome.tsx` and `src/app/layout.tsx` depend on the OnCo mark, garden art, command palette, and medical footer. Those files were not copied whole.
|
||
|
|
|
||
|
|
What landed under `ui/`:
|
||
|
|
|
||
|
|
- Color tokens, type classes (`.display`, `.kicker`), card, chip, button, hero wash, skip link, and sticky table rules, adapted from `src/app/globals.css`. The table class is `records`.
|
||
|
|
- A sticky header and a footer. The header links to `/` and `#records` only, so it does not point at kind routes that do not exist yet.
|
||
|
|
- A hero with the upstream structure and Content Explorer copy. The sample is `examples/dataspaces/systems-thinking/snapshot.json`.
|
||
|
|
- `ResultsTable` renders columns, an empty state, sort buttons, and `aria-sort`. The parent owns the sort. URL query state stays with T04.
|
||
|
|
|
||
|
|
Deviations:
|
||
|
|
|
||
|
|
- Accent values stay the upstream pink (`#c2185b` / `#d6336c`). That color is part of the token file being adapted. It is not used as a medical claim.
|
||
|
|
- Geist font files are not fetched. The sans stack is the system UI font.
|
||
|
|
- Garden keyframes, the OnCo mark, column resize, column filters, and paging are omitted.
|
||
|
|
- Sort state is local React state.
|
||
|
|
|
||
|
|
Provenance: `ui/NOTICE` contains `Copyright (c) 2026 OnCo` and the MIT permission text. Adapted files name the pin.
|
||
|
|
|
||
|
|
Checks on 2026-10-13:
|
||
|
|
|
||
|
|
- `npm test` in `ui/`: 4 tests passed (sort order, empty state, sort button, `aria-sort`).
|
||
|
|
- `npm run typecheck` in `ui/`: `tsc --noEmit` passed.
|
||
|
|
- `python3 scripts/check_ui_boundary.py`: no oncology, cancer, drug, or target token on UI import lines, and the notice is present. This does not close T07; that gate still has to cover the later components.
|
||
|
|
- `python3 scripts/validate_fixtures.py` and `python3 -m unittest tests.test_contract tests.test_ingest` passed.
|
||
|
|
- `next dev` on `127.0.0.1:3400` returned the home page (HTTP 200, Next.js 16.3.4). The HTML contained the Content Explorer heading, the skip link, `#main`, and the fixture titles Feedback, Requisite variety, and Stock and flow model. The rendered page did not contain the words oncology or cancer. The dev server was stopped after that check. No browser pane was available, so this was an HTTP render check, not a keyboard or screenshot pass. Those remain T09.
|
||
|
|
|
||
|
|
Not done: kind index, detail, BrowserRow, URL facets, keyboard states, both dataspaces, the formal import gate, or keyboard and small-screen smoke.
|