Components · Political
The "who to contact" tile — OfficialContactCard for an elected official or a candidate. Identity (name · office · party · level) sits over the level / party / district chips and a stance/support pill; a repeat-contact ContactStatus drives the right-aligned read-out (not yet · contacted · cooldown) and the Call / Email / Visit actions. Inside its cooldown window the actions lock behind an "Available in Nh" button; a newer campaign announcement re-opens them and beats the lock.
U.S. House of Representatives
1421 Longworth HOB, Washington, DC 20515
(202) 225-57002211 Rainier Ave S, Seattle, WA 98144
(206) 553-0000Clark County Commission
Update posted — reach out again.
State Senate
Card 1's Call is pinned :hover; its office disclosure is pre-expanded. The right-aligned indicator is driven entirely by the ContactStatus — Not yet (fresh) · Update (announcement re-open) · Available in Nh (locked). The stance/support pill extends the tile's chip cluster (good = supportive/endorsed · warn = undecided · bad = opposed).
Official shape (lib/officials) — full_name / office_title / party / level / phone / email / photo / offices[]. Identity, the level/party badges and the Call/Email/Visit actions render from it (a junk/blank line → the action self-hides).status is the ContactStatus cooldown (canContact / nextAvailableAt / reason) — it alone drives the lock + "Available in Nh" (reason: "announcement" re-opens action). district is an optional DistrictBadge pill; the stance pill is a host-supplied support signal beside them.onContact(method) is a passthrough fired on Call/Email/Visit so the host can log the contact (the tel:/mailto: links still work without it). visitHref turns on the Visit action; defaultOfficesOpen pre-expands the multi-office disclosure.Source · ds/political/OfficialContactCard.tsx (composed FROM ds/surface Surface) · @phauna/ds Avatar / Badge / LinkButton · ds/GeoChips DistrictBadge + LocationChip · formalizes portal/ActionableRepresentativesCard.tsx + CandidateCard.tsx.