Fifteen navigable frames — every flow at desktop and at 375 px, in English and right-to-left Hebrew / Arabic — for what a member sees when their organization reads lists it doesn't own: the common-list
badge and read-only detail, the “Fork to edit” path from a 409 fork_required, the fork confirmation and every
answer it can get, the fork's provenance and “behind source” indicator, the owner's visibility control, and the picker resolving the
effective list by key. Every state is contract — loading, empty, error, the fail-closed refusals, and the flag-OFF absence.
Built in the fuse-seam design system (tokens only). Requirement: docs/planning/selection-lists-shared-and-fork.md.
A member reads and picks from lists the organization is given without owning them. Common lists are grouped and badged; a fork hides the common list with the same key unless a visibility filter is set; a list read only through visibility is read-only — no mutation affordances at all.
“Include common lists” switch, source groups, shadowing note, visibility filter (shadowing off). Loading, two empties, error, flag OFF.
Common badge, read-only notice, no edit controls, no Access tab, the one action: Fork to edit.
Organization list (no fork), “your organization uses its own version”, read-only translations, loading / empty / error / 404, editable-unknown, flag OFF.
English, Hebrew and Arabic at phone width. Logical layout, LTR islands for keys and codes.
A refused change to a common list becomes a way forward; the fork is always an explicit choice with a visibility (organization or private draft), keeps the key, and replaces the common list for the organization. Every answer — 201, 200, the three 409s, quota, the 5,000-value cap, 403, 404, network — has its own state.
The typed change is kept; Fork CTA only with reason: fork_required; 403 explains, no CTA; access ops always 403.
What is copied, same key, replaces the common list, visibility org | private, no-sync note, optional quota preview, submitting.
201 created · 200 existing (active / archived → restore, restore quota / 403) · fork_exists · fork_not_applicable · key taken · quota · 5,000 cap · 403 · 404 · network.
The dialog as a bottom sheet in English, Hebrew and Arabic.
Where the fork came from, which version it copied, and whether the common list has moved on — informational only, no merge. Revert to common = archive the fork — offered only while an active common list exists; otherwise “Archive fork…” states that forms will have no list.
Behind / up to date / checking / source archived / source gone / check failed / comparison unavailable; archive-to-revert gated on an active source, archive with the no-list consequence, 403.
English and Hebrew at phone width: stacked provenance card, gated full-width action, both archive confirms as bottom sheets.
Owners switch private ↔ organization with the consequence spelled out. Publishing as a common list exists only for
platform operators in the platform organization, behind a typed confirmation; a common list is locked (visibility_locked).
Private ↔ organization, saving / saved / 403, read-only for non-owners, loading / error, platform publish, locked, flag OFF.
English, Hebrew and Arabic: radio cards, make-private and publish confirms as bottom sheets, LTR typed key.
Unchanged for the host form, except that a key now means the effective list: the organization's fork if it has one, else the common list. Stored common ids render the fork's label through the resolve redirect, with no visible change.
Org with a fork vs one without, private and archived forks, loading / error / no list / flag OFF.
effective_item_id redirect, every resolve outcome, resolving and resolve-failed.
English, Hebrew and Arabic: fork vs common list, source caption, redirected stored value, no effective list.
Approving these frames approves this inventory. The implementation (design-record task 14, frontend-engineer)
builds exactly these, inside the existing package — no new package, no new host route.
build.flows[].responsive)