@mcp-b/react-components 0.40.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/{AgentChat-CVO7xyLC.d.ts → AgentChat-DVr2giwD.d.ts} +1 -1
  2. package/dist/{AgentToolRunsContext-BCVqCtJ1.d.ts → AgentToolRunsContext-daY67hFM.d.ts} +12 -0
  3. package/dist/AppTopBar-ZdgmB_Lu.d.ts +97 -0
  4. package/dist/{CodeBlock-CWk1FVtm.js → CodeBlock-BjELA-_s.js} +1 -1
  5. package/dist/{FileTree-xqHYBw4g.js → FileTree-DMYRdT6R.js} +1 -1
  6. package/dist/McpConnectorForm-MRm1r59e.d.ts +39 -0
  7. package/dist/{Message-DBsHHhcM.d.ts → Message-D_vCVEGB.d.ts} +20 -1
  8. package/dist/{ThinkChatActivity-D6-_5Phw.d.ts → ThinkChatActivity-DyGHj01E.d.ts} +1 -1
  9. package/dist/{ThinkExecutionRun-lYYgyeE1.d.ts → ThinkExecutionRun-k8bpyXqt.d.ts} +3 -3
  10. package/dist/{ToggleGroup-_pQMyHGM.d.ts → ToggleGroup-BrQZOQn_.d.ts} +1 -1
  11. package/dist/Toolbar-CBOseBQr.d.ts +152 -0
  12. package/dist/{WorkspaceFileView-Lab3om3F.js → WorkspaceFileView-D0yFwoDr.js} +2 -2
  13. package/dist/{WorkspaceMessageResponse-Cy28WGSz.d.ts → WorkspaceMessageResponse-D66ty4FO.d.ts} +1 -1
  14. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  15. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  16. package/dist/components/agents-sdk/AgentChat.js +41 -18
  17. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
  18. package/dist/components/agents-sdk/AgentToolRunsContext.js +12 -0
  19. package/dist/components/agents-sdk/BrowserLiveScreen.d.ts +135 -0
  20. package/dist/components/agents-sdk/BrowserLiveScreen.js +637 -0
  21. package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -2
  22. package/dist/components/agents-sdk/BrowserLiveView.js +6 -9
  23. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  24. package/dist/components/agents-sdk/BrowserRunPanel.d.ts +1 -1
  25. package/dist/components/agents-sdk/BrowserRunPanel.js +6 -12
  26. package/dist/components/agents-sdk/ManagerOffice.d.ts +156 -0
  27. package/dist/components/agents-sdk/ManagerOffice.js +662 -0
  28. package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
  29. package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
  30. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +8 -2
  31. package/dist/components/agents-sdk/McpPluginCatalog.js +80 -62
  32. package/dist/components/agents-sdk/McpServerPicker.d.ts +1 -1
  33. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  34. package/dist/components/agents-sdk/ModelSelector.js +2 -2
  35. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  36. package/dist/components/agents-sdk/SubagentRunDetails.d.ts +1 -9
  37. package/dist/components/agents-sdk/SubagentRunDetails.js +1 -9
  38. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  39. package/dist/components/agents-sdk/SubagentRunSelector.d.ts +4 -2
  40. package/dist/components/agents-sdk/SubagentRunSelector.js +7 -6
  41. package/dist/components/agents-sdk/ThinkChat.d.ts +4 -4
  42. package/dist/components/agents-sdk/ThinkChat.js +1 -1
  43. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  44. package/dist/components/agents-sdk/ThinkChatActivity.js +1 -1
  45. package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
  46. package/dist/components/agents-sdk/ThinkExecutionDetail.d.ts +1 -1
  47. package/dist/components/agents-sdk/ThinkExecutionDetail.js +43 -43
  48. package/dist/components/agents-sdk/ThinkExecutionRun.d.ts +2 -2
  49. package/dist/components/agents-sdk/ThinkExecutionRun.js +5 -6
  50. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
  51. package/dist/components/agents-sdk/ThinkExecutionStatus.js +8 -12
  52. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +8 -1
  53. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +42 -37
  54. package/dist/components/agents-sdk/ThinkFullApp.d.ts +18 -6
  55. package/dist/components/agents-sdk/ThinkFullApp.js +113 -145
  56. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
  57. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +1 -1
  58. package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -1
  59. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +1 -1
  60. package/dist/components/agents-sdk/ThinkRoutineDetail.js +5 -16
  61. package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
  62. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +69 -89
  63. package/dist/components/agents-sdk/ThinkRoutineRuns.d.ts +1 -1
  64. package/dist/components/agents-sdk/ThinkRoutineRuns.js +3 -10
  65. package/dist/components/agents-sdk/ThinkThreadPicker.js +2 -2
  66. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  67. package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
  68. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  69. package/dist/components/agents-sdk/WorkspaceHeader.js +2 -1
  70. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  71. package/dist/components/agents-sdk/WorkspaceMountManager.js +11 -11
  72. package/dist/components/ai-sdk/Activity.js +1 -1
  73. package/dist/components/ai-sdk/AgentAttention.d.ts +1 -1
  74. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  75. package/dist/components/ai-sdk/Approval.js +1 -1
  76. package/dist/components/ai-sdk/Artifact.js +1 -1
  77. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  78. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  79. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  80. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  81. package/dist/components/ai-sdk/Conversation.js +1 -1
  82. package/dist/components/ai-sdk/Goal.js +1 -1
  83. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  84. package/dist/components/ai-sdk/Message.d.ts +2 -2
  85. package/dist/components/ai-sdk/Message.js +25 -3
  86. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  87. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  88. package/dist/components/ai-sdk/Plan.js +1 -1
  89. package/dist/components/ai-sdk/PromptInput.js +1 -1
  90. package/dist/components/ai-sdk/Queue.d.ts +4 -4
  91. package/dist/components/ai-sdk/Queue.js +6 -15
  92. package/dist/components/ai-sdk/Reasoning.js +1 -1
  93. package/dist/components/ai-sdk/Sources.js +1 -1
  94. package/dist/components/ai-sdk/Task.d.ts +2 -2
  95. package/dist/components/ai-sdk/Task.js +2 -2
  96. package/dist/components/extension/ChatGptSignInScreen.js +1 -1
  97. package/dist/components/extension/CodexModelSelector.js +1 -1
  98. package/dist/components/extension/ConversationTabPicker.js +1 -1
  99. package/dist/components/foundations/Avatar.d.ts +1 -10
  100. package/dist/components/foundations/Avatar.js +1 -10
  101. package/dist/components/foundations/Checkbox.js +1 -1
  102. package/dist/components/foundations/CheckboxGroup.js +1 -0
  103. package/dist/components/foundations/ContextMenu.js +1 -1
  104. package/dist/components/foundations/LinkButton.d.ts +12 -10
  105. package/dist/components/foundations/LinkButton.js +15 -11
  106. package/dist/components/foundations/Menubar.js +1 -1
  107. package/dist/components/foundations/SearchField.js +1 -1
  108. package/dist/components/foundations/Select.js +1 -1
  109. package/dist/components/foundations/Stepper.js +1 -1
  110. package/dist/components/foundations/Toast.js +1 -1
  111. package/dist/components/foundations/ToggleGroup.d.ts +1 -1
  112. package/dist/components/foundations/ToggleGroup.js +1 -1
  113. package/dist/components/foundations/Toolbar.d.ts +1 -151
  114. package/dist/components/foundations/icons.d.ts +2 -2
  115. package/dist/components/foundations/icons.js +2 -2
  116. package/dist/components/general-purpose/AppTopBar.d.ts +1 -90
  117. package/dist/components/general-purpose/AppTopBar.js +2 -1
  118. package/dist/components/general-purpose/Commit.d.ts +2 -2
  119. package/dist/components/general-purpose/Commit.js +5 -13
  120. package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
  121. package/dist/components/general-purpose/EnvironmentVariables.js +4 -7
  122. package/dist/components/general-purpose/FileTree.js +1 -1
  123. package/dist/components/general-purpose/PricingBillingToggle.js +5 -10
  124. package/dist/components/general-purpose/PricingPlanCard.js +15 -14
  125. package/dist/components/general-purpose/PricingUsageCalculator.js +1 -1
  126. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +95 -2
  127. package/dist/components/general-purpose/ResponsiveSidebarShell.js +90 -34
  128. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  129. package/dist/components/general-purpose/Terminal.d.ts +1 -1
  130. package/dist/components/general-purpose/Terminal.js +4 -12
  131. package/dist/components/general-purpose/TestResults.d.ts +1 -1
  132. package/dist/components/general-purpose/TestResults.js +8 -21
  133. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  134. package/dist/components/general-purpose/WebPreview.d.ts +1 -1
  135. package/dist/components/general-purpose/WebPreview.js +4 -12
  136. package/dist/components/nanites/AgentConnection.js +2 -2
  137. package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
  138. package/dist/components/nanites/AgentToolDetail.js +7 -7
  139. package/dist/components/nanites/NaniteScene.js +11 -11
  140. package/dist/{copy-button-Bc7jsYv_.js → copy-button-lys9N_aI.js} +1 -1
  141. package/dist/{icons-DwgNir1Q.d.ts → icons-0corjfxR.d.ts} +1 -16
  142. package/dist/{icons-MmIXciMO.js → icons-CVFSeTJn.js} +2 -5
  143. package/dist/styles/agent-attention.css +5 -5
  144. package/dist/styles/agent-chat.css +47 -12
  145. package/dist/styles/agent-tool-detail.css +2 -12
  146. package/dist/styles/app-icon.css +12 -18
  147. package/dist/styles/app-top-bar.css +32 -6
  148. package/dist/styles/avatar.css +6 -22
  149. package/dist/styles/base.css +2 -8
  150. package/dist/styles/browser-live-screen.css +38 -0
  151. package/dist/styles/browser-live-view.css +12 -4
  152. package/dist/styles/browser-run-panel.css +20 -18
  153. package/dist/styles/chatgpt-sign-in-screen.css +5 -5
  154. package/dist/styles/commit.css +24 -1
  155. package/dist/styles/environment-variables.css +3 -0
  156. package/dist/styles/index.css +5 -4
  157. package/dist/styles/manager-office.css +486 -0
  158. package/dist/styles/mcp-plugin-catalog.css +39 -35
  159. package/dist/styles/mcp-server-picker.css +1 -1
  160. package/dist/styles/message.css +41 -18
  161. package/dist/styles/nanite-scene.css +9 -9
  162. package/dist/styles/pricing-page.css +12 -8
  163. package/dist/styles/prompt-input.css +8 -13
  164. package/dist/styles/recipes.css +1 -57
  165. package/dist/styles/responsive-sidebar-shell.css +70 -20
  166. package/dist/styles/subagent-run.css +20 -3
  167. package/dist/styles/terminal.css +19 -0
  168. package/dist/styles/test-results.css +10 -1
  169. package/dist/styles/think-execution-status.css +8 -24
  170. package/dist/styles/think-execution-workbench.css +98 -105
  171. package/dist/styles/think-full-app.css +81 -193
  172. package/dist/styles/think-routine-library.css +0 -40
  173. package/dist/styles/think-thread-picker.css +8 -3
  174. package/dist/styles/transition-surface.css +7 -8
  175. package/dist/styles/utilities.css +42 -0
  176. package/dist/styles/web-preview.css +28 -5
  177. package/dist/styles/workspace-explorer.css +4 -23
  178. package/dist/styles/workspace-mount-manager.css +22 -0
  179. package/package.json +37 -35
  180. package/dist/ResponsiveSidebarShell-DWjULskY.d.ts +0 -68
  181. package/dist/components/agents-sdk/AgentActivityPreview.d.ts +0 -46
  182. package/dist/components/agents-sdk/AgentActivityPreview.js +0 -93
  183. package/dist/components/agents-sdk/ThinkThreadShell.d.ts +0 -38
  184. package/dist/components/agents-sdk/ThinkThreadShell.js +0 -27
  185. package/dist/components/foundations/Badge.d.ts +0 -62
  186. package/dist/components/foundations/Badge.js +0 -55
  187. package/dist/components/foundations/StatusPill.d.ts +0 -43
  188. package/dist/components/foundations/StatusPill.js +0 -35
  189. package/dist/components/general-purpose/Shell.d.ts +0 -149
  190. package/dist/components/general-purpose/Shell.js +0 -116
  191. package/dist/styles/agent-activity-preview-overlay.css +0 -169
  192. package/dist/styles/agent-activity-preview.css +0 -209
  193. package/dist/styles/badge.css +0 -120
  194. package/dist/styles/shell.css +0 -122
  195. package/dist/styles/status-pill.css +0 -39
  196. package/dist/{ThinkChat-DkA4Wr71.js → ThinkChat-BES_3Mb-.js} +1 -1
@@ -126,9 +126,32 @@
126
126
  }
127
127
 
128
128
  .commit__file-status {
129
+ display: inline-flex;
130
+ align-items: center;
131
+ justify-content: center;
129
132
  flex-shrink: 0;
130
133
  min-inline-size: var(--sigvelo-spacing-5);
131
- justify-content: center;
134
+ font-family: var(--sigvelo-font-mono);
135
+ font-size: var(--sigvelo-text-xs);
136
+ font-weight: var(--sigvelo-font-weight-semibold);
137
+ line-height: var(--sigvelo-leading-compact);
138
+ color: var(--sigvelo-color-text-muted);
139
+ }
140
+
141
+ .commit__file-status[data-status="added"] {
142
+ color: var(--sigvelo-color-success-text);
143
+ }
144
+
145
+ .commit__file-status[data-status="modified"] {
146
+ color: var(--sigvelo-color-warning-text);
147
+ }
148
+
149
+ .commit__file-status[data-status="deleted"] {
150
+ color: var(--sigvelo-color-danger-text);
151
+ }
152
+
153
+ .commit__file-status[data-status="renamed"] {
154
+ color: var(--sigvelo-color-primary-text);
132
155
  }
133
156
 
134
157
  .commit__file-icon {
@@ -92,6 +92,9 @@
92
92
 
93
93
  .environment-variables__required {
94
94
  flex-shrink: 0;
95
+ color: var(--sigvelo-color-warning-text);
96
+ font-size: var(--sigvelo-text-2xs);
97
+ font-weight: var(--sigvelo-font-weight-semibold);
95
98
  }
96
99
 
97
100
  .environment-variables__copy {
@@ -15,7 +15,6 @@
15
15
  @import "./accordion.css" layer(components);
16
16
  @import "./activity-header.css" layer(components);
17
17
  @import "./activity.css" layer(components);
18
- @import "./agent-activity-preview.css" layer(components);
19
18
  @import "./agent-attention.css" layer(components);
20
19
  @import "./agent-connection.css" layer(components);
21
20
  @import "./agent-chat.css" layer(components);
@@ -27,7 +26,6 @@
27
26
  @import "./avatar.css" layer(components);
28
27
  @import "./app-icon.css" layer(components);
29
28
  @import "./app-frame.css" layer(components);
30
- @import "./badge.css" layer(components);
31
29
  @import "./button.css" layer(components);
32
30
  @import "./action-guide.css" layer(components);
33
31
  @import "./card.css" layer(components);
@@ -67,9 +65,7 @@
67
65
  @import "./search-field.css" layer(components);
68
66
  @import "./select.css" layer(components);
69
67
  @import "./separator.css" layer(components);
70
- @import "./shell.css" layer(components);
71
68
  @import "./slider.css" layer(components);
72
- @import "./status-pill.css" layer(components);
73
69
  @import "./stepper.css" layer(components);
74
70
  @import "./switch.css" layer(components);
75
71
  @import "./tabs.css" layer(components);
@@ -88,6 +84,7 @@
88
84
  @import "./streamdown.css" layer(components);
89
85
  @import "./artifact.css" layer(components);
90
86
  @import "./browser-live-view.css" layer(components);
87
+ @import "./browser-live-screen.css" layer(components);
91
88
  @import "./browser-control-overlay.css" layer(components);
92
89
  @import "./browser-run-panel.css" layer(components);
93
90
  @import "./browser-replay.css" layer(components);
@@ -112,6 +109,10 @@
112
109
  @import "./reasoning.css" layer(components);
113
110
  @import "./resizable-side-panel.css" layer(components);
114
111
  @import "./responsive-sidebar-shell.css" layer(components);
112
+ /* After the shell it composes: `.manager-office` and `.responsive-sidebar-shell`
113
+ land on the same element at equal specificity, so the shell's `min-block-size:
114
+ 0` silently ate the office's own floor while this sat earlier in the file. */
115
+ @import "./manager-office.css" layer(components);
115
116
  @import "./sources.css" layer(components);
116
117
  @import "./subagent-run.css" layer(components);
117
118
  @import "./task.css" layer(components);
@@ -0,0 +1,486 @@
1
+ .manager-office {
2
+ block-size: 100%;
3
+ min-block-size: 32rem;
4
+ }
5
+
6
+ .manager-office__sidebar {
7
+ block-size: 100%;
8
+ min-inline-size: 0;
9
+ display: grid;
10
+ grid-template-rows: auto auto auto minmax(0, 1fr);
11
+ gap: var(--sigvelo-density-compact-control-gap);
12
+ padding: var(--sigvelo-spacing-2);
13
+ }
14
+
15
+ .manager-office__sidebar-heading,
16
+ .manager-office__sidebar-actions {
17
+ min-inline-size: 0;
18
+ display: flex;
19
+ align-items: center;
20
+ }
21
+
22
+ .manager-office__sidebar-heading {
23
+ min-block-size: var(--sigvelo-density-compact-control-height);
24
+ justify-content: space-between;
25
+ padding-inline-start: var(--sigvelo-spacing-2);
26
+ }
27
+
28
+ .manager-office__sidebar-actions {
29
+ gap: var(--sigvelo-spacing-0-5);
30
+ }
31
+
32
+ /*
33
+ * Ploy's measured application voice is 14px/21px for content and ~12.25px for
34
+ * metadata. The office previously ran a step below that on both — 13px titles
35
+ * over 11px meta — which read as a settings panel rather than the surface a
36
+ * manager works out of. The dense sidebar keeps the compact step; only the
37
+ * content plane moves up.
38
+ */
39
+ .manager-office__sidebar-heading strong,
40
+ .manager-office__employee-nav strong,
41
+ .manager-office__routine-trigger strong {
42
+ font-size: var(--sigvelo-text-compact);
43
+ font-weight: var(--sigvelo-font-weight-semibold);
44
+ line-height: var(--sigvelo-text-compact-leading);
45
+ }
46
+
47
+ .manager-office__employee-header strong,
48
+ .manager-office__work-list strong,
49
+ .manager-office__routine-list strong,
50
+ .manager-office__channel-list strong {
51
+ font-size: var(--sigvelo-text-sm);
52
+ font-weight: var(--sigvelo-font-weight-semibold);
53
+ line-height: var(--sigvelo-text-sm-leading);
54
+ }
55
+
56
+ .manager-office__attention-nav,
57
+ .manager-office__employee-link {
58
+ inline-size: 100%;
59
+ min-inline-size: 0;
60
+ display: grid;
61
+ align-items: center;
62
+ justify-content: stretch;
63
+ gap: var(--sigvelo-density-compact-control-gap);
64
+ font-weight: var(--sigvelo-font-weight-normal);
65
+ text-align: start;
66
+ }
67
+
68
+ .manager-office__attention-nav {
69
+ grid-template-columns: auto minmax(0, 1fr);
70
+ }
71
+
72
+ .manager-office__attention-nav > svg {
73
+ color: var(--sigvelo-color-danger-text);
74
+ }
75
+
76
+ /* A section label above the roster, sized to the rail's own quiet voice. */
77
+ .manager-office__nav-label {
78
+ display: flex;
79
+ align-items: center;
80
+ justify-content: space-between;
81
+ gap: var(--sigvelo-spacing-2);
82
+ margin: var(--sigvelo-spacing-1) 0 0;
83
+ padding-inline: var(--sigvelo-spacing-2);
84
+ color: var(--sigvelo-color-text-muted);
85
+ font-size: var(--sigvelo-text-2xs);
86
+ font-weight: var(--sigvelo-font-weight-semibold);
87
+ line-height: var(--sigvelo-text-2xs-leading);
88
+ text-transform: uppercase;
89
+ letter-spacing: var(--sigvelo-tracking-wide);
90
+ }
91
+
92
+ .manager-office__employee-nav {
93
+ min-block-size: 0;
94
+ overflow: auto;
95
+ }
96
+
97
+ .manager-office__employee-link {
98
+ grid-template-columns: auto minmax(0, 1fr) auto;
99
+ padding-block: var(--sigvelo-spacing-1);
100
+ }
101
+
102
+ .manager-office__identity {
103
+ min-inline-size: 0;
104
+ display: grid;
105
+ gap: var(--sigvelo-spacing-0-5);
106
+ }
107
+
108
+ .manager-office__employee-nav small,
109
+ .manager-office__routine-list small {
110
+ min-inline-size: 0;
111
+ color: var(--sigvelo-color-text-muted);
112
+ font-size: var(--sigvelo-text-2xs);
113
+ line-height: var(--sigvelo-text-2xs-leading);
114
+ }
115
+
116
+ .manager-office__employee-header small,
117
+ .manager-office__work-list small,
118
+ .manager-office__channel-list small {
119
+ min-inline-size: 0;
120
+ color: var(--sigvelo-color-text-muted);
121
+ font-size: var(--sigvelo-text-xs);
122
+ line-height: var(--sigvelo-text-xs-leading);
123
+ }
124
+
125
+ .manager-office__attention-nav[aria-current="page"],
126
+ .manager-office__employee-link[aria-current="page"] {
127
+ background: color-mix(in oklab, var(--sigvelo-color-neutral-bg-subtle), transparent 18%);
128
+ }
129
+
130
+ .manager-office__main {
131
+ min-inline-size: 0;
132
+ min-block-size: 0;
133
+ block-size: 100%;
134
+ overflow: auto;
135
+ }
136
+
137
+ /*
138
+ * A capped, centred column. Stretched to a 1440px pane, a roster row put its
139
+ * status a screen-width away from the name it belonged to; Ploy caps the same
140
+ * lists at 800px for the same reason.
141
+ */
142
+ .manager-office__attention,
143
+ .manager-office__employee-detail {
144
+ min-inline-size: 0;
145
+ inline-size: 100%;
146
+ max-inline-size: 60rem;
147
+ margin-inline: auto;
148
+ padding: var(--sigvelo-spacing-4) var(--sigvelo-spacing-3);
149
+ }
150
+
151
+ .manager-office__attention-list {
152
+ gap: var(--sigvelo-spacing-2);
153
+ }
154
+
155
+ /*
156
+ * Rows are bounded surfaces, not naked ghost buttons. One hairline and a real
157
+ * padding box give each row an edge to scan against, which is what carried
158
+ * Ploy's 67px work rows and Codex's activity rows.
159
+ */
160
+ .manager-office__work-link,
161
+ .manager-office__routine-link,
162
+ .manager-office__channel {
163
+ inline-size: 100%;
164
+ min-inline-size: 0;
165
+ display: grid;
166
+ align-items: center;
167
+ justify-content: stretch;
168
+ gap: var(--sigvelo-density-compact-control-gap);
169
+ font-weight: var(--sigvelo-font-weight-normal);
170
+ text-align: start;
171
+ white-space: normal;
172
+ }
173
+
174
+ .manager-office__work-link {
175
+ min-block-size: var(--sigvelo-control-height-xl);
176
+ padding: var(--sigvelo-spacing-2) var(--sigvelo-spacing-3);
177
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width)
178
+ var(--sigvelo-color-neutral-border-muted);
179
+ border-radius: var(--sigvelo-radius-md);
180
+ background: var(--sigvelo-color-surface);
181
+ }
182
+
183
+ .manager-office__routine-link {
184
+ padding-block: var(--sigvelo-spacing-1);
185
+ }
186
+
187
+ .manager-office__work-link,
188
+ .manager-office__routine-link {
189
+ grid-template-columns: auto minmax(0, 1fr) auto;
190
+ }
191
+
192
+ .manager-office__row-chevron {
193
+ color: var(--sigvelo-color-text-subtle);
194
+ }
195
+
196
+ .manager-office__employee-detail {
197
+ display: grid;
198
+ align-content: start;
199
+ gap: var(--sigvelo-spacing-3);
200
+ }
201
+
202
+ .manager-office__employee-header {
203
+ min-inline-size: 0;
204
+ display: grid;
205
+ grid-template-columns: auto minmax(0, 1fr) auto auto;
206
+ align-items: center;
207
+ gap: var(--sigvelo-spacing-3);
208
+ padding-block: var(--sigvelo-spacing-1);
209
+ }
210
+
211
+ .manager-office__employee-handoffs,
212
+ .manager-office__attention-list {
213
+ display: grid;
214
+ gap: var(--sigvelo-spacing-2);
215
+ }
216
+
217
+ .manager-office__handoff {
218
+ inline-size: 100%;
219
+ gap: var(--sigvelo-spacing-3);
220
+ padding: var(--sigvelo-spacing-3);
221
+ /* Lifted off a transcript the card needs elevation; sitting on the page it
222
+ does not, and the attention hairline reads better without a shadow
223
+ competing with it. Same call as the sections below. */
224
+ box-shadow: none;
225
+ }
226
+
227
+ /*
228
+ * `AgentAttention` stacks header over body over actions, which is right when
229
+ * the employee quoted its ask. When it did not, that stack spends a whole row
230
+ * on a lone button, so the card pulls the way in up beside the ask instead.
231
+ */
232
+ .manager-office__handoff:not(:has(.agent-attention__body)) {
233
+ grid-template-columns: minmax(0, 1fr) auto;
234
+ align-items: center;
235
+ }
236
+
237
+ /* The verbatim ask is the point of the card; it wraps rather than truncating,
238
+ unlike the description line above it. */
239
+ .manager-office__handoff > .agent-attention__body {
240
+ grid-column: 1 / -1;
241
+ color: var(--sigvelo-color-text);
242
+ font-size: var(--sigvelo-text-sm);
243
+ line-height: var(--sigvelo-text-sm-leading);
244
+ }
245
+
246
+ @container responsive-sidebar-shell (inline-size <= 34rem) {
247
+ .manager-office__handoff:not(:has(.agent-attention__body)) {
248
+ grid-template-columns: minmax(0, 1fr);
249
+ gap: var(--sigvelo-spacing-2);
250
+ }
251
+ }
252
+
253
+ .manager-office__employee-columns {
254
+ min-inline-size: 0;
255
+ display: grid;
256
+ grid-template-columns: minmax(0, 2fr) minmax(15rem, 1fr);
257
+ align-items: stretch;
258
+ gap: var(--sigvelo-spacing-3);
259
+ }
260
+
261
+ .manager-office__employee-aside {
262
+ min-inline-size: 0;
263
+ display: grid;
264
+ align-content: start;
265
+ gap: var(--sigvelo-spacing-3);
266
+ }
267
+
268
+ .manager-office__section {
269
+ min-inline-size: 0;
270
+ display: grid;
271
+ align-content: start;
272
+ gap: var(--sigvelo-spacing-2);
273
+ padding-block: var(--sigvelo-spacing-3);
274
+ }
275
+
276
+ .manager-office__section-header {
277
+ display: flex;
278
+ align-items: flex-start;
279
+ justify-content: space-between;
280
+ gap: var(--sigvelo-spacing-2);
281
+ }
282
+
283
+ /* The glyph makes the three panes distinct before their labels are read. */
284
+ .manager-office__section-title {
285
+ display: flex;
286
+ align-items: center;
287
+ gap: var(--sigvelo-density-compact-control-gap);
288
+ margin: 0;
289
+ font-size: var(--sigvelo-text-sm);
290
+ font-weight: var(--sigvelo-font-weight-semibold);
291
+ line-height: var(--sigvelo-leading-tight);
292
+ }
293
+
294
+ .manager-office__section-title > svg {
295
+ color: var(--sigvelo-color-text-muted);
296
+ inline-size: var(--sigvelo-density-compact-control-icon-size);
297
+ block-size: var(--sigvelo-density-compact-control-icon-size);
298
+ }
299
+
300
+ .manager-office__section-content {
301
+ display: grid;
302
+ gap: 0;
303
+ }
304
+
305
+ .manager-office__channel-list {
306
+ gap: var(--sigvelo-spacing-0-5);
307
+ }
308
+
309
+ .manager-office__channel {
310
+ grid-template-columns: auto minmax(0, 1fr) auto auto;
311
+ padding: var(--sigvelo-spacing-1) 0;
312
+ }
313
+
314
+ /* The host's mark sits in the tile the way a favicon would, so a supplied SVG
315
+ and a fallback initial occupy the same box. */
316
+ .manager-office__channel-mark {
317
+ display: inline-grid;
318
+ place-items: center;
319
+ inline-size: 100%;
320
+ block-size: 100%;
321
+ }
322
+
323
+ .manager-office__channel-mark > svg {
324
+ inline-size: 65%;
325
+ block-size: 65%;
326
+ }
327
+
328
+ .manager-office__channel-direction {
329
+ display: inline-grid;
330
+ place-items: center;
331
+ color: var(--sigvelo-color-text-muted);
332
+ }
333
+
334
+ .manager-office__channel-status {
335
+ display: inline-grid;
336
+ place-items: center;
337
+ }
338
+
339
+ .manager-office__channel-status[data-status="connected"] {
340
+ color: var(--sigvelo-color-success-text);
341
+ }
342
+
343
+ .manager-office__channel-status[data-status="needs-auth"] {
344
+ color: var(--sigvelo-color-danger-text);
345
+ }
346
+
347
+ .manager-office__channel-status[data-status="error"] {
348
+ color: var(--sigvelo-color-danger-text);
349
+ }
350
+
351
+ .manager-office__work-list {
352
+ gap: var(--sigvelo-spacing-2);
353
+ }
354
+
355
+ .manager-office__routine-list {
356
+ gap: var(--sigvelo-spacing-0-5);
357
+ }
358
+
359
+ .manager-office__routine-trigger {
360
+ inline-size: 100%;
361
+ min-inline-size: 0;
362
+ display: grid;
363
+ grid-template-columns: minmax(0, 1fr) auto;
364
+ align-items: center;
365
+ justify-content: stretch;
366
+ padding-inline: 0;
367
+ text-align: start;
368
+ }
369
+
370
+ .manager-office__routine-trigger > span:first-child {
371
+ min-inline-size: 0;
372
+ display: flex;
373
+ align-items: center;
374
+ gap: var(--sigvelo-density-compact-control-gap);
375
+ }
376
+
377
+ .manager-office__routine-list {
378
+ margin-block-start: var(--sigvelo-spacing-1);
379
+ }
380
+
381
+ .manager-office__nav-status,
382
+ .manager-office__thread-status {
383
+ display: inline-grid;
384
+ place-items: center;
385
+ color: var(--sigvelo-color-text-muted);
386
+ }
387
+
388
+ .manager-office__status,
389
+ .manager-office__evidence {
390
+ display: inline-flex;
391
+ align-items: center;
392
+ gap: var(--sigvelo-density-compact-control-gap);
393
+ color: var(--sigvelo-color-text-muted);
394
+ font-size: var(--sigvelo-text-xs);
395
+ line-height: var(--sigvelo-leading-snug);
396
+ white-space: nowrap;
397
+ }
398
+
399
+ .manager-office__status > svg,
400
+ .manager-office__evidence > svg,
401
+ .manager-office__nav-status > svg,
402
+ .manager-office__thread-status > svg,
403
+ .manager-office__channel-direction > svg,
404
+ .manager-office__channel-status > svg,
405
+ .manager-office__row-chevron,
406
+ .manager-office__routine-link > svg {
407
+ inline-size: var(--sigvelo-density-compact-control-icon-size);
408
+ block-size: var(--sigvelo-density-compact-control-icon-size);
409
+ }
410
+
411
+ .manager-office__status[data-status="needs-you"],
412
+ .manager-office__nav-status[data-status="needs-you"],
413
+ .manager-office__status[data-status="issue"],
414
+ .manager-office__status[data-status="unavailable"],
415
+ .manager-office__nav-status[data-status="issue"],
416
+ .manager-office__nav-status[data-status="unavailable"],
417
+ .manager-office__thread-status[data-status="error"] {
418
+ color: var(--sigvelo-color-danger-text);
419
+ }
420
+
421
+ .manager-office__status[data-status="working"],
422
+ .manager-office__status[data-status="connecting"],
423
+ .manager-office__nav-status[data-status="working"],
424
+ .manager-office__nav-status[data-status="connecting"],
425
+ .manager-office__thread-status[data-status="running"] {
426
+ color: var(--sigvelo-color-primary-text);
427
+ }
428
+
429
+ .manager-office__evidence[data-complete] {
430
+ color: var(--sigvelo-color-success-text);
431
+ }
432
+
433
+ /*
434
+ * The rail's state line stays muted and lets the glyph beside it carry the
435
+ * colour. Tinting both put semantic text at 11px over the selected row's
436
+ * raised background, which lands at 4.28:1 — under the 4.5:1 floor — and the
437
+ * glyph is a non-text element held to 3:1, so it can say the same thing.
438
+ */
439
+
440
+ .manager-office__unread-dot {
441
+ display: inline-block;
442
+ inline-size: var(--sigvelo-spacing-1-5);
443
+ block-size: var(--sigvelo-spacing-1-5);
444
+ margin-inline-start: var(--sigvelo-spacing-1);
445
+ border-radius: var(--sigvelo-radius-full);
446
+ background: var(--sigvelo-color-primary-text);
447
+ vertical-align: middle;
448
+ }
449
+
450
+ .manager-office__main > .empty-state {
451
+ padding: var(--sigvelo-spacing-6) var(--sigvelo-spacing-3);
452
+ }
453
+
454
+ @container responsive-sidebar-shell (inline-size <= 42rem) {
455
+ .manager-office__attention,
456
+ .manager-office__employee-detail {
457
+ padding: var(--sigvelo-spacing-2);
458
+ }
459
+
460
+ .manager-office__employee-columns {
461
+ grid-template-columns: minmax(0, 1fr);
462
+ }
463
+ }
464
+
465
+ @container responsive-sidebar-shell (inline-size <= 30rem) {
466
+ .manager-office__status > span {
467
+ display: none;
468
+ }
469
+ }
470
+
471
+ @media (any-pointer: coarse) {
472
+ .manager-office__attention-nav,
473
+ .manager-office__employee-link,
474
+ .manager-office__work-link,
475
+ .manager-office__routine-link,
476
+ .manager-office__routine-trigger {
477
+ min-block-size: var(--sigvelo-control-height-xl);
478
+ }
479
+ }
480
+
481
+ @media (forced-colors: active) {
482
+ .manager-office__attention-nav[aria-current="page"],
483
+ .manager-office__employee-link[aria-current="page"] {
484
+ outline: var(--sigvelo-border-width) solid Highlight;
485
+ }
486
+ }