Archived value — resolved, not blank

The state that makes archive-by-default worth having.

This is a host page, not the FuzeFront shell

<SelectionListPicker> is embeddable: it mounts inside a consuming product's own form, beside that product's own fields. It is bound by list key, never by a hard-coded option array.

Opportunity · opened March 2024

CRM · an old record being re-opened today

This record stored sli_18h455… in 2024. That value has since been archived — so it is greyed and badged, but it still renders its real label. It does not disappear, and the field does not silently become blank.

POST /v1/resolve → results["sli_18h455…"]
{ "label": "EMEA South", "locale": "en", "is_machine": false, "status": "archived" }

Archived items resolve normally. The caller styles them as retired using status — the service does not hide them, because a consumer's stored reference must stay readable forever.

Readable, but not re-selectable

An archived value renders when it is already stored, and is absent from the menu — so nobody can newly pick a retired option, while every existing record keeps its meaning. If the user changes the region, the archived option is gone for good.

The menu excludes it

EMEA South archived
Americas
EMEA
APAC
Japan

Four active options. EMEA South is not among them — but it is still the current value above.

Contrast: a PURGED id has no label

This is what archive prevents, and why delete demands typed confirmation.

Unknown value

The stored id came back in missing — the value was purged, so no label exists in any locale. The picker shows Unknown value and keeps the id in the form, so re-saving the record does not silently drop data the user never chose to change.

POST /v1/resolve → missing
["sli_19h455vb4pex5vsknk084sn02q"]

Locale resolution — same id, different viewer

Viewer localeRendered label resolved_localeis_machinestatus
enUnited Statesenfalseactive
frÉtats-Unisfrfalseactive
arالولايات المتحدةarM trueactive
jaUnited Statesen fallbackfalseactive

One stored id, four viewers, four renderings — and never an empty string. A Japanese viewer falls back to the source locale rather than seeing a gap.

Test hooks: [data-frame='14-picker-archived'] · [data-state='archived-selected'] · [data-selected-label][data-archived='true'] · [data-status='archived'] · [data-state='archived-not-offered'] · [data-note='archived-not-offerable'] · [data-state='missing'] · [data-missing='true'] · [data-error='missing'] · [data-panel='resolve-matrix'] · [data-locale='ja'] · [data-persisted]
Contract: POST /v1/resolve → { results: { [id]: { label, locale, is_machine, status } }, missing: string[] }. Archived resolves; only purged lands in missing.
Tokens only — no raw hex, spacing or type outside tokens.css / frame.css.

Review · selection-lists approve or reject each flow ↓
list-managementapproved · izzywdev
translation-workbenchapproved · izzywdev
access-controlapproved · izzywdev
pickerapproved · izzywdev