@mcp-b/react-components 0.51.2 → 0.52.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 (127) hide show
  1. package/dist/{CodeBlock-g8sADidM.js → CodeBlock-Bl-q7wMc.js} +1 -0
  2. package/dist/{CodeBlock--r6GS8YV.d.ts → CodeBlock-DJ99TQWy.d.ts} +1 -1
  3. package/dist/EmployeeChrome-C8eTGJWn.d.ts +231 -0
  4. package/dist/{IconButton-ByiyjkYE.d.ts → IconButton-CAlFVb2L.d.ts} +3 -0
  5. package/dist/{ManagerOffice-D-7SOJ4x.js → ManagerOffice-CMJ7laGe.js} +14 -9
  6. package/dist/McpPluginCatalog-DNeHDrts.d.ts +94 -0
  7. package/dist/{Message-DyaTBiV7.d.ts → Message-COsMPZSC.d.ts} +2 -2
  8. package/dist/{ResponsiveSidebarShell-CAmmtQTR.d.ts → ResponsiveSidebarShell-BUBQa_IV.d.ts} +3 -1
  9. package/dist/{SetupChecklist-Btmy3-_C.js → SetupChecklist-BiWQkKEq.js} +5 -4
  10. package/dist/{ThinkThreadPicker-yetGX_s5.d.ts → ThinkThreadPicker-DX0lL-P7.d.ts} +3 -0
  11. package/dist/{Workspace-HzGrWDX3.d.ts → Workspace-mzMZSdts.d.ts} +1 -1
  12. package/dist/WorkspaceConceptPanel-97ZyVpZI.js +20 -0
  13. package/dist/{WorkspaceFile-Bouauobc.d.ts → WorkspaceFile-19WP0EU1.d.ts} +1 -1
  14. package/dist/{WorkspaceFileView-DYPtRVpM.js → WorkspaceFileView-DXgTljKV.js} +2 -1
  15. package/dist/{WorkspaceMessageResponse-8lOSAbw_.d.ts → WorkspaceMessageResponse-BApg8KZv.d.ts} +1 -1
  16. package/dist/WorkspaceMountManager-CkLI1B-G.d.ts +33 -0
  17. package/dist/assets/sigvelo-logo.svg +54 -0
  18. package/dist/components/agents-sdk/AgentChat.d.ts +6 -2
  19. package/dist/components/agents-sdk/AgentChat.js +4 -8
  20. package/dist/components/agents-sdk/EmployeeApp.d.ts +43 -30
  21. package/dist/components/agents-sdk/EmployeeApp.js +47 -34
  22. package/dist/components/agents-sdk/EmployeeChat.d.ts +28 -8
  23. package/dist/components/agents-sdk/EmployeeChat.js +32 -4
  24. package/dist/components/agents-sdk/EmployeeChrome.d.ts +1 -219
  25. package/dist/components/agents-sdk/EmployeeChrome.js +101 -102
  26. package/dist/components/agents-sdk/EmployeeSchedules.d.ts +1 -1
  27. package/dist/components/agents-sdk/EmployeeSchedules.js +1 -2
  28. package/dist/components/agents-sdk/EmployeeStartScreen.d.ts +12 -11
  29. package/dist/components/agents-sdk/EmployeeStartScreen.js +21 -14
  30. package/dist/components/agents-sdk/ManagerAccountActions.js +0 -1
  31. package/dist/components/agents-sdk/ManagerOffice.js +1 -2
  32. package/dist/components/agents-sdk/ManagerOfficeScreens.d.ts +2 -2
  33. package/dist/components/agents-sdk/ManagerOfficeScreens.js +30 -13
  34. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +1 -93
  35. package/dist/components/agents-sdk/McpPluginCatalog.js +3 -3
  36. package/dist/components/agents-sdk/McpServerPicker.js +3 -3
  37. package/dist/components/agents-sdk/SubagentRunPanel.d.ts +3 -0
  38. package/dist/components/agents-sdk/SubagentRunPanel.js +66 -46
  39. package/dist/components/agents-sdk/ThinkChat.d.ts +1 -1
  40. package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
  41. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +4 -11
  42. package/dist/components/agents-sdk/ThinkFullApp.d.ts +2 -0
  43. package/dist/components/agents-sdk/ThinkFullApp.js +2 -0
  44. package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
  45. package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +1 -1
  46. package/dist/components/agents-sdk/ThinkThreadPicker.js +32 -19
  47. package/dist/components/agents-sdk/WorkbenchBack.d.ts +18 -0
  48. package/dist/components/agents-sdk/WorkbenchBack.js +27 -0
  49. package/dist/components/agents-sdk/Workspace.d.ts +1 -1
  50. package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
  51. package/dist/components/agents-sdk/WorkspaceBrowser.js +2 -0
  52. package/dist/components/agents-sdk/WorkspaceConcept.d.ts +1 -1
  53. package/dist/components/agents-sdk/WorkspaceExecution.js +7 -4
  54. package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +4 -1
  55. package/dist/components/agents-sdk/WorkspaceExplorer.js +13 -4
  56. package/dist/components/agents-sdk/WorkspaceFile.d.ts +1 -1
  57. package/dist/components/agents-sdk/WorkspaceFileView.d.ts +1 -1
  58. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  59. package/dist/components/agents-sdk/WorkspaceLive.d.ts +2 -2
  60. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  61. package/dist/components/agents-sdk/WorkspaceMountManager.d.ts +1 -32
  62. package/dist/components/agents-sdk/WorkspaceMountManager.js +1 -1
  63. package/dist/components/agents-sdk/WorkspaceProject.js +3 -1
  64. package/dist/components/agents-sdk/WorkspaceUserScript.js +3 -1
  65. package/dist/components/ai-sdk/Artifact.d.ts +1 -1
  66. package/dist/components/ai-sdk/CodeBlock.d.ts +1 -1
  67. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  68. package/dist/components/ai-sdk/Conversation.d.ts +1 -1
  69. package/dist/components/ai-sdk/Message.d.ts +1 -1
  70. package/dist/components/ai-sdk/PromptInput.js +1 -1
  71. package/dist/components/extension/ChatGptSignInScreen.d.ts +1 -1
  72. package/dist/components/extension/ChatGptSignInScreen.js +60 -185
  73. package/dist/components/extension/CodexModelSelector.js +2 -6
  74. package/dist/components/foundations/IconButton.d.ts +1 -1
  75. package/dist/components/foundations/IconButton.js +7 -4
  76. package/dist/components/general-purpose/AccountSignInDialog.d.ts +5 -9
  77. package/dist/components/general-purpose/AccountSignInDialog.js +12 -4
  78. package/dist/components/general-purpose/BrandLoading.d.ts +14 -0
  79. package/dist/components/general-purpose/BrandLoading.js +25 -0
  80. package/dist/components/general-purpose/Commit.d.ts +1 -1
  81. package/dist/components/general-purpose/EnvironmentVariables.d.ts +1 -1
  82. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +1 -1
  83. package/dist/components/general-purpose/ResponsiveSidebarShell.js +58 -26
  84. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  85. package/dist/components/general-purpose/StatusScreen.d.ts +13 -2
  86. package/dist/components/general-purpose/StatusScreen.js +27 -3
  87. package/dist/components/general-purpose/Terminal.d.ts +2 -2
  88. package/dist/components/general-purpose/WebPreview.d.ts +1 -1
  89. package/dist/components/nanites/AgentConnection.js +1 -1
  90. package/dist/{copy-button-OUwOdgEm.d.ts → copy-button-CJYYgCIU.d.ts} +1 -1
  91. package/dist/styles/activity.css +2 -2
  92. package/dist/styles/agent-chat.css +6 -105
  93. package/dist/styles/app-root.css +9 -0
  94. package/dist/styles/app-top-bar.css +10 -4
  95. package/dist/styles/avatar.css +2 -2
  96. package/dist/styles/base.css +6 -2
  97. package/dist/styles/brand-loading.css +58 -0
  98. package/dist/styles/brand.test.ts +158 -0
  99. package/dist/styles/browser-control-overlay.css +22 -0
  100. package/dist/styles/button.css +22 -1
  101. package/dist/styles/chatgpt-sign-in-screen.css +111 -225
  102. package/dist/styles/code-block.css +5 -0
  103. package/dist/styles/codex-model-selector.css +2 -12
  104. package/dist/styles/description-list.css +9 -2
  105. package/dist/styles/employee-app.css +19 -1
  106. package/dist/styles/employee-chrome.css +35 -5
  107. package/dist/styles/file-tree.css +15 -2
  108. package/dist/styles/index.css +1 -0
  109. package/dist/styles/manager-office.css +80 -55
  110. package/dist/styles/manager-work.css +5 -11
  111. package/dist/styles/mcp-plugin-catalog.css +29 -34
  112. package/dist/styles/mcp-server-picker.css +13 -5
  113. package/dist/styles/prompt-input.css +3 -13
  114. package/dist/styles/queue.css +1 -1
  115. package/dist/styles/recipes.css +9 -2
  116. package/dist/styles/responsive-sidebar-shell-motion.test.ts +67 -0
  117. package/dist/styles/responsive-sidebar-shell.css +70 -25
  118. package/dist/styles/search-field.css +8 -6
  119. package/dist/styles/subagent-run.css +81 -0
  120. package/dist/styles/think-execution-workbench.css +0 -17
  121. package/dist/styles/think-full-app.css +11 -4
  122. package/dist/styles/think-thread-picker.css +16 -38
  123. package/dist/styles/workspace-concepts.css +29 -2
  124. package/dist/styles/workspace-explorer.css +6 -48
  125. package/dist/utils/structured-code.d.ts +1 -1
  126. package/package.json +2 -2
  127. package/dist/styles/extension-status.css +0 -46
