1 · Check-in — DialogService action sheet (424w, bottom-anchored)
Check-In Customer Verify the arrival time of this appointment.
Canonical DialogService / CustomActionSheet stack. Date+time VERIFICATION row card under the header. Confirm = GREEN (green-01 fill, var(--white) uppercase label — Flutter ColoredCustomButtonStyle green; supersedes the S1-6b secondary confirm). Header copy corrected: "Verify the arrival time of this appointment." (the Figma body was a paste-slip of the check-out copy). NEVERMIND tertiary last in its own card. Check-in rewrites the appointment time to the actual arrival and starts the visit timer.
2 · Check-out — DialogService action sheet
Check-Out Customer Verify the end time of the visit and leave a note describing the end result.
Note *
The Note card now contains the REQUIRED Note label + textarea AND the destructive confirm inside the same card (red-01 fill, white uppercase label). The note becomes the visit end note on the Completed 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
Lead Source
Appointment Note
Sales Person
Round RobinIntelligently assign
BDC Agent Manager Subscribers Associated Locations
STATE A — empty. Appointment date+time on top · identity fields · Lead Source SearchableDropdown KEPT (Walk-In default, pinned '+ New Lead Source' — the Figma omitted it; it stays, it's a data requirement) · Appointment Note · Sales Person = Round Robin assignment row · '+ Add' dropdowns for BDC Agent / Manager (the Figma's '+ Add Sales Person' there was a slip) / Subscribers · Associated Locations selectable grid (selected = blue-03 + 1px blue-01).
Add to Showroom
First Name
Last Name
Phone
Email
4Potential Duplicates Found
Clementine Bartholomew
Updated 50 weeks agoCreated 51 weeks ago
KSKarla Sellers
Emailclem.b@email.com
Phone(555) 281-0934
Clement Barthal
Updated 12 weeks agoCreated 64 weeks ago
JMJim Mosely
Emailcbarthal@email.com
Phone(555) 014-7785
STATE B — duplicates found. The locked SectionView presentation stays (count pill + Dismiss, full-bleed hairline rows) with the Figma row anatomy: name semiBold + Updated/Created meta stack · assigned-salesperson 16px atomic avatar + name · blue-01 'Use' link · Email/Phone two-col block · 'Show 2 More' footer. BEHAVIOR CHANGE: '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
Sales Person
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
Lead Source
2Potential Duplicates Found
Clementine Bartholomew
Updated 50 weeks agoCreated 51 weeks ago
KSKarla Sellers
Emailclem.b@email.com
Phone(555) 281-0934
Clement Barthal
Updated 12 weeks agoCreated 64 weeks ago
JMJim Mosely
Emailcbarthal@email.com
Phone(555) 014-7785
MOBILE: full-screen sheet — 5px top corners, 48×4 r2 drag handle, 56px tap-to-close strip. Same sections as desktop; State B shown (the dupes SectionView surfaces conditionally as matches appear; Use attaches in place here too).