pediatric-ai-scribe-v3/public/components
Daniel 9df2230479 refactor: rebuild the admin settings page around what each card does
The page had grown by accretion: model discovery scattered across five
cards with a search box each, one Save writing eight keys from the
bottom of a card that also held a second Save for something else, and a
banner apologising that a button "applies only the settings above it".

Now it reads in groups — Accounts, Models, Assistant & prompts, Site —
and every card is a <details> that folds, so Save & Close means
something. The rule is that each card saves exactly what it shows,
which is what removed the need for the banner.

Models is one workflow in three steps. Discover & test has a single
search box and a kind switch (chat / image / speech / transcription /
embedding); the five discovery calls are unchanged, the switch only
decides which one answers. Roster is what has been added, including the
image roster, which had no visible list before. Availability is the
chat model, the two allowed lists, the per-workflow image settings and
the slide reviewer, under one Save.

Splitting the eight-key save follows from that rule: Save & Close writes
the five retrieval and citation keys; Save availability writes the chat
model, both allowed lists, the reviewer and the three image-settings
PUTs. No route, request shape or setting key changed.

Switching kind clears the results first — a row button would otherwise
add an image model to the chat roster.

The kind switch dispatches its event through document.defaultView's
CustomEvent. jsdom refuses one built from another realm, and the
existing announceModelsChanged() has exactly that bug: its event is
built from the Node global, dispatchEvent refuses it, and a try/catch
swallows the error — so models-changed propagation has only ever been
source-grepped, never actually tested. Left alone here to keep this
change to one subject.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dv6sqaY6Vq3ChZHMem3cnU
2026-09-12 21:42:27 +02:00
..
admin-docs.html feat: ED multi-stage UX, extensions polish, docs viewer + application-logic docs 2026-04-28 03:09:38 +02:00
admin.html refactor: rebuild the admin settings page around what each card does 2026-09-12 21:42:27 +02:00
assistant.html feat: Enter sends in the assistant, and the person chooses 2026-09-12 18:05:36 +02:00
bedside.html feat: don't-miss tooltip after notes + bedside suture selector 2026-04-28 03:09:38 +02:00
calculators.html fix(nav): move image lightbox to index.html so NRP + seizure pathways 2026-04-23 18:58:38 +02:00
catchup.html Fix quiz SQL bug, security hardening, componentize HTML, speed improvements 2026-03-23 20:01:54 -04:00
chart.html v10: Local Whisper transcription, bigger text areas, flexible AI memory 2026-03-28 22:00:30 +00:00
diagrams.html stabilize assistant and add diagrams 2026-05-08 00:23:00 +02:00
dictation.html v10: Local Whisper transcription, bigger text areas, flexible AI memory 2026-03-28 22:00:30 +00:00
ed-encounter.html feat: ED multi-stage UX, extensions polish, docs viewer + application-logic docs 2026-04-28 03:09:38 +02:00
encounter.html Fix TTS axios/Vertex, generic toast, add stop button to encounter 2026-03-29 22:09:56 -04:00
extensions.html feat: add extension import preview 2026-05-08 22:26:53 +02:00
faq.html fix: /api/health/detailed reported a text-to-speech provider that does not exist 2026-09-12 05:05:39 +02:00
hospital.html v10: Local Whisper transcription, bigger text areas, flexible AI memory 2026-03-28 22:00:30 +00:00
my-resources.html feat: deck themes — a palette you pick, previewed by the renderer itself 2026-09-12 19:40:19 +02:00
notes.html feat: ED encounters + notes model selector; remove AI corrections; fix notes framing 2026-04-28 03:09:38 +02:00
pe-guide.html feat(pe-guide): Cardiovascular system with APTM auscultation SVG 2026-04-22 20:15:08 +02:00
settings.html feat: connect Nextcloud by signing in to Nextcloud 2026-09-12 20:55:00 +02:00
sickvisit.html v6.2: Session management, password change, audit logging, refine context, UI fixes 2026-04-08 20:27:45 +02:00
soap.html Add pause/stop buttons to SOAP note recording 2026-04-11 05:19:12 +02:00
vaxschedule.html Fix quiz SQL bug, security hardening, componentize HTML, speed improvements 2026-03-23 20:01:54 -04:00
wellvisit.html Match TTS voices to the selected LiteLLM model 2026-07-30 17:34:34 +02:00