- sidebar + auth logo now invert to black in light mode (dark unchanged),
same trick the docs site uses — no second asset needed
- prescriptions page: search by patient, file number, medication,
prescriber or status, with no-match / empty states
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Move all hardcoded UI strings in the appointments, prescriptions, tasks,
messages, activity, analysis and patients views (plus their dialogs and
detail sheets), the remaining auth pages (verify-email, forgot/reset
password, accept-invite, onboarding), the clinic form and the sidebar user
menu into i18next keys in en/translation.json. Clinical option values
(appointment types, frequencies) stay canonical. English-only; no new
locale yet.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add the prescriptions table, validation, service and CRUD routes
(/api/prescriptions, RBAC-gated; prescriber defaults to the signed-in
clinician, prescribedAt to today) and the frontend data module. The page
now loads/persists real data and computes its status KPIs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Task dialog: rename Title→Subject, add a "Details" textarea (notes),
widen to sm:max-w-lg.
- Tasks & Notes: replace split-panes with full-width lists that open a
right-side Sheet on click (TaskDetailSheet, NoteDetailSheet), mirroring
the Patients table → detail Sheet pattern.
- Prescriptions: rows are now clickable and open PrescriptionDetailSheet
with the full Rx details (incl. duration + notes).
- New prescription dialog: Duration is a dropdown of presets with an
"Other" → custom input, plus a Notes textarea; NewPrescription gains
notes and threads duration/notes through to the list.
- Appointments: header search filtering by patient/type/provider,
grouped by date, with an empty state.
- Patients: pressing Enter in the search box opens the top match's record.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Appointments now carry a date; the Calendar button opens a Google-Calendar
style month grid (color-coded event chips, month nav, Today, click a day for
its list). Today/Upcoming sections derive from dates.
- Add-appointment dialog gains a date picker (Popover + Calendar).
- Messages rebuilt as chat threads: an input-based composer that appends to a
two-way timeline (no more toast covering the field), and the unread count is
now a filter toggle.
- Favicon: the brand logo now shows in the tab. Removed the stale default
app/favicon.ico (which shadowed it) and added app/icon.png + app/apple-icon.png
generated from the logo; dropped the redundant metadata.icons.
- Sidebar: swapped Notes <-> Messages order (both kept).
- New pages: Activity (signed-change audit timeline with hash chips + approval
status) and Tasks (two-pane care-team to-do with add dialog).
- Prescriptions: adding a medication now surfaces mock drug-interaction and
allergy warnings against the patient's record.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Appointments: a Calendar button next to Add opens a month-grid dialog
(reuses the Calendar primitive + shared ScheduleList); the schedule day is
marked and selecting it lists that day's appointments.
- Patients sub-nav: new Prescriptions page (mock list + KPIs) with a compact
"New prescription" dialog reusing the patient quick-search pattern.
- Notes: deleting a note now goes through a reusable ConfirmDialog instead of
deleting immediately.
- New top-level Messages page: two-pane email-style inbox (list + reading pane
with mock reply composer), mirroring the Notes layout.
- Sidebar logo bumped from size-9 to size-10.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>