Components · Political

Officials

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.

OfficialContactCard · four states — not yet · contacted (update) · cooldown · candidate
DW

Rep. Dana Whitfield

U.S. House of Representatives

Federal Democrat WA-07
Not yet
StanceSupportive
2 offices
  • Washington, DC

    1421 Longworth HOB, Washington, DC 20515

    (202) 225-5700
  • District — Seattle

    2211 Rainier Ave S, Seattle, WA 98144

    (206) 553-0000
RB

Comm. Rosa Beltran

Clark County Commission

County Nonpartisan NV · Dist 3
Update
StanceOpposed

Update posted — reach out again.

Call No email on file Visit
ME

Sen. Marcus Ellery

State Senate

State Republican SD-12
Available in 41h
StanceUndecided
PN

Priya Nair

Candidate — City Council, Dist. 4

Candidate Green OR · Portland
Not yet
Support Endorsed

Card 1's Call is pinned :hover; its office disclosure is pre-expanded. The right-aligned indicator is driven entirely by the ContactStatusNot 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 (required)
The act.savethedogs.io 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 + district
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 / visitHref
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.