First Bedside commit. Delivers the /app/bedside page with the full 15-pill sub-nav in the same order + labels as the vanilla app, and switches the sidebar Bedside link to available. client/src/pages/Bedside.tsx Single-file shell. PILLS array is the single source of truth for pill ID / label / icon / summary, ordered to match public/components/bedside.html (neonatal, airway, cardiac, respiratory, ventilation, seizure, sepsis, anaphylaxis, sedation, agitation, antiemetics, antimicrobials, burns, toxicology, trauma). Clicking a pill flips useState<active>, and LegacyPanel renders a summary of that module + a button to open the legacy Bedside tab. What is intentionally NOT in this commit Each pill's actual clinical dosing panel stays in vanilla for now. Those panels encode weight-based dosing, syndrome-keyed antimicrobials, and PALS / ALS formulas — exactly the class of content the migration checkpoint memory flags as must-not-be- "simplified" by an LLM. They belong in per-module commits that land alongside the calculators port (APLS + Best Guess weight, Fenton 2013 LMS, AAP 2022 bilirubin, Rosner BP splines) where test vectors can verify byte-for-byte parity with the vanilla output. The top-level age → weight estimator also waits on calculators — it calls window._PED_MATH.estimateWeightFromAgeMonths in the vanilla module, which is defined in public/js/calculators.js. e2e/tests/bedside-react.spec.js — three smoke tests All 15 pills render by data-testid, clicking a pill swaps the panel, and the legacy-viewer link is present. The pill-order list is hard-coded in the spec so re-ordering or dropping a pill trips a loud failure. Client tsc -b + vite build clean. Bundle 456.71 kB / 130.53 kB gz.
14 lines
468 B
HTML
14 lines
468 B
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<link rel="icon" type="image/svg+xml" href="/app/favicon.svg" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>client</title>
|
|
<script type="module" crossorigin src="/app/assets/index-DrQO3Lq1.js"></script>
|
|
<link rel="stylesheet" crossorigin href="/app/assets/index-0qzAvrmR.css">
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
</body>
|
|
</html>
|