feat(profile): add profile settings and LLM user context

This commit is contained in:
Piotr Oleszczyk 2026-03-05 15:57:21 +01:00
parent db3d9514d5
commit b99b9ed68e
25 changed files with 472 additions and 9 deletions

View file

@ -45,6 +45,7 @@ Global neutrals are defined in `frontend/src/app.css` using CSS variables.
- Products: `--accent-products`
- Routines: `--accent-routines`
- Skin: `--accent-skin`
- Profile: `--accent-profile`
- Health labs: `--accent-health-labs`
- Health medications: `--accent-health-meds`
@ -114,6 +115,7 @@ These classes are already in use and should be reused:
- Filter toolbars for data-heavy routes should use `GET` forms with URL params so state is shareable and pagination links preserve active filters.
- Use the products filter pattern as the shared baseline: compact search input, chip-style toggle rows (`editorial-filter-row` + small `Button` variants), and apply/reset actions aligned at the end of the toolbar.
- For high-volume medical data lists, default the primary view to condensed/latest mode and offer full-history as an explicit secondary option.
- For profile/settings forms, reuse shared primitives (`FormSectionCard`, `LabeledInputField`, `SimpleSelect`) before creating route-specific field wrappers.
- In condensed/latest mode, group rows by collection date using lightweight section headers (`products-section-title`) to preserve report context without introducing heavy card nesting.
- Change/highlight pills in dense tables should stay compact (`text-[10px]`), semantic (new/flag change/abnormal), and avoid overwhelming color blocks.
- For lab results, keep ordering fixed to newest collection date (`collected_at DESC`) and remove non-essential controls (no lab filter and no manual sort selector).
@ -192,6 +194,7 @@ These classes are already in use and should be reused:
- `frontend/src/routes/+page.svelte`
- `frontend/src/routes/products/+page.svelte`
- `frontend/src/routes/routines/+page.svelte`
- `frontend/src/routes/profile/+page.svelte`
- `frontend/src/routes/health/lab-results/+page.svelte`
- `frontend/src/routes/skin/+page.svelte`
- Primitive visuals: