@mcp-b/react-components 0.42.0 → 0.44.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 (134) hide show
  1. package/dist/{AgentChat-DVr2giwD.d.ts → AgentChat-Bibfj7u1.d.ts} +1 -1
  2. package/dist/{AgentChatStartScreen-CO49yepa.d.ts → AgentChatStartScreen-Bkv7Avni.d.ts} +6 -0
  3. package/dist/{CodeBlock-BjELA-_s.js → CodeBlock-Dl7a3Wqo.js} +1 -1
  4. package/dist/{FileTree-DMYRdT6R.js → FileTree-Uu3ZnW1u.js} +1 -1
  5. package/dist/McpPluginCatalog-mbGw8FTu.d.ts +92 -0
  6. package/dist/ResponsiveSidebarShell-DOXd5T-d.d.ts +111 -0
  7. package/dist/SetupChecklist-DOp-zqjh.js +77 -0
  8. package/dist/{ThinkChatActivity-CsDql-ER.d.ts → ThinkChatActivity-CgvmTXXB.d.ts} +1 -1
  9. package/dist/Workspace-F3raHdYV.d.ts +140 -0
  10. package/dist/{WorkspaceFileView-DwdXiKku.js → WorkspaceFileView-BublZXky.js} +2 -3
  11. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  12. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  13. package/dist/components/agents-sdk/AgentChat.js +10 -10
  14. package/dist/components/agents-sdk/BrowserLiveScreen.js +4 -1
  15. package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
  16. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  17. package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
  18. package/dist/components/agents-sdk/ManagerOffice.js +4 -4
  19. package/dist/components/agents-sdk/McpConnectionRequest.js +2 -2
  20. package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
  21. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +1 -91
  22. package/dist/components/agents-sdk/McpPluginCatalog.js +3 -3
  23. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  24. package/dist/components/agents-sdk/ModelSelector.js +3 -3
  25. package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
  26. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  27. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  28. package/dist/components/agents-sdk/SubagentRunSelector.js +1 -1
  29. package/dist/components/agents-sdk/ThinkChat.d.ts +2 -2
  30. package/dist/components/agents-sdk/ThinkChat.js +1 -1
  31. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  32. package/dist/components/agents-sdk/ThinkChatActivity.js +3 -3
  33. package/dist/components/agents-sdk/ThinkChatToolPanels.js +2 -2
  34. package/dist/components/agents-sdk/ThinkExecutionDetail.js +3 -3
  35. package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
  36. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +3 -3
  37. package/dist/components/agents-sdk/ThinkFullApp.d.ts +20 -6
  38. package/dist/components/agents-sdk/ThinkFullApp.js +7 -6
  39. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +1 -1
  40. package/dist/components/agents-sdk/ThinkRecoveryNotice.js +3 -2
  41. package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -7
  42. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +2 -2
  43. package/dist/components/agents-sdk/ThinkRoutineDetail.js +1 -1
  44. package/dist/components/agents-sdk/ThinkRoutineForm.d.ts +34 -18
  45. package/dist/components/agents-sdk/ThinkRoutineForm.js +395 -110
  46. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +5 -4
  47. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +19 -33
  48. package/dist/components/agents-sdk/ThinkRoutineRuns.js +1 -1
  49. package/dist/components/agents-sdk/ThinkSidepanel.d.ts +173 -0
  50. package/dist/components/agents-sdk/ThinkSidepanel.js +711 -0
  51. package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +4 -5
  52. package/dist/components/agents-sdk/ThinkThreadPicker.js +9 -9
  53. package/dist/components/agents-sdk/Workspace.d.ts +1 -139
  54. package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
  55. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  56. package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +1 -1
  57. package/dist/components/agents-sdk/WorkspaceExplorer.js +3 -3
  58. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  59. package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
  60. package/dist/components/agents-sdk/WorkspaceMountManager.js +2 -2
  61. package/dist/components/ai-sdk/Activity.js +1 -1
  62. package/dist/components/ai-sdk/AgentChatStartScreen.d.ts +1 -1
  63. package/dist/components/ai-sdk/AgentChatStartScreen.js +6 -3
  64. package/dist/components/ai-sdk/Approval.js +2 -2
  65. package/dist/components/ai-sdk/Artifact.js +1 -1
  66. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  67. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  68. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  69. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  70. package/dist/components/ai-sdk/ConnectedAppCards.d.ts +106 -0
  71. package/dist/components/ai-sdk/ConnectedAppCards.js +416 -0
  72. package/dist/components/ai-sdk/Conversation.js +1 -1
  73. package/dist/components/ai-sdk/Goal.js +1 -1
  74. package/dist/components/ai-sdk/InlineCitation.js +1 -1
  75. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  76. package/dist/components/ai-sdk/Message.js +1 -1
  77. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  78. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  79. package/dist/components/ai-sdk/Plan.js +1 -1
  80. package/dist/components/ai-sdk/PromptInput.js +3 -3
  81. package/dist/components/ai-sdk/Queue.js +2 -2
  82. package/dist/components/ai-sdk/Reasoning.js +2 -2
  83. package/dist/components/ai-sdk/Sources.js +1 -1
  84. package/dist/components/ai-sdk/Task.js +1 -1
  85. package/dist/components/ai-sdk/ToolInvocation.js +1 -1
  86. package/dist/components/extension/ChatGptSignInScreen.d.ts +1 -3
  87. package/dist/components/extension/ChatGptSignInScreen.js +7 -20
  88. package/dist/components/extension/CodexModelSelector.js +2 -2
  89. package/dist/components/extension/ConversationTabPicker.js +2 -2
  90. package/dist/components/foundations/Checkbox.js +1 -1
  91. package/dist/components/foundations/Collapsible.js +1 -1
  92. package/dist/components/foundations/ContextMenu.js +1 -1
  93. package/dist/components/foundations/DescriptionList.d.ts +3 -0
  94. package/dist/components/foundations/DescriptionList.js +2 -1
  95. package/dist/components/foundations/Menubar.js +1 -1
  96. package/dist/components/foundations/SearchField.js +1 -1
  97. package/dist/components/foundations/Select.js +1 -1
  98. package/dist/components/foundations/Stepper.js +1 -1
  99. package/dist/components/foundations/Toast.js +1 -1
  100. package/dist/components/foundations/ToggleGroup.d.ts +1 -1
  101. package/dist/components/foundations/ToggleGroup.js +1 -1
  102. package/dist/components/foundations/icons.d.ts +2 -2
  103. package/dist/components/foundations/icons.js +2 -2
  104. package/dist/components/general-purpose/Commit.js +2 -2
  105. package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
  106. package/dist/components/general-purpose/FileTree.js +1 -1
  107. package/dist/components/general-purpose/PricingBillingToggle.js +1 -1
  108. package/dist/components/general-purpose/PricingPlanCard.js +1 -1
  109. package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
  110. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +1 -104
  111. package/dist/components/general-purpose/ResponsiveSidebarShell.js +3 -3
  112. package/dist/components/general-purpose/SettingsFormDialog.js +2 -2
  113. package/dist/components/general-purpose/SetupChecklist.js +1 -76
  114. package/dist/components/general-purpose/Terminal.js +2 -2
  115. package/dist/components/general-purpose/TestResults.js +1 -1
  116. package/dist/components/general-purpose/ThemeModeControl.js +2 -2
  117. package/dist/components/general-purpose/WebPreview.js +2 -2
  118. package/dist/components/nanites/AgentConnection.js +2 -2
  119. package/dist/components/nanites/AgentToolDetail.js +4 -4
  120. package/dist/{copy-button-lys9N_aI.js → copy-button-DHhf-J1d.js} +1 -1
  121. package/dist/{icons-0corjfxR.d.ts → icons-6ZnyZJiR.d.ts} +6 -1
  122. package/dist/{icons-CVFSeTJn.js → icons-Dw-im7lg.js} +4 -3
  123. package/dist/styles/agent-chat.css +20 -15
  124. package/dist/styles/browser-live-screen.css +3 -0
  125. package/dist/styles/button.css +1 -5
  126. package/dist/styles/chatgpt-sign-in-screen.css +87 -43
  127. package/dist/styles/connected-app-card.css +54 -0
  128. package/dist/styles/description-list.css +25 -0
  129. package/dist/styles/index.css +2 -0
  130. package/dist/styles/responsive-sidebar-shell.css +12 -9
  131. package/dist/styles/think-routine-library.css +28 -0
  132. package/dist/styles/think-sidepanel.css +74 -0
  133. package/package.json +2 -2
  134. package/dist/{ThinkChat-DkA4Wr71.js → ThinkChat-BES_3Mb-.js} +1 -1
@@ -93,6 +93,7 @@
93
93
  );
94
94
 
95
95
  display: grid;
96
+ align-content: start;
96
97
  grid-template-rows: var(--sigvelo-layout-track-fill) auto var(--sigvelo-layout-track-fill);
97
98
  inline-size: min(
98
99
  100%,
@@ -109,6 +110,7 @@
109
110
  .agent-chat-start-screen__primary {
110
111
  grid-row: 2;
111
112
  display: grid;
113
+ align-content: start;
112
114
  gap: var(--sigvelo-spacing-6);
113
115
  min-inline-size: 0;
114
116
  }
@@ -126,6 +128,7 @@
126
128
 
127
129
  .agent-chat-start-screen__composer {
128
130
  display: grid;
131
+ align-content: start;
129
132
  min-inline-size: 0;
130
133
  }
131
134
 
@@ -153,9 +156,15 @@
153
156
  }
154
157
 
155
158
  /* The first-turn utility tray owns its buttons' treatment so every host gets
156
- the same quiet look without per-app classes. Space-between seats one action
157
- per slot — left, middle, right. */
159
+ the same quiet look without per-app classes. Hug the actions — a short
160
+ viewport (Storybook addons, a short side panel) used to stretch this into
161
+ a vacant slab. Space-between only when there are three slots to fill. */
158
162
  .agent-chat-start-screen__composer-tray {
163
+ align-self: start;
164
+ justify-content: start;
165
+ }
166
+
167
+ .agent-chat-start-screen__composer-tray:has(> :nth-child(3):last-child) {
159
168
  justify-content: space-between;
160
169
  }
161
170
 
@@ -194,7 +203,8 @@
194
203
  white-space: nowrap;
195
204
  }
196
205
 
197
- .agent-chat-start-screen__starters {
206
+ .agent-chat-start-screen__starters,
207
+ .agent-chat-start-screen__lead {
198
208
  grid-row: 3;
199
209
  align-self: start;
200
210
  min-inline-size: 0;
@@ -332,7 +342,8 @@
332
342
  * need to.
333
343
  */
334
344
  .agent-chat-start-screen__heading,
335
- .agent-chat-start-screen__starters {
345
+ .agent-chat-start-screen__starters,
346
+ .agent-chat-start-screen__lead {
336
347
  transition:
337
348
  opacity var(--sigvelo-motion-duration-disclosure) var(--sigvelo-ease-snappy),
338
349
  translate var(--sigvelo-motion-duration-disclosure) var(--sigvelo-ease-snappy),
@@ -348,7 +359,9 @@
348
359
  /* Starters are buttons, so fading them is not enough — invisible controls that
349
360
  still take a click or a Tab stop are worse than visible ones. */
350
361
  .agent-chat-start-screen__content:has(textarea:not(:placeholder-shown))
351
- .agent-chat-start-screen__starters {
362
+ .agent-chat-start-screen__starters,
363
+ .agent-chat-start-screen__content:has(textarea:not(:placeholder-shown))
364
+ .agent-chat-start-screen__lead {
352
365
  visibility: hidden;
353
366
  opacity: 0;
354
367
  }
@@ -594,15 +607,6 @@
594
607
  }
595
608
  }
596
609
 
597
- /* Side-panel widths: tray labels yield to the icons; each action keeps its
598
- accessible name. */
599
- /* Local wrap. Not --sigvelo-layout-break-compact. */
600
- @container agent-chat (inline-size <= 30rem) {
601
- .agent-chat-start-screen__composer-tray > .button > span:not(.app-icon-stack) {
602
- display: none;
603
- }
604
- }
605
-
606
610
  @media (max-height: 40rem) {
607
611
  .agent-chat-start-screen__content {
608
612
  --agent-chat-start-screen-padding-block: var(--sigvelo-spacing-5);
@@ -614,7 +618,8 @@
614
618
  grid-row: 1;
615
619
  }
616
620
 
617
- .agent-chat-start-screen__starters {
621
+ .agent-chat-start-screen__starters,
622
+ .agent-chat-start-screen__lead {
618
623
  grid-row: 2;
619
624
  }
620
625
  }
@@ -18,6 +18,9 @@
18
18
 
19
19
  .browser-live-screen__input:focus-visible {
20
20
  outline: none;
21
+ }
22
+
23
+ .browser-live-screen__input:focus-visible:not([data-pointer-focus]) {
21
24
  box-shadow: var(--sigvelo-recipe-focus-shadow-inset);
22
25
  }
23
26
 
@@ -3,7 +3,7 @@
3
3
  --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-3);
4
4
  --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-md);
5
5
  --sigvelo-recipe-button-icon-size: var(--sigvelo-control-icon-size-md);
6
- --sigvelo-recipe-button-radius: var(--sigvelo-radius-md);
6
+ --sigvelo-recipe-button-radius: var(--sigvelo-recipe-control-radius);
7
7
 
8
8
  display: inline-flex;
9
9
  align-items: center;
@@ -55,8 +55,6 @@
55
55
  /* Normal appearance */
56
56
 
57
57
  .button--normal.button--primary {
58
- --sigvelo-recipe-button-radius: var(--sigvelo-radius-full);
59
-
60
58
  background-color: var(--sigvelo-color-primary-bg);
61
59
  color: var(--sigvelo-color-primary-text-on-bg);
62
60
  }
@@ -169,7 +167,6 @@
169
167
  --sigvelo-recipe-button-padding-inline: var(--sigvelo-control-padding-inline-xs);
170
168
  --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-xs);
171
169
  --sigvelo-recipe-button-icon-size: var(--sigvelo-control-icon-size-xs);
172
- --sigvelo-recipe-button-radius: var(--sigvelo-radius-sm);
173
170
  }
174
171
 
175
172
  .button--sm {
@@ -177,7 +174,6 @@
177
174
  --sigvelo-recipe-button-padding-inline: var(--sigvelo-control-padding-inline-sm);
178
175
  --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-sm);
179
176
  --sigvelo-recipe-button-icon-size: var(--sigvelo-control-icon-size-sm);
180
- --sigvelo-recipe-button-radius: var(--sigvelo-radius-sm);
181
177
  }
182
178
 
183
179
  .button--md {
@@ -1,4 +1,14 @@
1
1
  .chatgpt-sign-in {
2
+ --chatgpt-sign-in-brand-bg: light-dark(#006d9f, #63c7e8);
3
+ --chatgpt-sign-in-brand-text: light-dark(#fff, #061118);
4
+ --chatgpt-sign-in-brand-text-muted: light-dark(#e5f6fc, #163440);
5
+ --sigvelo-color-text: var(--chatgpt-sign-in-brand-text);
6
+ --sigvelo-color-text-muted: var(--chatgpt-sign-in-brand-text-muted);
7
+ --sigvelo-color-neutral-text-on-subtle: var(--chatgpt-sign-in-brand-text-muted);
8
+ --sigvelo-color-primary-bg: var(--chatgpt-sign-in-brand-text);
9
+ --sigvelo-color-primary-bg-muted: var(--chatgpt-sign-in-brand-text-muted);
10
+ --sigvelo-color-primary-text-on-bg: var(--chatgpt-sign-in-brand-bg);
11
+
2
12
  position: relative;
3
13
  isolation: isolate;
4
14
  overflow-x: hidden;
@@ -6,51 +16,57 @@
6
16
  block-size: 100%;
7
17
  min-inline-size: 17.5rem;
8
18
  display: grid;
9
- grid-template-rows: minmax(min-content, 1fr) auto;
19
+ grid-template-rows: none;
20
+ grid-auto-rows: auto;
10
21
  place-items: center;
22
+ align-content: center;
23
+ row-gap: var(--sigvelo-spacing-2);
11
24
  padding: clamp(var(--sigvelo-spacing-5), 5vw, var(--sigvelo-spacing-12));
12
- background-color: var(--sigvelo-color-canvas);
13
- background-image:
14
- linear-gradient(
15
- color-mix(in oklab, var(--sigvelo-color-neutral-border-subtle), transparent 42%) 1px,
16
- transparent 1px
17
- ),
18
- linear-gradient(
19
- 90deg,
20
- color-mix(in oklab, var(--sigvelo-color-neutral-border-subtle), transparent 42%) 1px,
21
- transparent 1px
22
- );
23
- background-size: 2rem 2rem;
24
- color: var(--sigvelo-color-text);
25
+ background: var(--chatgpt-sign-in-brand-bg);
26
+ color: var(--chatgpt-sign-in-brand-text);
25
27
  font-family: inherit;
26
28
  }
27
29
 
28
30
  .chatgpt-sign-in::before {
29
31
  content: "";
32
+ display: block;
30
33
  position: absolute;
31
34
  z-index: 0;
32
35
  inset: 0;
33
- /* The pointer position arrives as an inline style from the component's own
34
- mousemove handler; the fallbacks are only the resting spot before the
35
- first move. */
36
36
  background:
37
- radial-gradient(
38
- circle at var(--chatgpt-sign-in-pointer-x, 50%) var(--chatgpt-sign-in-pointer-y, 58%),
39
- color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 72%),
40
- transparent 12rem
37
+ linear-gradient(
38
+ 90deg,
39
+ rgb(23 38 184 / 0.2),
40
+ color-mix(in srgb, var(--chatgpt-sign-in-brand-bg) 42%, white 58%) 48%,
41
+ rgb(255 255 255 / 0.2)
41
42
  ),
42
43
  radial-gradient(
43
- circle at var(--chatgpt-sign-in-pointer-x, 50%) var(--chatgpt-sign-in-pointer-y, 58%),
44
- color-mix(in oklab, var(--sigvelo-color-primary-bg-muted), transparent 86%),
45
- transparent 18rem
44
+ circle at 26% 76%,
45
+ color-mix(in srgb, var(--chatgpt-sign-in-brand-bg) 76%, black 24%),
46
+ transparent 48%
46
47
  );
47
- opacity: 0;
48
+ mix-blend-mode: multiply;
49
+ opacity: 1;
48
50
  pointer-events: none;
49
- transition: opacity var(--sigvelo-duration-medium) var(--sigvelo-ease-standard);
51
+ transition: none;
50
52
  }
51
53
 
52
- .chatgpt-sign-in[data-pointer-active="true"]::before {
53
- opacity: 1;
54
+ .chatgpt-sign-in::after {
55
+ content: "";
56
+ position: absolute;
57
+ z-index: 0;
58
+ inset: 0;
59
+ background: radial-gradient(circle, rgb(255 255 255 / 0.34) 0 1px, transparent 1.25px);
60
+ background-size: 6px 6px;
61
+ mask-image: radial-gradient(
62
+ circle at center,
63
+ transparent 0 8rem,
64
+ rgb(0 0 0 / 0.42) 16rem,
65
+ black 28rem
66
+ );
67
+ mix-blend-mode: screen;
68
+ opacity: 0.82;
69
+ pointer-events: none;
54
70
  }
55
71
 
56
72
  .chatgpt-sign-in__panel {
@@ -65,9 +81,36 @@
65
81
 
66
82
  .chatgpt-sign-in__secondary-action {
67
83
  z-index: 1;
68
- display: flex;
69
- justify-content: center;
70
- margin-block-start: var(--sigvelo-layout-stack);
84
+ display: grid;
85
+ gap: var(--sigvelo-spacing-1);
86
+ justify-items: center;
87
+ margin-block-start: 0;
88
+ }
89
+
90
+ .chatgpt-sign-in__secondary-action::before {
91
+ content: "or";
92
+ color: var(--sigvelo-color-text-muted);
93
+ font-size: var(--sigvelo-text-base);
94
+ line-height: var(--sigvelo-leading-compact);
95
+ }
96
+
97
+ .chatgpt-sign-in__secondary-action :where(button) {
98
+ min-block-size: 2.75rem;
99
+ padding-inline: var(--sigvelo-spacing-3);
100
+ border: 0;
101
+ background: transparent;
102
+ color: var(--sigvelo-color-text);
103
+ font-size: var(--sigvelo-text-base);
104
+ font-weight: var(--sigvelo-font-weight-semibold);
105
+ line-height: var(--sigvelo-leading-compact);
106
+ box-shadow: none;
107
+ text-decoration: underline;
108
+ text-decoration-thickness: var(--sigvelo-border-width);
109
+ text-underline-offset: 0.25rem;
110
+ }
111
+
112
+ .chatgpt-sign-in__secondary-action :where(button):hover:not([data-disabled]) {
113
+ background: color-mix(in srgb, var(--chatgpt-sign-in-brand-text) 10%, transparent);
71
114
  }
72
115
 
73
116
  .chatgpt-sign-in__error {
@@ -85,7 +128,7 @@
85
128
  .chatgpt-sign-in__brand h1 {
86
129
  margin: 0;
87
130
  color: var(--sigvelo-color-text);
88
- font-size: var(--sigvelo-text-2xl);
131
+ font-size: calc(var(--sigvelo-text-2xl) + 0.125rem);
89
132
  font-weight: var(--sigvelo-font-weight-bold);
90
133
  letter-spacing: 0;
91
134
  line-height: var(--sigvelo-leading-tight);
@@ -97,7 +140,7 @@
97
140
  gap: var(--sigvelo-spacing-1-5);
98
141
  margin: 0;
99
142
  color: var(--sigvelo-color-text-muted);
100
- font-size: var(--sigvelo-text-sm);
143
+ font-size: var(--sigvelo-text-base);
101
144
  font-weight: var(--sigvelo-font-weight-semibold);
102
145
  line-height: var(--sigvelo-leading-compact);
103
146
  }
@@ -122,10 +165,11 @@
122
165
  isolation: isolate;
123
166
  overflow: hidden;
124
167
  min-inline-size: min(100%, 16.75rem);
125
- box-shadow:
126
- inset 0 0 0 var(--sigvelo-border-width)
127
- color-mix(in oklab, var(--sigvelo-color-primary-text-on-bg), transparent 84%),
128
- 0 0.75rem 1.5rem color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 78%);
168
+ min-block-size: 3rem;
169
+ padding-inline: var(--sigvelo-spacing-4);
170
+ font-size: var(--sigvelo-text-base);
171
+ box-shadow: inset 0 0 0 var(--sigvelo-border-width)
172
+ color-mix(in srgb, var(--chatgpt-sign-in-brand-bg) 16%, transparent);
129
173
  translate: 0;
130
174
  scale: 1;
131
175
  transition:
@@ -169,8 +213,8 @@
169
213
  .chatgpt-sign-in__button:hover:not([data-disabled]) {
170
214
  box-shadow:
171
215
  inset 0 0 0 var(--sigvelo-border-width)
172
- color-mix(in oklab, var(--sigvelo-color-primary-text-on-bg), transparent 76%),
173
- 0 0.9rem 1.9rem color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 72%);
216
+ color-mix(in srgb, var(--chatgpt-sign-in-brand-bg) 24%, transparent),
217
+ 0 0 1rem rgb(255 255 255 / 0.34);
174
218
  translate: 0 -0.0625rem;
175
219
  }
176
220
 
@@ -203,15 +247,15 @@
203
247
  scale: 1.06;
204
248
  }
205
249
 
250
+ .chatgpt-sign-in__button svg,
206
251
  .chatgpt-sign-in__button .chatgpt-sign-in__logo {
207
252
  display: block;
208
- inline-size: var(--sigvelo-control-icon-size-sm);
209
- block-size: var(--sigvelo-control-icon-size-sm);
253
+ inline-size: var(--sigvelo-text-lg);
254
+ block-size: var(--sigvelo-text-lg);
210
255
  color: inherit;
211
256
  }
212
257
 
213
258
  @media (prefers-reduced-motion: reduce) {
214
- .chatgpt-sign-in::before,
215
259
  .chatgpt-sign-in__button,
216
260
  .chatgpt-sign-in__button::before,
217
261
  .chatgpt-sign-in__button-icon {
@@ -220,7 +264,6 @@
220
264
  }
221
265
 
222
266
  @media (hover: none), (pointer: coarse) {
223
- .chatgpt-sign-in::before,
224
267
  .chatgpt-sign-in__button::before,
225
268
  .chatgpt-sign-in__button::after {
226
269
  display: none;
@@ -229,6 +272,7 @@
229
272
 
230
273
  @media (forced-colors: active) {
231
274
  .chatgpt-sign-in::before,
275
+ .chatgpt-sign-in::after,
232
276
  .chatgpt-sign-in__button::before,
233
277
  .chatgpt-sign-in__button::after {
234
278
  display: none;
@@ -0,0 +1,54 @@
1
+ .connected-app-card {
2
+ inline-size: 100%;
3
+ min-inline-size: 0;
4
+ }
5
+
6
+ .connected-app-card__title {
7
+ display: flex;
8
+ align-items: center;
9
+ gap: var(--sigvelo-spacing-2);
10
+ }
11
+
12
+ .connected-app-card__icon {
13
+ display: inline-flex;
14
+ flex: none;
15
+ align-items: center;
16
+ }
17
+
18
+ .connected-app-card__status {
19
+ display: inline-flex;
20
+ align-items: center;
21
+ align-self: center;
22
+ gap: var(--sigvelo-spacing-1);
23
+ font-size: var(--sigvelo-text-xs);
24
+ line-height: var(--sigvelo-text-xs-leading);
25
+ white-space: nowrap;
26
+ }
27
+
28
+ .connected-app-card__status[data-state="pending"] {
29
+ color: var(--sigvelo-color-warning-text);
30
+ }
31
+
32
+ .connected-app-card__status[data-state="sent"] {
33
+ color: var(--sigvelo-color-success-text);
34
+ }
35
+
36
+ .connected-app-card__status[data-state="denied"] {
37
+ color: var(--sigvelo-color-danger-text);
38
+ }
39
+
40
+ .connected-app-card__body {
41
+ margin: 0;
42
+ overflow-wrap: anywhere;
43
+ white-space: pre-wrap;
44
+ }
45
+
46
+ .connected-app-card__footer {
47
+ flex-wrap: wrap;
48
+ }
49
+
50
+ @media (forced-colors: active) {
51
+ .connected-app-card__status {
52
+ color: CanvasText;
53
+ }
54
+ }
@@ -22,6 +22,31 @@
22
22
  text-align: end;
23
23
  }
24
24
 
25
+ .description-list[data-align="start"] .description-list__item {
26
+ justify-content: start;
27
+ align-items: first baseline;
28
+ }
29
+
30
+ .description-list[data-align="start"] .description-list__item:has(:is(input, textarea)) {
31
+ align-items: center;
32
+ }
33
+
34
+ .description-list[data-align="start"] .description-list__term {
35
+ flex: none;
36
+ min-inline-size: 9ch;
37
+ }
38
+
39
+ .description-list[data-align="start"] .description-list__term :is(label, .field__label) {
40
+ font: inherit;
41
+ color: inherit;
42
+ }
43
+
44
+ .description-list[data-align="start"] .description-list__details {
45
+ flex: 1;
46
+ min-inline-size: 0;
47
+ text-align: start;
48
+ }
49
+
25
50
  .description-list[data-variant="divided"] {
26
51
  gap: 0;
27
52
  border-block: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -90,6 +90,7 @@
90
90
  @import "./checkpoint.css" layer(components);
91
91
  @import "./code-block.css" layer(components);
92
92
  @import "./commit.css" layer(components);
93
+ @import "./connected-app-card.css" layer(components);
93
94
  @import "./context.css" layer(components);
94
95
  @import "./conversation.css" layer(components);
95
96
  @import "./conversation-tab-picker.css" layer(components);
@@ -122,6 +123,7 @@
122
123
  @import "./think-execution-workbench.css" layer(components);
123
124
  @import "./think-full-app.css" layer(components);
124
125
  @import "./think-routine-library.css" layer(components);
126
+ @import "./think-sidepanel.css" layer(components);
125
127
  @import "./think-thread-picker.css" layer(components);
126
128
  @import "./web-preview.css" layer(components);
127
129
  @import "./workspace-explorer.css" layer(components);
@@ -137,6 +137,10 @@
137
137
  /* 56rem matches --sigvelo-layout-break-compact. Container queries cannot read var(). */
138
138
  @container responsive-sidebar-shell (inline-size <= 56rem) {
139
139
  .responsive-sidebar-shell__frame {
140
+ --responsive-sidebar-compact-bar-size: calc(
141
+ var(--app-top-bar-block-size, var(--sigvelo-layout-chrome)) + env(safe-area-inset-top, 0px)
142
+ );
143
+
140
144
  grid-template-columns: var(--sigvelo-layout-track-fill);
141
145
  }
142
146
 
@@ -153,9 +157,13 @@
153
157
  inline-size: min(calc(100cqi - var(--sigvelo-layout-gutter)), 34rem);
154
158
  max-inline-size: none;
155
159
  block-size: auto;
156
- max-block-size: min(32rem, calc(100% - var(--sigvelo-layout-gutter)));
160
+ max-block-size: min(
161
+ 32rem,
162
+ calc(100% - var(--responsive-sidebar-compact-bar-size) - var(--sigvelo-layout-gutter))
163
+ );
157
164
  align-self: start;
158
- margin-block-start: var(--sigvelo-spacing-1);
165
+ /* Sit under the title trigger. Covering it ate the click that closes it. */
166
+ margin-block-start: calc(var(--responsive-sidebar-compact-bar-size) + var(--sigvelo-spacing-1));
159
167
  overflow: hidden;
160
168
  border-radius: var(--sigvelo-radius-lg);
161
169
  background-color: var(--sigvelo-color-surface-raised);
@@ -232,17 +240,12 @@
232
240
  transition-timing-function: var(--sigvelo-motion-ease-exit);
233
241
  }
234
242
 
235
- .responsive-sidebar-shell[data-sidebar-open="true"]
236
- > .responsive-sidebar-shell__frame
237
- > .responsive-sidebar-shell__main {
238
- pointer-events: none;
239
- }
240
-
241
243
  .responsive-sidebar-shell[data-sidebar-open="true"]
242
244
  > .responsive-sidebar-shell__frame
243
245
  > .responsive-sidebar-shell__peek {
244
246
  position: absolute;
245
- inset-block: 0;
247
+ inset-block-start: var(--responsive-sidebar-compact-bar-size);
248
+ inset-block-end: 0;
246
249
  inset-inline: 0;
247
250
  z-index: calc(var(--sigvelo-z-chrome) + 2);
248
251
  display: block;
@@ -4,6 +4,34 @@
4
4
  background: var(--sigvelo-color-canvas);
5
5
  }
6
6
 
7
+ .think-routine-library__editor {
8
+ position: relative;
9
+ block-size: 100%;
10
+ min-block-size: 0;
11
+ display: grid;
12
+ grid-template-rows: auto var(--sigvelo-layout-track-fill);
13
+ background: var(--sigvelo-color-canvas);
14
+ }
15
+
16
+ .think-routine-library__editor-error {
17
+ position: absolute;
18
+ z-index: 2;
19
+ inset-block-start: calc(var(--sigvelo-layout-chrome) + var(--sigvelo-layout-gutter));
20
+ inset-inline: 50% auto;
21
+ max-inline-size: min(32rem, calc(100% - var(--sigvelo-layout-gutter) * 2));
22
+ padding: var(--sigvelo-layout-cluster) var(--sigvelo-layout-gutter);
23
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width)
24
+ var(--sigvelo-color-danger-border-subtle);
25
+ border-radius: var(--sigvelo-radius-sm);
26
+ translate: -50% 0;
27
+ display: flex;
28
+ align-items: center;
29
+ gap: var(--sigvelo-spacing-2);
30
+ color: var(--sigvelo-color-danger-text);
31
+ background: var(--sigvelo-color-danger-bg-subtle);
32
+ font-size: var(--sigvelo-text-compact);
33
+ }
34
+
7
35
  .think-routine-detail,
8
36
  .think-routine-form {
9
37
  container-type: inline-size;
@@ -0,0 +1,74 @@
1
+ .think-sidepanel {
2
+ block-size: 100%;
3
+ min-block-size: 0;
4
+ min-inline-size: 0;
5
+ display: grid;
6
+ grid-template-rows: var(--sigvelo-layout-track-fill);
7
+ }
8
+
9
+ .think-sidepanel > .think-full-app-shell,
10
+ .think-sidepanel > .think-routine-library {
11
+ min-block-size: 0;
12
+ }
13
+
14
+ .think-sidepanel__gate {
15
+ box-sizing: border-box;
16
+ block-size: 100%;
17
+ display: grid;
18
+ align-content: center;
19
+ justify-items: center;
20
+ gap: var(--sigvelo-spacing-3);
21
+ padding: var(--sigvelo-layout-gutter);
22
+ }
23
+
24
+ .think-sidepanel__live {
25
+ block-size: 100%;
26
+ min-block-size: 0;
27
+ display: grid;
28
+ grid-template-rows: auto var(--sigvelo-layout-track-fill);
29
+ }
30
+
31
+ .think-sidepanel__editor {
32
+ block-size: 100%;
33
+ min-block-size: 0;
34
+ min-inline-size: 0;
35
+ }
36
+
37
+ .think-sidepanel__run-title {
38
+ display: inline-flex;
39
+ align-items: center;
40
+ gap: var(--sigvelo-spacing-2);
41
+ min-inline-size: 0;
42
+ max-inline-size: 100%;
43
+ margin: 0;
44
+ font: inherit;
45
+ }
46
+
47
+ .think-sidepanel__run-title > svg,
48
+ .think-sidepanel__run-title > .nanite-mark {
49
+ flex: none;
50
+ }
51
+
52
+ .think-sidepanel__menu-switch-item {
53
+ justify-content: space-between;
54
+ gap: var(--sigvelo-spacing-3);
55
+ }
56
+
57
+ .think-sidepanel__menu-group-label {
58
+ display: flex;
59
+ align-items: center;
60
+ gap: var(--sigvelo-spacing-1-5);
61
+ }
62
+
63
+ .think-sidepanel__menu-hint {
64
+ display: inline-flex;
65
+ color: var(--sigvelo-color-text-muted);
66
+ }
67
+
68
+ @media (forced-colors: active) {
69
+ .think-sidepanel,
70
+ .think-sidepanel__gate {
71
+ background: canvas;
72
+ color: canvastext;
73
+ }
74
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-b/react-components",
3
- "version": "0.42.0",
3
+ "version": "0.44.0",
4
4
  "description": "MCP-B React components built on Base UI and shared design tokens, including Cloudflare Think chat primitives.",
5
5
  "homepage": "https://design-system.sigvelo.com",
6
6
  "bugs": {
@@ -53,7 +53,7 @@
53
53
  "streamdown": "^2.5.0",
54
54
  "unist-util-visit": "^5.1.0",
55
55
  "yet-another-react-lightbox": "^3.32.2",
56
- "@mcp-b/design-tokens": "0.42.0"
56
+ "@mcp-b/design-tokens": "0.44.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@ai-sdk/react": "^3.0.249",
@@ -1,6 +1,6 @@
1
1
  import { TransitionSurface } from "./components/foundations/TransitionSurface.js";
2
- import { AgentToolRunsProvider, useOptionalAgentToolRuns, useSourceScopedAgentToolEvents } from "./components/agents-sdk/AgentToolRunsContext.js";
3
2
  import { AgentChat, compactingNotice } from "./components/agents-sdk/AgentChat.js";
3
+ import { AgentToolRunsProvider, useOptionalAgentToolRuns, useSourceScopedAgentToolEvents } from "./components/agents-sdk/AgentToolRunsContext.js";
4
4
  import { SubagentRunList } from "./components/agents-sdk/SubagentRunList.js";
5
5
  import { ThinkChatContext, ThinkChatLiveContext, useOptionalThinkChatContext, useThinkChatContext } from "./components/agents-sdk/ThinkChatContext.js";
6
6
  import { ThinkChatActivity, createThinkChatActivityRenderer, renderThinkChatActivityPart } from "./components/agents-sdk/ThinkChatActivity.js";