mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-11 05:42:19 +00:00
feat(labs): add biomarker filtering and sorting
This commit is contained in:
1 parent
22b85ff97d
commit
b4ac67ee7c
36 files changed
+3290
-172
No files matched your search
@@ -77172,10 +77172,9 @@ components:
|
||||
description: "One category of the labs list, resolved by the server. `key` is opaque: a catalog panel key,
|
||||
`custom:<hash>` for the person's own panel, or `other`; it carries no user text and is stable, so a client may
|
||||
key collapse state on it. `label` is rendered as given (a catalog panel in the caller's locale, the person's own
|
||||
spelling, or the localised \"Other\"). `markerKeys` names the `markers[].key` values in the category. `status`
|
||||
combines the members' newest readings: `above` when any is above its range, else `below` when any is below, else
|
||||
`in-range` when any was assessed, else `unknown`. A client renders these values and never rebuilds the category,
|
||||
the order or the status."
|
||||
spelling, or the localised \"Other\"). `markerKeys` names the `markers[].key` values in the category. `counts`
|
||||
and `status` describe the full category without filters; a client renders these values directly when unfiltered,
|
||||
and may summarize the visible row subset client-side while filters are active."
|
||||
LabOverviewCategoryCounts:
|
||||
type: object
|
||||
properties:
|
||||
@@ -77201,7 +77200,8 @@ components:
|
||||
- above
|
||||
- unknown
|
||||
additionalProperties: false
|
||||
description: How many members' newest readings are in range, below, above, or unassessed (qualitative, or no range).
|
||||
description: How many members' newest readings are in range, below, above, or unassessed (qualitative, or no range) for
|
||||
the full category without filters.
|
||||
GetLabResultResponse:
|
||||
type: object
|
||||
properties:
|
||||
|
||||
+10
-5
@@ -236,15 +236,20 @@ lists) uses the unified `<FilterBar>` rail from
|
||||
`src/components/ui/filter-bar.tsx` — never a per-page row of large
|
||||
labelled `<Select>`s and date inputs.
|
||||
|
||||
- **Grammar**: `[icon] [Zeitraum] [Typ] [Quelle] [extras…]
|
||||
[Zurücksetzen] … [count]`. Canonical dimension order is date range,
|
||||
type, source; surface-specific dimensions append after.
|
||||
- **Grammar**: `[search] [icon] [Zeitraum] [Typ] [Quelle] [extras…]
|
||||
[Zurücksetzen] … [count]`. Where search is supported (such as labs), the
|
||||
search input is integrated as the leading element in the rail. Canonical
|
||||
dimension order remains date range, type, source; surface-specific
|
||||
dimensions append after.
|
||||
- **Pill = trigger + chip**: inactive pills show only the dimension
|
||||
name; active pills show `Name: Wert`, pick up the primary accent and
|
||||
grow a removable ✕. No separate chip row.
|
||||
- **Reset** renders only while at least one dimension is active.
|
||||
- **Mobile** (< `sm`): the rail is a horizontal scroll row (hidden
|
||||
scrollbar, edge-bleed); the result count wraps to its own line.
|
||||
- **Mobile** (< `sm`): standard pill rails scroll horizontally (hidden
|
||||
scrollbar, edge-bleed); the result count wraps to its own line. When an
|
||||
integrated search input is present in the rail (such as in labs), the
|
||||
rail wraps (`max-sm:flex-wrap`) so search spans full width and pills
|
||||
wrap underneath, avoiding horizontal scroll while typing.
|
||||
- The component is presentation-only — filter state, query keys and
|
||||
fetching stay in the owning page. Use `FilterBarSelect` for enum
|
||||
dimensions and `FilterBarDateRange` for the from/to pair.
|
||||
|
||||
Reference in new issue
Block a user