1 · Check-in — DialogService action sheet (424w, bottom-anchored)
Check-In Customer Verify the start time of the appointment.
Canonical DialogService / CustomActionSheet stack. Date+time VERIFICATION row card under the header. Confirm = GREEN (green-01 fill, var(--white) Title Case label — Flutter ColoredCustomButtonStyle green; supersedes the S1-6b secondary confirm). NEVERMIND tertiary last in its own card. Check-in rewrites the appointment time to the actual arrival and starts the visit timer. Message copy (dev app is gospel): “Verify the start time of the appointment.” The date+time pickers default to NOW (dealership time), not the scheduled time.
2 · Check-out — DialogService action sheet
Check-Out Customer Verify the end time of the appointment and leave a note describing the end result of the appointment.
Note
ONE body card holds the date+time verification row AND the Note textarea together (16px column gap). The Note is OPTIONAL — plain “Note” label, nothing blocks confirm on an empty note; if written it becomes the visit end note on the Completed card. The destructive confirm (red-01 fill, white uppercase label) sits in its own button card; check-out freezes the timer. NEVERMIND tertiary last in its own card. All dialogs route through DialogService.
3 · Add to Showroom — three states (desktop 424px right panel; shown bare — in situ over a TRANSPARENT scrim, 1px gray-06 left border)
Add to Showroom
First Name
Last Name
Phone
Email
Appointment Note
Salesperson
Round RobinIntelligently assign
BDC Agent
Round RobinIntelligently assign
Manager Subscribers Associated Locations
STATE A — empty. Appointment date+time on top · identity fields (First / Last / Phone / Email — the identical ContactInfoSection on both breakpoints, no Lead Source field) · Appointment Note · ASSIGN organism slots (comp-assign): with Round Robin on, BOTH the Salesperson AND BDC Agent unassigned slots show the same NON-removable Round Robin card (no Change / × / leading icon) · '+ Add' dropdowns for Manager / Subscribers · Associated Locations selectable grid (selected = blue-03 + 1px blue-01). Behavior: team-slot holders are hidden from the Subscribers picker, and promoting a subscriber into a slot removes them from Subscribers. Associated Locations chips render only for multi-location dealerships; the initial selection = the current location. Desktop-only: while the footer submit holds keyboard focus its label becomes "PRESS ENTER TO ADD TO SHOWROOM".
Add to Showroom
First Name
Last Name
Phone
Email
Potential Duplicates
Clementine Bartholomew
Updated 50 weeks agoCreated 51 weeks ago
KSKarla Sellers
Emailclem.b@email.com
Phone(555) 281-0934
2 deals
STATE B — duplicates found. Header reads exactly “Potential Duplicates” (no count badge, no Dismiss). The list collapses to the ONE top match with a bold-tiny-blue “Show N More” / “Hide” toggle. Row anatomy: name semiBold + Updated/Created meta stack · assigned-salesperson 16px atomic avatar + name · blue-01 'Use' link · Email/Phone two-col block, then a customer chips row below (a deals-count chip with a car icon, blue-01 when >0). 'Use' ATTACHES the customer in place — the navigate-away rule is retired.
Add to Showroom
Clementine Bartholomew
Updated 50 weeks agoCreated 51 weeks ago
KSKarla Sellers
Emailclem.b@email.com
Phone(555) 281-0934
Appointment Note
Salesperson
KS Karla SellersSales Rep
Subscribers
TBTaylor B. JMJim M.
Associated Locations
STATE C — attached. Identity fields collapse into the linked-customer summary card (red-01 'Detach' top-right undoes the attach). Sales Person AUTO-FILLS from the attached customer (Karla Sellers / Sales Rep). Subscribers = filled .sb-subchip avatar chips (blue-01 outline pill, wrapping, trailing angle-down). Submit creates-or-identifies AND adds the appointment in one step; customer status flips to Showroom (upstream propagation: appointment → customer, never the reverse).
4 · Add to Showroom — mobile full-screen sheet (State B)
56px tap-to-close strip
Add to Showroom
First Name
Last Name
Phone
Email
Potential Duplicates
Clementine Bartholomew
Updated 50 weeks agoCreated 51 weeks ago
KSKarla Sellers
Emailclem.b@email.com
Phone(555) 281-0934
MOBILE: full-screen sheet — 5px top corners, 48×4 r2 drag handle, 56px tap-to-close strip. The IDENTICAL ContactInfoSection as desktop (First / Last / Phone / Email — no Lead Source). State B shown: the “Potential Duplicates” SectionView surfaces conditionally, collapsed to the one top match + “Show N More”; Use attaches in place here too.
5 · Add to Showroom — extra states (checking-for-duplicates · permission-limited · bound)
Add to Showroom
First Name
Last Name
Phone
Email
Checking for duplicates…
Checking for duplicates… A floating, non-blocking note (bottom-left over the fields) shown while the debounced dupe lookup runs as the user types; the form stays fully editable.
Add to Showroom
Salesperson BDC Agent Manager
Permission-limited. A user without assign-others permission sees the SelfAssigneeSection per team slot — an empty slot offers only an "Add Me" button (assign self), not the Round Robin / member picker.
Add to Showroom
Clementine Bartholomew
Updated 50 weeks agoCreated 51 weeks ago
KSKarla Sellers
Emailclem.b@email.com
Phone(555) 281-0934
Bound duplicate. After tapping Use, the whole identity/contact block collapses into the bound-customer summary (red-01 Detach undoes it) — the full flow is State C above.