Spaces:
Sleeping
Sleeping
File size: 4,637 Bytes
0fff343 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | # Prompt β four small UI fixes (default cohort, remove peel-off panel, fix two clipped bits)
All frontend-only, verified line refs in `web/app/Lab.tsx`. No engine/API/airgap change. `tsc` after.
## 1. Make Head & Neck the default cohort
- `const [dataset, setDatasetState] = useState<DatasetId>("coadread")` (~line 541) β default to **`"hnsc"`**.
- Make sure the initial selected **objective** matches the default dataset's first objective (HPV detection) β i.e. on first load the page shows Head & Neck + HPV detection, not a colorectal objective. (Mirror the logic at ~line 592 that picks `DATASET_REGISTRY[next].objectives[0].key` on dataset change; apply the same to the initial objective state.)
- Colorectal stays selectable; only the default changes.
## 2. Remove the "Discovered axes" / "Find next axis" panel from the UI
Peel-off only makes sense for the unsupervised objective (which isn't a UI objective anymore); on a supervised HPV run it re-finds the same signal and shows nonsensical "Aligns with MSI / TMB" text. Remove it from the page:
- Drop the `<DiscoveredAxes β¦/>` render (~line 867). Keep the `DiscoveredAxes` component definition (~884) and the backend untouched β just don't render it. (Equivalently, gate its render to `target === "none"`, which never occurs in the UI.)
## 3. Fix the clipped "Cancer / problem" card subtitle
The dataset cards show "(TCGA COADREAD" / "(TCGA HNSC" with the closing paren cut off. In `CancerSelector` (~line 1043), the subtitle line is being clipped (truncate / overflow / fixed width). Let it display in full β allow it to wrap or size to content so the complete "(TCGA COADREAD)" / "(TCGA HNSC)" shows, including the closing paren. (Confirm the source strings in `DATASET_REGISTRY` ~379/389 are complete β `longLabel` has the paren β so this is a CSS clipping fix, not a missing character.)
## 4. Fix the "Survives" "?" tooltip cutting off
The Survives column "?" copy is multi-paragraph and overflows/clips as a hover tooltip (see screenshot β text is cut on the right). A hover tooltip is the wrong vehicle for that much text. Fix it one of these ways (prefer the first):
- **Convert this "?" to a click-to-open modal** using the existing rich ParamHelp modal infrastructure (the same pattern the objective/parameter rich explainers use), with the plain-language site/purity/β/β/β copy. Modals don't clip.
- If keeping it a hover tooltip: render it in a portal at the document root with a sensible `max-width` and **viewport clamping** (flip/shift so it never overflows the right edge), and ensure no ancestor `overflow: hidden` crops it.
- While here, make the shared "?" tooltip component clamp to the viewport generally, so no other long tooltip clips either.
## 5. Swap the "What is HPV? (the biology)" diagram to the new card-wall figures
Two repo-root SVGs have been updated/added (literal colours, same convention as the old `hpv_reference.svg`): **`hpv_reference.svg`** (rewritten β the "HPV INFECTION β the virus dismantles both brakes" card wall, viewBox `0 0 920 660`) and **`normal_cell_reference.svg`** (new β "NORMAL CELL β how division is controlled", viewBox `0 0 920 900`). Update `web/app/HPVBiologyPanel.tsx` so the panel shows the **normal-cell diagram first, then the HPV diagram** (normal baseline β the viral attack):
- The panel inlines its SVG as hand-translated JSX (`HPVDiagram()` ~line 54). Replace `HPVDiagram`'s body with the **new** `hpv_reference.svg` contents, and add a sibling component (e.g. `NormalCellDiagram`) inlining `normal_cell_reference.svg`, rendered ABOVE the HPV one inside the panel.
- Translate SVG attributes to JSX exactly as the existing component does: `font-family`β`fontFamily`, `font-size`β`fontSize`, `font-weight`β`fontWeight`, `stroke-width`β`strokeWidth`, `text-anchor`β`textAnchor`, `stroke-dasharray`β`strokeDasharray`, `marker-end`β`markerEnd`, etc. Each `<svg>` keeps `viewBox` + `style={{ width: "100%", height: "auto", display: "block" }}` so it scales without overflow (same wrapper as today).
- Keep the panel's collapsible "What is HPV? (the biology)" framing unchanged β only the figure changes.
## Checkpoint
- Page loads on **Head & Neck + HPV detection** by default; Colorectal still selectable.
- The "What is HPV?" panel shows the new normal-cell + HPV card-wall diagrams (scaled, no overflow).
- No "Discovered axes" / "Find next axis" panel in the UI.
- The Cancer/problem card subtitles show in full (closing paren visible).
- The Survives "?" opens without clipping (modal, or clamped tooltip).
- `tsc` clean; no engine/API/airgap change.
|