Mobile Phase 8a+8b: re-author Grid/Contacts cards + Contacts/Pipeline detail bottom sheets

8a — Grid card: existing-LP earmark corner-triangle (replaces left-border), right-side
PRIORITY pill (replaces the rejected star), 4-stage chip, zero-commit dim; detail star ->
"Existing LP" pill. Contacts card: two-letter avatar initials + existing-LP ring + stage pill
+ recency; disposition badge dropped. New backend contact_grid_signals() injects derived
read-only committed/pipeline_stage on GET /api/contacts and /api/contacts/{id} (existing-LP
ring + stage pill); read-only directory, so no strip-point. DESIGN.md §4/§8 reconciled.

8b — Contacts and Pipeline detail surfaces converted from full-screen to drag-dismiss bottom
sheets matching the .dc.html anatomy: Contacts gets an email-copy pill, Log/Email actions, and
an Organization card; Pipeline gets stat tiles, an inline move-stage list, and a notes timeline
+ Log sheet. Both log via POST /api/communications; BottomSheet gains a `stacked` prop to layer
the Log sheet over a detail. Reviewer fixes: cancelled-flag fetch guards (stale-response race),
keyed single-contact signals query, multi-investor dedup test.

All deploy-pending (no s9pk built); not device-tested. 38/38 backend tests green.
This commit is contained in:
Keysat
2026-06-19 21:17:26 -05:00
parent 60d67f6b7d
commit e57b154a6d
5 changed files with 731 additions and 180 deletions
+20 -3
View File
@@ -89,9 +89,17 @@ White (`#ffffff`) appears only as text on accent fills and in the brand mark.
(`translateY(100%)→0`, 280ms `cubic-bezier(.2,.8,.2,1)`), scrim `rgba(4,9,16,0.55)` fade-in,
max-height ~8890%, scroll-body; tap-scrim or × to dismiss. One field/action per sheet.
- **Mobile card** (the table→card transform): panel, 1px border, **radius-10**, card shadow,
1214px padding; name 16/600 + Priority corner badge (top-right); mono amount + stage chip +
staleness last-contact. Existing-LP = quiet accent **corner earmark** (star is the lighter
alternative; not a per-card banner).
1214px padding, `overflow:hidden` (clips the corner earmark). Three rows: (1) investor
name 16/600 left + a right-aligned **PRIORITY text pill** (mono 10/600 amber, only when
flagged); (2) mono amount 15/600 (green if committed, muted `text-subtle` at zero) + the
**4-stage chip**; (3) mono recency 12 (amber ≥10d, red ≥30d). **Existing-LP = a quiet accent
corner earmark** (top-left corner-triangle, a reusable `EarmarkCorner` component) — *not* a
★ star and *not* a per-card banner (both were option-history, rejected 2026-06-19; finalized
in Phase 8a). The **Contacts** card is the sibling pattern: a 40px elevated avatar with
two-letter mono initials, an **accent ring** when the person is an existing LP (the linked
investor's committed > 0), org **+ a small stage pill** under the name, and a mono recency at
right (no disposition/type badge). Detail surfaces carry an **"Existing LP" pill** (accent-
tinted) beside Priority instead of the retired ★.
- **Full-screen detail** (promotes the desktop slide-over): `screenIn` slide (translateX 14px,
200ms), " Grid" back affordance, grouped read-only sections with per-field edit entry points.
- **Swipe actions** (Reminders): pointer-drag a card to reveal complete (swipe-left) / snooze
@@ -180,6 +188,15 @@ brief in `design/BRIEF.md`). The system:
The gap between this section and the current `index.html` is the implementation backlog in
`ROADMAP.md` (incl. the inline-style→CSS migration and the locked pipeline-stages/flags spec).
The **per-surface mobile visual-conformance reference** is `design/phase8-conformance.md` (the
8a8i build spec, anchored on each `*.dc.html` default — not the `screenshots/` PNGs). The
**Grid + Contacts card anatomy is finalized (Phase 8a)** — earmark corner-triangle, PRIORITY
text pill, 4-stage chip, Contacts avatar ring (see the §4 mobile-card bullet). The **Contacts +
Pipeline detail surfaces are drag-dismiss bottom sheets (Phase 8b)** — email-copy pill + Log/Email
actions + Organization card (Contacts); stat tiles + inline move-stage list + notes timeline + Log
sheet (Pipeline); both log through `POST /api/communications`. Remaining 8c8i (quick-log pencil,
sort sheets, reminders/Pipeline-card polish, add-investor, shell icons) are pending; the Grid detail
stays full-screen (its dc default) with the G4/G5/G6 stage-card/reminder-card/timeline restructure to do.
## 9. Agent prompt guide