ONE composer, everywhere. The canonical channel strip is exactly seven tabs, in this order: Text · Chat · Email · Note · Log · Call · DAISI. Every host — the inbox screens, the customer activity shell, the tasks boards and pane — renders a byte-faithful INSTANCE of this component: same tab anatomy, same mode-extras row (Subject / Log controls / Call button / Chat channel row), same body-wash classes, same footer (Insert · tools · the single blue send square, which on Text and Email carries a caret that opens Schedule message: comp-inbox-composer-schedule), and the DAISI mode pill in the composer header (.cp-ai), right side. Legitimate variation is expressed only as documented modifiers on this component — .sb-composer--compact (mobile/narrow: icon-only tabs, staged collapse), the per-customer availability states on tabs (.is-disabled opt-out, the chat visitor-gone treatment), and per-channel roots (.sb-composer--<channel>) — never as diverging markup. The mobile conversation list (comp-inbox-mobile) hosts no composer by design: on mobile the conversation is the customer screen. Channel switching is ONE shared mechanism (sb-controls.js — auto-wired, zero per-page code). Every .cp-tab in every .sb-composer is live on load: click moves .on within that composer's tabbar, swaps the root .sb-composer--<channel> class (the channel derives from the tab's cp-tab--<channel> modifier; data-channel overrides), and the body wash + mode-extras follow via CSS — extras rows carry .cx cx-<channel> and only the row matching the root class shows (Email → Subject; Log → type/date/time; Call → the call row, and the universal send square hides per ruling 61; Chat → the channel row; DAISI → the yellow wash). State modifiers (--compact) survive the swap. Tabs carrying .is-disabled never switch — the opt-out and no-open-chat-thread states are respected. Progressive enhancement: with JS off, the authored root class + .on tab + matching .cx row render the authored state exactly — static specimens need no script. Everything below tab level stays inert: this is state browsing, not a prototype.
Staged collapse — the tab row NEVER wraps (Text channel at three widths)
Stage A · wide (details closed, ~820px) — full tabs + full labeled pill
Agent
Saturday at 11 works great — I'll have the 530i pulled up front and ready.
Stage B · medium (~720px) — pill collapses to icon FIRST, tabs stay labeled
Agent
Saturday at 11 works great — see you then.
Stage C · narrow (details open, ≤700px) — tabs collapse to icon-only too
Agent
Saturday at 11 works great.
Email — purple · Subject as a full-width UNDERLINED row (.sb-field--row)
full
narrow (Stage C)
Note — orange wash · internal · no subject
full
Agent
Leave an Internal Note….
narrow (Stage C)
Agent
Leave an Internal Note….
Log — indigo wash · type/date/time as ONE underlined inline event row
full
Agent
04/22/2026
Describe the event…
narrow (Stage C)
Agent
04/22/2026
Describe the event…
Call — green · channel #6 · IDLE (ruling 61): no fields, no text area — the body holds ONE labeled green call button stating the number it dials; nothing to send, so no universal-send square (the one channel where the action lives in the body)
full
Agent
narrow (Stage C)
Agent
DAISI — yellow · instruct the assistant · Assist pill w/ live run-dot + countdown
full
Assist5m 36s
Tell DAISI to do something for this customer…
narrow (Stage C · compact pill)
Assist5m 36s
Tell DAISI to do something…

Refinements. (1) Tabs share a static gray-07 background — the active channel is shown by its colored 1px border + colored icon + label only (no fill). (2) The body region below the tab strip (fields + message area + log row + toolbar) is white for external comms (Text, Email) and tinted the channel's -02 for internal ones (Note orange · Log indigo · DAISI yellow); the tab strip stays gray-07 and the active tab still carries its channel color on the border/icon/label. (3) Compact mode pill is a padded rounded rect so the dot + icon breathe. (4) Tabs never wrap, clip, or overlap: thresholds are sized against the widest pill ('Assist 5m 36s') — Stage B (≤740px) collapses the pill to icon first, Stage C (≤700px) then collapses the tabs to icon-only, so with the Customer Details panel open (conversation column ~440-560px) the composer is fully compact and labels never truncate; full labeled tabs return only when details is closed and the column is wide (~800px+). There is no divider between the body and the bottom toolbar — they read as one container. (5) Log type/date/time is one full-width row, cells vertically centered + left-justified with gray-06 vertical separators and a full-width hairline under the row (type stays green "Call"). (6) Email subject is a label-less underlined row (placeholder "Subject").