@@ -1,4 +1,5 @@
1
- .employee-app {
1
+ .employee-app,
2
+ .employee-app__surface {
2
3
  block-size: 100%;
3
4
  min-block-size: 0;
4
5
  min-inline-size: 0;
@@ -16,6 +17,11 @@
16
17
  padding: var(--sigvelo-layout-gutter);
17
18
  }
18
19
 
20
+ .status-screen__title {
21
+ margin: 0;
22
+ font: inherit;
23
+ }
24
+
19
25
  .account-sign-in-dialog__control {
20
26
  display: grid;
21
27
  justify-items: center;
@@ -27,3 +33,15 @@
27
33
  body:has(.employee-app .agent-chat__composer) .sigvelo-floating-prompt {
28
34
  --sigvelo-floating-prompt-inset: calc(var(--sigvelo-spacing-16) + var(--sigvelo-spacing-2));
29
35
  }
36
+
37
+ .employee-start__plugins {
38
+ inline-size: min(24rem, var(--available-width));
39
+ max-block-size: min(24rem, var(--available-height));
40
+ overflow-y: auto;
41
+ overscroll-behavior: contain;
42
+ scrollbar-gutter: stable;
43
+ }
44
+
45
+ .employee-app__surface[hidden] {
46
+ display: none;
47
+ }
@@ -31,13 +31,43 @@
31
31
  gap: var(--sigvelo-spacing-3);
32
32
  }
33
33
 
34
- .employee-menu__group-label {
34
+ .employee-menu__appearance.menu__group {
35
35
  display: flex;
36
+ flex-direction: row;
36
37
  align-items: center;
37
- gap: var(--sigvelo-spacing-1-5);
38
+ justify-content: space-between;
39
+ gap: var(--sigvelo-spacing-2);
38
40
  }
39
41
 
40
- .employee-menu__hint {
41
- display: inline-flex;
42
- color: var(--sigvelo-color-text-muted);
42
+ .employee-menu__theme-options.menu__radio-group {
43
+ display: flex;
44
+ flex-direction: row;
45
+ gap: var(--sigvelo-spacing-0-5);
46
+ padding: var(--sigvelo-spacing-1);
47
+ }
48
+
49
+ .employee-menu__theme-option {
50
+ justify-content: center;
51
+ inline-size: var(--sigvelo-density-compact-control-height);
52
+ min-inline-size: var(--sigvelo-density-compact-control-height);
53
+ padding-inline: 0;
54
+ }
55
+
56
+ .employee-menu__theme-option[aria-checked="true"] {
57
+ color: var(--sigvelo-color-primary-text);
58
+ background: var(--sigvelo-color-primary-bg-subtle);
59
+ }
60
+
61
+ @media (pointer: coarse) {
62
+ .employee-menu__theme-option {
63
+ min-inline-size: var(--sigvelo-spacing-11);
64
+ min-block-size: var(--sigvelo-spacing-11);
65
+ }
66
+ }
67
+
68
+ .employee-shell__navigation[data-sidebar-open="true"]
69
+ > .responsive-sidebar-shell__frame
70
+ > .responsive-sidebar-shell__main
71
+ .responsive-sidebar-shell__toggle {
72
+ display: none;
43
73
  }
@@ -176,6 +176,16 @@
176
176
  opacity: 1;
177
177
  }
178
178
 
179
+ @media (any-pointer: coarse) {
180
+ .file-tree__node {
181
+ min-block-size: var(--sigvelo-control-height-xl);
182
+ }
183
+
184
+ .file-tree__actions {
185
+ opacity: 1;
186
+ }
187
+ }
188
+
179
189
  @media (forced-colors: active) {
180
190
  .file-tree {
181
191
  border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
@@ -184,10 +194,13 @@
184
194
  .file-tree__node:focus-visible,
185
195
  .file-tree__node[data-focused] {
186
196
  outline: var(--sigvelo-focus-ring-forced);
187
- outline-offset: 2px;
197
+ outline-offset: calc(-1 * var(--sigvelo-focus-width));
188
198
  }
189
199
 
190
- .file-tree__node[data-selected] {
200
+ .file-tree__node[data-selected],
201
+ .file-tree__node[data-selected]:hover {
202
+ /* Keep system-color text legible without a Canvas backplate over the selection. */
203
+ forced-color-adjust: none;
191
204
  background-color: Highlight;
192
205
  color: HighlightText;
193
206
  }
@@ -19,6 +19,7 @@
19
19
  @import "./think-chat-activity.css" layer(components);
20
20
  @import "./agent-attention.css" layer(components);
21
21
  @import "./agent-connection.css" layer(components);
22
+ @import "./brand-loading.css" layer(components);
22
23
  @import "./agent-chat.css" layer(components);
23
24
  @import "./agent-event.css" layer(components);
24
25
  @import "./approval.css" layer(components);
@@ -1,10 +1,10 @@
1
1
  .manager-office {
2
2
  block-size: 100%;
3
- min-block-size: 32rem;
3
+ min-block-size: 0;
4
4
  }
5
5
 
6
6
  .manager-office__sidebar {
7
- --manager-office-face: var(--sigvelo-control-height-sm);
7
+ --manager-office-face: 2.625rem;
8
8
 
9
9
  block-size: 100%;
10
10
  min-inline-size: 0;
@@ -116,27 +116,27 @@
116
116
  --manager-office-face: 2.625rem;
117
117
 
118
118
  display: grid;
119
- grid-template-columns: var(--sigvelo-layout-track-fill) auto;
120
- grid-template-rows: auto var(--sigvelo-layout-track-fill);
119
+ grid-template-columns: var(--sigvelo-layout-track-fill);
120
+ grid-template-rows: auto auto var(--sigvelo-layout-track-fill);
121
121
  }
122
122
 
123
123
  .manager-office__sidebar[data-layout="chat"] .manager-office__sidebar-heading {
124
- grid-column: 2;
124
+ grid-column: 1;
125
125
  grid-row: 1;
126
- min-block-size: calc(var(--manager-office-face) + var(--sigvelo-spacing-2));
127
- justify-content: flex-end;
126
+ min-block-size: var(--sigvelo-layout-chrome);
127
+ justify-content: space-between;
128
128
  padding: var(--sigvelo-spacing-1) var(--sigvelo-spacing-2);
129
129
  }
130
130
 
131
131
  .manager-office__sidebar[data-layout="chat"] .manager-office__employee-nav {
132
132
  grid-column: 1;
133
- grid-row: 1;
133
+ grid-row: 2;
134
134
  flex: none;
135
135
  flex-direction: row;
136
136
  align-items: center;
137
137
  gap: var(--sigvelo-spacing-0-5);
138
138
  padding-block: var(--sigvelo-spacing-2);
139
- padding-inline: var(--sigvelo-layout-gutter) var(--sigvelo-spacing-1);
139
+ padding-inline: var(--sigvelo-spacing-2);
140
140
  overflow-x: auto;
141
141
  overflow-y: hidden;
142
142
  }
@@ -148,6 +148,10 @@
148
148
  }
149
149
  }
150
150
 
151
+ .manager-office__sidebar[data-layout="chat"] .manager-office__employee-group {
152
+ flex: 0 0 auto;
153
+ }
154
+
151
155
  .manager-office__sidebar[data-layout="chat"] .manager-office__employee-link {
152
156
  inline-size: 2.875rem;
153
157
  block-size: 2.875rem;
@@ -175,7 +179,7 @@
175
179
  inline-size: var(--sigvelo-spacing-4);
176
180
  block-size: var(--sigvelo-spacing-0-5);
177
181
  border-radius: var(--sigvelo-radius-full);
178
- background: var(--sigvelo-color-text);
182
+ background: var(--sigvelo-color-primary-text);
179
183
  content: "";
180
184
  opacity: 0.72;
181
185
  translate: -50%;
@@ -187,7 +191,7 @@
187
191
 
188
192
  .manager-office__sidebar[data-layout="chat"] .manager-office__sidebar-content {
189
193
  grid-column: 1 / -1;
190
- grid-row: 2;
194
+ grid-row: 3;
191
195
  border-block-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
192
196
  var(--sigvelo-color-neutral-border-subtle);
193
197
  }
@@ -291,8 +295,8 @@
291
295
  position: relative;
292
296
  inline-size: 100%;
293
297
  min-inline-size: 0;
294
- min-block-size: var(--manager-office-face);
295
- padding-block: 0;
298
+ min-block-size: calc(var(--manager-office-face) + var(--sigvelo-spacing-2));
299
+ padding-block: var(--sigvelo-spacing-1);
296
300
  padding-inline: var(--sigvelo-spacing-2);
297
301
  display: grid;
298
302
  grid-template-columns: var(--manager-office-face) var(--sigvelo-layout-track-fill);
@@ -309,7 +313,7 @@
309
313
  }
310
314
 
311
315
  .manager-office__employee-link[aria-current="page"] {
312
- background-color: color-mix(in oklab, var(--sigvelo-color-neutral-bg-subtle), transparent 18%);
316
+ background-color: var(--sigvelo-color-primary-bg-subtle);
313
317
  }
314
318
 
315
319
  .manager-office__employee-link:focus-visible {
@@ -326,6 +330,7 @@
326
330
  }
327
331
 
328
332
  .manager-office__employee-avatar .manager-office__employee-character {
333
+ --sigvelo-recipe-avatar-size: var(--manager-office-face);
329
334
  overflow: hidden;
330
335
  border-radius: var(--sigvelo-radius-md);
331
336
  background: transparent;
@@ -377,50 +382,38 @@
377
382
 
378
383
  .manager-office__nav-status {
379
384
  position: absolute;
380
- inset-inline-end: 0;
381
- inset-block-end: 0;
382
- inline-size: var(--sigvelo-spacing-2);
383
- block-size: var(--sigvelo-spacing-2);
384
- translate: 20% 20%;
385
- border-radius: var(--sigvelo-radius-full);
386
- background: var(--sigvelo-color-text-muted);
387
- box-shadow: 0 0 0 var(--sigvelo-border-width) var(--sigvelo-color-surface);
385
+ inset-inline-end: -1px;
386
+ inset-block-end: -1px;
387
+ inline-size: var(--sigvelo-spacing-3);
388
+ block-size: var(--sigvelo-spacing-3);
389
+ display: grid;
390
+ place-items: center;
391
+ border-radius: var(--sigvelo-radius-xs);
392
+ background: var(--responsive-sidebar-shell-sidebar-surface, var(--sigvelo-color-canvas));
393
+ box-shadow: 0 0 0 var(--sigvelo-border-width)
394
+ var(--responsive-sidebar-shell-sidebar-surface, var(--sigvelo-color-canvas));
395
+ color: var(--sigvelo-color-text-muted);
388
396
  }
389
397
 
390
- .manager-office__nav-status:is([data-status="needs-you"], [data-status="issue"]) {
391
- background: var(--sigvelo-color-danger-text);
398
+ .manager-office__nav-status > svg {
399
+ inline-size: 100%;
400
+ block-size: 100%;
392
401
  }
393
402
 
394
- .manager-office__nav-status:is([data-status="working"], [data-status="connecting"]) {
395
- background: var(--sigvelo-color-primary-text);
403
+ .manager-office__nav-status:is([data-status="needs-you"], [data-status="issue"]) {
404
+ color: var(--sigvelo-color-danger-text);
396
405
  }
397
406
 
398
- .manager-office__nav-status[data-status="connecting"] {
399
- animation: manager-office-presence-pulse var(--sigvelo-motion-duration-presence)
400
- var(--sigvelo-motion-ease-change) infinite;
407
+ .manager-office__nav-status:is([data-status="working"], [data-status="connecting"]) {
408
+ color: var(--sigvelo-color-primary-text);
401
409
  }
402
410
 
403
411
  .manager-office__nav-status[data-status="unavailable"] {
404
- background: var(--sigvelo-color-warning-text);
412
+ color: var(--sigvelo-color-warning-text);
405
413
  }
406
414
 
407
- .manager-office__nav-status[data-status="offline"] {
408
- background: transparent;
409
- box-shadow:
410
- 0 0 0 var(--sigvelo-border-width) var(--sigvelo-color-surface),
411
- 0 0 0 calc(var(--sigvelo-border-width) * 2) var(--sigvelo-color-text-muted);
412
- }
413
-
414
- @keyframes manager-office-presence-pulse {
415
- 50% {
416
- opacity: 0.45;
417
- }
418
- }
419
-
420
- @media (prefers-reduced-motion: reduce) {
421
- .manager-office__nav-status[data-status="connecting"] {
422
- animation: none;
423
- }
415
+ .manager-office__nav-status[data-status="idle"] {
416
+ color: var(--sigvelo-color-success-text);
424
417
  }
425
418
 
426
419
  .manager-office__identity {
@@ -514,7 +507,7 @@
514
507
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
515
508
  var(--sigvelo-color-neutral-border-muted);
516
509
  border-radius: var(--sigvelo-radius-md);
517
- background-color: var(--sigvelo-color-surface);
510
+ background-color: var(--sigvelo-color-surface-raised);
518
511
  color: var(--sigvelo-color-text);
519
512
  }
520
513
 
@@ -739,6 +732,7 @@
739
732
 
740
733
  /* The glyph makes the three panes distinct before their labels are read. */
741
734
  .manager-office__section-title {
735
+ color: var(--sigvelo-color-primary-text);
742
736
  display: flex;
743
737
  align-items: center;
744
738
  gap: var(--sigvelo-density-compact-control-gap);
@@ -912,14 +906,10 @@
912
906
  color: CanvasText;
913
907
  }
914
908
 
915
- .manager-office__nav-status {
916
- background: CanvasText;
917
- box-shadow: 0 0 0 var(--sigvelo-border-width) Canvas;
918
- }
919
-
920
- .manager-office__nav-status[data-status="offline"] {
909
+ .manager-office__nav-status[data-status] {
910
+ color: CanvasText;
921
911
  background: Canvas;
922
- box-shadow: 0 0 0 var(--sigvelo-border-width) CanvasText;
912
+ box-shadow: 0 0 0 var(--sigvelo-border-width) Canvas;
923
913
  }
924
914
 
925
915
  .manager-office__lane {
@@ -932,3 +922,38 @@
932
922
  box-shadow: none;
933
923
  }
934
924
  }
925
+
926
+ .manager-office__channels {
927
+ padding-block: 0;
928
+ gap: 0;
929
+ }
930
+
931
+ .manager-office__channels-header {
932
+ min-block-size: var(--sigvelo-density-compact-control-height);
933
+ padding-block: var(--sigvelo-spacing-0-5);
934
+ padding-inline: var(--sigvelo-layout-gutter);
935
+ border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
936
+ var(--sigvelo-color-neutral-border-subtle);
937
+ box-shadow: var(--sigvelo-elevation-bar);
938
+ }
939
+
940
+ .manager-office__channels > .manager-office__section-content {
941
+ padding: var(--sigvelo-layout-cluster) var(--sigvelo-layout-gutter);
942
+ }
943
+
944
+ /* A standalone Channels pane owns its header and content gutters. */
945
+ .manager-office__employee-detail:has(> .manager-office__channels:only-child) {
946
+ padding: 0;
947
+ }
948
+
949
+ .manager-office__channels-title {
950
+ display: flex;
951
+ align-items: center;
952
+ gap: var(--sigvelo-density-compact-control-gap);
953
+ }
954
+
955
+ .manager-office__channels-title > svg {
956
+ inline-size: var(--sigvelo-density-compact-control-icon-size);
957
+ block-size: var(--sigvelo-density-compact-control-icon-size);
958
+ color: var(--sigvelo-color-text-muted);
959
+ }
@@ -76,18 +76,12 @@
76
76
  }
77
77
 
78
78
  @container responsive-sidebar-shell (inline-size <= 56rem) {
79
- .responsive-sidebar-shell__sidebar:has(.manager-office__sidebar) {
80
- block-size: min(32rem, calc(100% - var(--sigvelo-spacing-3)));
81
- transition: none;
82
- }
83
-
84
79
  .manager-work__employee-chats {
85
- max-block-size: none;
86
- overflow: visible;
80
+ overflow-y: auto;
81
+ overscroll-behavior: contain;
87
82
  }
88
-
89
- .manager-work__threads-picker {
90
- min-block-size: 0;
91
- flex: none;
83
+ .manager-work__threads {
84
+ flex: 1 0 auto;
85
+ min-block-size: 16rem;
92
86
  }
93
87
  }
@@ -14,17 +14,16 @@
14
14
  display: grid;
15
15
  }
16
16
 
17
- /* The card's chrome row at the bar rhythm: no title (the hosting tab or icon
18
- carries it), no fill — separated from the scrolling directory by one
19
- hairline and a breath of shadow. */
20
17
  .mcp-plugin-catalog__header {
21
18
  position: relative;
19
+ background: var(--sigvelo-color-canvas);
22
20
  flex: none;
23
- display: flex;
21
+ display: grid;
22
+ grid-template-columns: var(--sigvelo-layout-track-fill) auto;
24
23
  align-items: center;
25
- gap: var(--sigvelo-layout-cluster);
24
+ gap: var(--sigvelo-spacing-2);
26
25
  min-block-size: var(--sigvelo-layout-chrome);
27
- padding-block: var(--sigvelo-spacing-1);
26
+ padding-block: var(--sigvelo-spacing-2);
28
27
  padding-inline: var(--sigvelo-layout-gutter);
29
28
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
30
29
  var(--sigvelo-color-neutral-border-subtle);
@@ -33,7 +32,9 @@
33
32
 
34
33
  /* The bar's one action keeps to the far end, Ploy-style. */
35
34
  .mcp-plugin-catalog__add-custom {
36
- margin-inline-start: auto;
35
+ grid-column: 2;
36
+ grid-row: 1;
37
+ justify-self: end;
37
38
  }
38
39
 
39
40
  .mcp-plugin-catalog__section-heading,
@@ -43,8 +44,9 @@
43
44
  }
44
45
 
45
46
  .mcp-plugin-catalog__search {
46
- flex: 1;
47
- max-inline-size: 24rem;
47
+ grid-column: 1 / -1;
48
+ grid-row: 2;
49
+ inline-size: 100%;
48
50
  }
49
51
 
50
52
  .mcp-plugin-catalog__body {
@@ -121,7 +123,7 @@
121
123
 
122
124
  .mcp-plugin-catalog__card-main {
123
125
  display: grid;
124
- grid-template-columns: var(--sigvelo-spacing-8) var(--sigvelo-layout-track-fill);
126
+ grid-template-columns: var(--sigvelo-spacing-6) var(--sigvelo-layout-track-fill);
125
127
  align-items: center;
126
128
  justify-content: start;
127
129
  gap: var(--sigvelo-spacing-3);
@@ -145,8 +147,9 @@
145
147
 
146
148
  .mcp-plugin-catalog__card-description {
147
149
  color: var(--sigvelo-color-text-muted);
148
- font-size: var(--sigvelo-text-compact);
149
- line-height: var(--sigvelo-text-compact-leading);
150
+ font-size: var(--sigvelo-text-xs);
151
+ font-weight: var(--sigvelo-font-weight-normal);
152
+ line-height: var(--sigvelo-text-sm-leading);
150
153
  }
151
154
 
152
155
  .mcp-plugin-catalog__empty {
@@ -176,28 +179,11 @@
176
179
  min-block-size: 22.75rem;
177
180
  padding-block-start: calc(var(--sigvelo-spacing-12) + var(--sigvelo-spacing-1));
178
181
  overflow: hidden;
179
- background:
180
- radial-gradient(
181
- ellipse 48% 135% at 0% 38%,
182
- var(--sigvelo-color-primary-400) 0%,
183
- transparent 74%
184
- ),
185
- radial-gradient(
186
- ellipse 50% 85% at 48% -8%,
187
- var(--sigvelo-color-primary-300) 0%,
188
- transparent 78%
189
- ),
190
- radial-gradient(
191
- ellipse 68% 78% at 42% 112%,
192
- var(--sigvelo-color-primary-700) 0%,
193
- transparent 72%
194
- ),
195
- linear-gradient(
196
- 108deg,
197
- var(--sigvelo-color-primary-600),
198
- var(--sigvelo-color-primary-400) 70%,
199
- var(--sigvelo-color-primary-500)
200
- );
182
+ background: linear-gradient(
183
+ 135deg,
184
+ var(--sigvelo-color-primary-bg),
185
+ var(--sigvelo-color-primary-bg-strong)
186
+ );
201
187
  color: var(--sigvelo-color-primary-text-on-bg);
202
188
  }
203
189
 
@@ -303,3 +289,12 @@
303
289
  grid-template-columns: repeat(2, var(--sigvelo-layout-track-fill));
304
290
  }
305
291
  }
292
+
293
+ .mcp-plugin-catalog__title {
294
+ margin: 0;
295
+ font-size: var(--sigvelo-density-compact-control-font-size);
296
+ font-weight: var(--sigvelo-font-weight-semibold);
297
+ color: var(--sigvelo-color-primary-text);
298
+ line-height: var(--sigvelo-leading-tight);
299
+ letter-spacing: var(--sigvelo-tracking-tight);
300
+ }
@@ -68,20 +68,28 @@
68
68
  }
69
69
 
70
70
  .mcp-server-picker__copy {
71
- display: flex;
72
- align-items: baseline;
73
- gap: var(--sigvelo-spacing-2);
71
+ display: grid;
72
+ gap: var(--sigvelo-spacing-0-5);
74
73
  min-inline-size: 0;
75
74
  }
76
75
 
77
76
  .mcp-server-picker__name {
78
- flex: 0 0 auto;
77
+ min-inline-size: 0;
78
+ overflow: hidden;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
79
81
  color: var(--sigvelo-color-text);
80
82
  }
81
83
 
82
84
  .mcp-server-picker__description {
83
85
  min-inline-size: 0;
84
- color: var(--sigvelo-color-text);
86
+ color: var(--sigvelo-color-text-muted);
87
+ font-size: var(--sigvelo-text-xs);
88
+ }
89
+
90
+ .mcp-server-picker__row[data-highlighted]
91
+ :is(.mcp-server-picker__name, .mcp-server-picker__description) {
92
+ color: inherit;
85
93
  }
86
94
 
87
95
  .mcp-server-picker__row-state {
@@ -425,18 +425,6 @@
425
425
  border-radius: var(--sigvelo-radius-full);
426
426
  }
427
427
 
428
- .prompt-input__context-trigger {
429
- max-inline-size: 11rem;
430
- }
431
-
432
- .prompt-input__context-category,
433
- .prompt-input__context-chevron {
434
- display: none;
435
- }
436
- }
437
-
438
- /* Local wrap. Not --sigvelo-layout-break-compact. */
439
- @container prompt-input (inline-size <= 22rem) {
440
428
  .prompt-input__context-trigger {
441
429
  inline-size: var(--sigvelo-control-height-xs);
442
430
  padding-inline: 0;
@@ -444,7 +432,9 @@
444
432
  border-radius: var(--sigvelo-radius-full);
445
433
  }
446
434
 
447
- .prompt-input__context-value {
435
+ .prompt-input__context-value,
436
+ .prompt-input__context-category,
437
+ .prompt-input__context-chevron {
448
438
  display: none;
449
439
  }
450
440
  }
@@ -310,6 +310,6 @@
310
310
 
311
311
  .queue__section-trigger:focus-visible {
312
312
  outline: var(--sigvelo-focus-ring-forced);
313
- outline-offset: 2px;
313
+ outline-offset: var(--sigvelo-focus-offset);
314
314
  }
315
315
  }
@@ -54,6 +54,13 @@
54
54
  --sigvelo-recipe-layout-cluster: var(--sigvelo-layout-cluster);
55
55
  }
56
56
 
57
+ /* Controls inside clipped chrome need an inward ring, including footer
58
+ actions at a rounded panel edge. Keep the same visible keyboard indicator. */
59
+ :where(.queue, .responsive-sidebar-shell__sidebar, .app-top-bar, .base-ui-popup) {
60
+ --sigvelo-recipe-focus-shadow: var(--sigvelo-recipe-focus-shadow-inset);
61
+ --sigvelo-focus-offset: -2px;
62
+ }
63
+
57
64
  :where([data-slot="select-trigger"][data-size="sm"], .toggle--sm) {
58
65
  --sigvelo-recipe-control-height: var(--sigvelo-control-height-sm);
59
66
  --sigvelo-recipe-control-padding-inline: var(--sigvelo-control-padding-inline-sm);
@@ -824,7 +831,7 @@
824
831
  [data-slot="toolbar-input"]
825
832
  ):focus-visible {
826
833
  outline: var(--sigvelo-focus-ring-forced);
827
- outline-offset: 2px;
834
+ outline-offset: var(--sigvelo-focus-offset);
828
835
  box-shadow: none;
829
836
  }
830
837
 
@@ -834,7 +841,7 @@
834
841
  [data-slot="sources-trigger"]
835
842
  ):focus-visible {
836
843
  outline: var(--sigvelo-focus-ring-forced);
837
- outline-offset: 2px;
844
+ outline-offset: var(--sigvelo-focus-offset);
838
845
  box-shadow: none;
839
846
  }
840
847
  }
@@ -0,0 +1,67 @@
1
+ import { expect, test } from "vite-plus/test";
2
+ import "./index.css";
3
+
4
+ const frame = () => new Promise<void>((resolve) => requestAnimationFrame(() => resolve()));
5
+
6
+ test("desktop sidebar collapse interpolates the track without squeezing roster content", async () => {
7
+ const shell = document.createElement("div");
8
+ shell.className = "responsive-sidebar-shell";
9
+ shell.dataset.sidebarOpen = "true";
10
+ shell.style.cssText = "width:1280px;height:600px";
11
+ shell.innerHTML = `<div class="responsive-sidebar-shell__frame">
12
+ <div class="responsive-sidebar-shell__sidebar">Workforce</div>
13
+ <div class="responsive-sidebar-shell__main">Conversation</div>
14
+ </div>`;
15
+ document.body.append(shell);
16
+ const layout = shell.firstElementChild as HTMLElement;
17
+ const sidebar = shell.querySelector<HTMLElement>(".responsive-sidebar-shell__sidebar")!;
18
+ const main = shell.querySelector<HTMLElement>(".responsive-sidebar-shell__main")!;
19
+ try {
20
+ await frame();
21
+ const sidebarWidth = sidebar.getBoundingClientRect().width;
22
+ const mainWidth = main.getBoundingClientRect().width;
23
+ shell.dataset.sidebarOpen = "false";
24
+ await frame();
25
+ const transition = layout
26
+ .getAnimations()
27
+ .find(
28
+ (animation) =>
29
+ animation instanceof CSSTransition &&
30
+ animation.transitionProperty === "grid-template-columns",
31
+ );
32
+ expect(transition).toBeDefined();
33
+ for (const animation of [...layout.getAnimations(), ...sidebar.getAnimations()]) {
34
+ animation.pause();
35
+ animation.currentTime = Number(animation.effect!.getTiming().duration) / 2;
36
+ }
37
+ await frame();
38
+ expect(sidebar.getBoundingClientRect().width).toBe(sidebarWidth);
39
+ expect(main.getBoundingClientRect().width).toBeGreaterThan(mainWidth);
40
+ expect(main.getBoundingClientRect().width).toBeLessThan(mainWidth + sidebarWidth);
41
+ for (const animation of [...layout.getAnimations(), ...sidebar.getAnimations()])
42
+ animation.finish();
43
+ await frame();
44
+ expect(main.getBoundingClientRect().width).toBeCloseTo(mainWidth + sidebarWidth, 0);
45
+ expect(getComputedStyle(sidebar).visibility).toBe("hidden");
46
+ shell.dataset.sidebarOpen = "true";
47
+ await frame();
48
+ const reopening = layout
49
+ .getAnimations()
50
+ .find(
51
+ (animation) =>
52
+ animation instanceof CSSTransition &&
53
+ animation.transitionProperty === "grid-template-columns",
54
+ );
55
+ expect(reopening).toBeDefined();
56
+ for (const animation of [...layout.getAnimations(), ...sidebar.getAnimations()]) {
57
+ animation.pause();
58
+ animation.currentTime = Number(animation.effect!.getTiming().duration) / 2;
59
+ }
60
+ await frame();
61
+ expect(sidebar.getBoundingClientRect().width).toBe(sidebarWidth);
62
+ expect(main.getBoundingClientRect().width).toBeGreaterThan(mainWidth);
63
+ expect(main.getBoundingClientRect().width).toBeLessThan(mainWidth + sidebarWidth);
64
+ } finally {
65
+ shell.remove();
66
+ }
67
+ });