OptionaldeletedIDs?: ReadonlySet<string>Reps STAGED for deletion: struck through and muted, but still in place with their number, so the list stays readable and the edit stays reversible until it is saved. For surfaces that stage deletions (the portal's editors); a surface that deletes immediately just stops passing the rep.
The metrics to draw. columns renders one cell per entry (the focus
metrics); chart draws the FIRST entry only and ignores the rest.
OptionalonToggleRep?: (id: string) => voidSelection handler; omit for a read-only list.
OptionalphaseAverages?: { concentric?: number | null; eccentric?: number | null }chart only: the set's average for the charted metric, per phase, drawn as
a tick across every bar of that phase. Omit to draw no ticks.
Passed in rather than derived here: the Reps tab already computes the set's spread for its range strip, and the tick has to be the very same average the strip marks.
Optionalscales?: RepBarScalesBar scales; omit for a numbers-only list. See RepBarScales.
OptionalselectedIDs?: ReadonlySet<string>Currently-selected rep ids. Ignored without onToggleRep.
Optionalvariant?: RepListVariantSorted by TIME, not by order: the backend numbers a pair's concentric
before its eccentric even though the eccentric happened first, so sorting by
order time-reverses every pair — and pairByPhase requires time-ordered
input. Same sort as the set-review timeline and the technique charts.
Pass onToggleRep to make rows selectable; omit it and they render as inert
list items rather than dead buttons.
A set's reps as concentric/eccentric pair-blocks.