@mcp-b/react-components 0.16.1 → 0.17.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 (284) hide show
  1. package/dist/{AgentChat-CrlpbvQJ.d.ts → AgentChat-CRuMi1Pb.d.ts} +4 -10
  2. package/dist/AgentMessageParts-CyD2UB3V.d.ts +46 -0
  3. package/dist/AgentToolRunsContext-BVe4stgw.d.ts +21 -0
  4. package/dist/{CodeBlock-BmB4Xaqq.js → CodeBlock-Co1noLbC.js} +2 -2
  5. package/dist/{CodeBlock-BRajW4QU.d.ts → CodeBlock-Dnpr88ZQ.d.ts} +2 -2
  6. package/dist/Collapsible-N64ASIQr.d.ts +119 -0
  7. package/dist/{Combobox-B9Fcd6q-.d.ts → Combobox-CYc37s5l.d.ts} +11 -33
  8. package/dist/{FileTree-CkVbIMWV.js → FileTree-B7bBsUyU.js} +7 -7
  9. package/dist/{Menu-Bgu-ufb5.d.ts → Menu-L6MZm-7N.d.ts} +15 -56
  10. package/dist/{Message-BkMdE3bS.js → Message-C4eYRogZ.js} +3 -3
  11. package/dist/{ModelSelector-SlJNgwKY.js → ModelSelector-BNrZlY_Y.js} +5 -5
  12. package/dist/{PromptInput-BWTuXMOD.d.ts → PromptInput-OLfXPuHM.d.ts} +39 -67
  13. package/dist/{ResponsiveSidebarShell-Dd9DCcBT.d.ts → ResponsiveSidebarShell-CsAh4NyL.d.ts} +1 -0
  14. package/dist/{Select-BeEsefzh.d.ts → Select-CwSqP07Y.d.ts} +14 -42
  15. package/dist/{Tabs-3Zc4tb9D.d.ts → Tabs-9zddXDQo.d.ts} +5 -19
  16. package/dist/{ThinkChat-CzC-zNGA.js → ThinkChat-DInElus-.js} +53 -26
  17. package/dist/{ThinkChatActivity-BFQnb2ct.d.ts → ThinkChatActivity-BgesTfZ4.d.ts} +12 -4
  18. package/dist/{ThinkChatContext-C3Eb1Xpi.d.ts → ThinkChatContext-DrsZqdaO.d.ts} +1 -1
  19. package/dist/ThinkRecoveryNotice-DFIcG9UX.d.ts +19 -0
  20. package/dist/{Toggle-CAAlNl-M.d.ts → Toggle-DaXpe1Lc.d.ts} +1 -1
  21. package/dist/{ToggleGroup-8hPv-b69.d.ts → ToggleGroup-yseEWkOC.d.ts} +3 -4
  22. package/dist/{Workspace-D39LxGvP.d.ts → Workspace-C9RFoxcu.d.ts} +1 -1
  23. package/dist/WorkspaceExplorer-sZewzT2O.d.ts +32 -0
  24. package/dist/{WorkspaceFile-DOZkPwzu.d.ts → WorkspaceFile-C8UzuSH4.d.ts} +1 -1
  25. package/dist/{WorkspaceFileView-rSN_yT0L.js → WorkspaceFileView-DNdGAEiX.js} +5 -5
  26. package/dist/{WorkspaceLink-DIPbXrUM.js → WorkspaceLink-B1ykV1dS.js} +15 -29
  27. package/dist/class-names-Bk-QLWWI.js +11 -0
  28. package/dist/components/Accordion.d.ts +5 -15
  29. package/dist/components/Accordion.js +11 -10
  30. package/dist/components/Activity.d.ts +5 -10
  31. package/dist/components/Activity.js +2 -2
  32. package/dist/components/AgentActivity.js +1 -1
  33. package/dist/components/AgentActivityPreview.js +2 -2
  34. package/dist/components/AgentAttention.d.ts +1 -1
  35. package/dist/components/AgentAttention.js +1 -1
  36. package/dist/components/AgentChat.d.ts +2 -2
  37. package/dist/components/AgentChat.js +27 -164
  38. package/dist/components/AgentChatMessageEditor.js +1 -1
  39. package/dist/components/AgentConnection.js +4 -4
  40. package/dist/components/AgentMessageParts.d.ts +2 -0
  41. package/dist/components/AgentMessageParts.js +119 -0
  42. package/dist/components/AgentToolDetail.d.ts +55 -0
  43. package/dist/components/AgentToolDetail.js +98 -0
  44. package/dist/components/AgentToolRunsContext.d.ts +2 -0
  45. package/dist/components/AgentToolRunsContext.js +16 -0
  46. package/dist/components/AlertDialog.d.ts +7 -19
  47. package/dist/components/AlertDialog.js +21 -32
  48. package/dist/components/AppTopBar.d.ts +4 -1
  49. package/dist/components/AppTopBar.js +5 -5
  50. package/dist/components/Approval.d.ts +102 -0
  51. package/dist/components/Approval.js +227 -0
  52. package/dist/components/Artifact.d.ts +2 -4
  53. package/dist/components/Artifact.js +3 -3
  54. package/dist/components/Autocomplete.d.ts +11 -33
  55. package/dist/components/Autocomplete.js +23 -30
  56. package/dist/components/Avatar.d.ts +3 -11
  57. package/dist/components/Avatar.js +13 -12
  58. package/dist/components/BrowserLiveView.js +2 -2
  59. package/dist/components/BrowserReplay.js +2 -2
  60. package/dist/components/BrowserRunPanel.js +58 -78
  61. package/dist/components/Button.js +4 -9
  62. package/dist/components/ChainOfThought.d.ts +5 -11
  63. package/dist/components/ChainOfThought.js +3 -2
  64. package/dist/components/ChatGptSignInScreen.js +3 -3
  65. package/dist/components/Checkbox.d.ts +2 -4
  66. package/dist/components/Checkbox.js +6 -5
  67. package/dist/components/CheckboxGroup.d.ts +1 -3
  68. package/dist/components/CheckboxGroup.js +15 -14
  69. package/dist/components/Checkpoint.d.ts +64 -0
  70. package/dist/components/Checkpoint.js +63 -0
  71. package/dist/components/CodeBlock.d.ts +1 -1
  72. package/dist/components/CodeBlock.js +1 -1
  73. package/dist/components/CodexModelSelector.d.ts +1 -1
  74. package/dist/components/CodexModelSelector.js +2 -2
  75. package/dist/components/Collapsible.d.ts +1 -124
  76. package/dist/components/Collapsible.js +7 -10
  77. package/dist/components/Combobox.d.ts +1 -1
  78. package/dist/components/Combobox.js +23 -30
  79. package/dist/components/Commit.d.ts +5 -11
  80. package/dist/components/Commit.js +6 -5
  81. package/dist/components/Context.js +1 -1
  82. package/dist/components/ContextMenu.d.ts +21 -37
  83. package/dist/components/ContextMenu.js +34 -51
  84. package/dist/components/Conversation.d.ts +2 -4
  85. package/dist/components/Conversation.js +2 -2
  86. package/dist/components/DescriptionListParts.js +1 -1
  87. package/dist/components/Dialog.d.ts +6 -17
  88. package/dist/components/Dialog.js +17 -24
  89. package/dist/components/EnvironmentVariables.d.ts +1 -1
  90. package/dist/components/EnvironmentVariables.js +4 -3
  91. package/dist/components/Field.d.ts +17 -20
  92. package/dist/components/Field.js +16 -16
  93. package/dist/components/Fieldset.d.ts +2 -7
  94. package/dist/components/Fieldset.js +7 -6
  95. package/dist/components/FileTree.js +1 -1
  96. package/dist/components/Form.d.ts +1 -4
  97. package/dist/components/Form.js +3 -2
  98. package/dist/components/GithubMotionMark.js +1 -1
  99. package/dist/components/InlineCitation.d.ts +66 -0
  100. package/dist/components/InlineCitation.js +142 -0
  101. package/dist/components/Input.d.ts +1 -4
  102. package/dist/components/Input.js +3 -2
  103. package/dist/components/Marker.js +1 -1
  104. package/dist/components/McpConnectionRequest.js +2 -2
  105. package/dist/components/McpServerPicker.d.ts +1 -1
  106. package/dist/components/McpServerPicker.js +6 -5
  107. package/dist/components/Menu.d.ts +1 -1
  108. package/dist/components/Menu.js +33 -52
  109. package/dist/components/Menubar.d.ts +22 -43
  110. package/dist/components/Menubar.js +36 -53
  111. package/dist/components/Message.d.ts +3 -6
  112. package/dist/components/Message.js +1 -1
  113. package/dist/components/MessageScroller.d.ts +1 -1
  114. package/dist/components/MessageScroller.js +3 -3
  115. package/dist/components/Meter.d.ts +5 -20
  116. package/dist/components/Meter.js +11 -10
  117. package/dist/components/ModelSelector.d.ts +2 -6
  118. package/dist/components/ModelSelector.js +1 -1
  119. package/dist/components/NavigationMenu.d.ts +11 -33
  120. package/dist/components/NavigationMenu.js +23 -30
  121. package/dist/components/NumberField.d.ts +6 -24
  122. package/dist/components/NumberField.js +13 -12
  123. package/dist/components/Plan.d.ts +103 -0
  124. package/dist/components/Plan.js +113 -0
  125. package/dist/components/Popover.d.ts +9 -36
  126. package/dist/components/Popover.js +23 -34
  127. package/dist/components/PreviewCard.d.ts +6 -24
  128. package/dist/components/PreviewCard.js +13 -24
  129. package/dist/components/PricingBillingToggle.js +1 -1
  130. package/dist/components/PricingFAQ.js +1 -1
  131. package/dist/components/PricingPlanCard.js +3 -3
  132. package/dist/components/PricingUsageCalculator.js +2 -2
  133. package/dist/components/Progress.d.ts +3 -8
  134. package/dist/components/Progress.js +7 -10
  135. package/dist/components/PromptInput.d.ts +2 -2
  136. package/dist/components/PromptInput.js +52 -200
  137. package/dist/components/Queue.d.ts +6 -16
  138. package/dist/components/Queue.js +2 -2
  139. package/dist/components/RadioGroup.d.ts +3 -8
  140. package/dist/components/RadioGroup.js +7 -10
  141. package/dist/components/Reasoning.d.ts +4 -8
  142. package/dist/components/Reasoning.js +3 -3
  143. package/dist/components/ResizableSidePanel.js +2 -2
  144. package/dist/components/ResponsiveSidebarShell.d.ts +1 -1
  145. package/dist/components/ResponsiveSidebarShell.js +4 -3
  146. package/dist/components/ScrollArea.d.ts +5 -20
  147. package/dist/components/ScrollArea.js +11 -10
  148. package/dist/components/Select.d.ts +1 -1
  149. package/dist/components/Select.js +32 -55
  150. package/dist/components/Separator.d.ts +1 -5
  151. package/dist/components/Separator.js +3 -6
  152. package/dist/components/Slider.d.ts +6 -19
  153. package/dist/components/Slider.js +15 -14
  154. package/dist/components/Sources.d.ts +4 -9
  155. package/dist/components/Sources.js +3 -2
  156. package/dist/components/Stepper.js +2 -2
  157. package/dist/components/SubagentRunDetails.js +1 -1
  158. package/dist/components/SubagentRunIndicator.js +2 -2
  159. package/dist/components/SubagentRunList.js +1 -2
  160. package/dist/components/SubagentRunSelector.d.ts +2 -11
  161. package/dist/components/SubagentRunSelector.js +16 -15
  162. package/dist/components/Switch.d.ts +2 -5
  163. package/dist/components/Switch.js +5 -8
  164. package/dist/components/Tabs.d.ts +2 -2
  165. package/dist/components/Tabs.js +10 -16
  166. package/dist/components/Task.d.ts +4 -9
  167. package/dist/components/Task.js +4 -3
  168. package/dist/components/Terminal.d.ts +2 -3
  169. package/dist/components/Terminal.js +3 -3
  170. package/dist/components/TestResults.d.ts +4 -9
  171. package/dist/components/TestResults.js +3 -2
  172. package/dist/components/Textarea.js +1 -1
  173. package/dist/components/ThemeModeControl.js +1 -1
  174. package/dist/components/ThinkChat.d.ts +21 -11
  175. package/dist/components/ThinkChat.js +5 -3
  176. package/dist/components/ThinkChatActivity.d.ts +1 -1
  177. package/dist/components/ThinkChatActivity.js +26 -7
  178. package/dist/components/ThinkChatContext.d.ts +1 -1
  179. package/dist/components/ThinkChatToolPanels.js +2 -2
  180. package/dist/components/ThinkExecutionDetail.js +2 -2
  181. package/dist/components/ThinkExecutionStatus.js +2 -2
  182. package/dist/components/ThinkExecutionWorkbench.js +2 -2
  183. package/dist/components/ThinkFullApp.d.ts +33 -9
  184. package/dist/components/ThinkFullApp.js +98 -69
  185. package/dist/components/ThinkFullAppViewSwitch.d.ts +1 -1
  186. package/dist/components/ThinkFullAppViewSwitch.js +2 -2
  187. package/dist/components/ThinkPendingApproval.d.ts +60 -0
  188. package/dist/components/ThinkPendingApproval.js +99 -0
  189. package/dist/components/ThinkRecoveryNotice.d.ts +2 -0
  190. package/dist/components/ThinkRecoveryNotice.js +40 -0
  191. package/dist/components/ThinkRoutine.js +1 -0
  192. package/dist/components/ThinkRoutineBrowser.js +6 -6
  193. package/dist/components/ThinkRoutineDetail.js +1 -1
  194. package/dist/components/ThinkRoutineForm.js +2 -2
  195. package/dist/components/ThinkRoutineLibrary.d.ts +9 -0
  196. package/dist/components/ThinkRoutineLibrary.js +67 -20
  197. package/dist/components/ThinkRoutineRuns.js +1 -1
  198. package/dist/components/ThinkThreadPicker.js +2 -2
  199. package/dist/components/ThinkThreadShell.d.ts +1 -1
  200. package/dist/components/Toast.d.ts +7 -28
  201. package/dist/components/Toast.js +15 -14
  202. package/dist/components/Toggle.d.ts +1 -1
  203. package/dist/components/Toggle.js +5 -5
  204. package/dist/components/ToggleGroup.d.ts +1 -1
  205. package/dist/components/ToggleGroup.js +8 -15
  206. package/dist/components/ToolApproval.d.ts +28 -0
  207. package/dist/components/ToolApproval.js +35 -0
  208. package/dist/components/ToolInvocation.d.ts +26 -0
  209. package/dist/components/ToolInvocation.js +72 -0
  210. package/dist/components/Toolbar.d.ts +6 -24
  211. package/dist/components/Toolbar.js +13 -12
  212. package/dist/components/Tooltip.d.ts +3 -9
  213. package/dist/components/Tooltip.js +7 -10
  214. package/dist/components/WebPreview.d.ts +1 -2
  215. package/dist/components/WebPreview.js +4 -3
  216. package/dist/components/Workspace.d.ts +1 -1
  217. package/dist/components/Workspace.js +5 -20
  218. package/dist/components/WorkspaceBrowser.d.ts +1 -1
  219. package/dist/components/WorkspaceBrowser.js +3 -3
  220. package/dist/components/WorkspaceExplorer.d.ts +3 -31
  221. package/dist/components/WorkspaceExplorer.js +3 -3
  222. package/dist/components/WorkspaceFile.d.ts +1 -1
  223. package/dist/components/WorkspaceFileView.d.ts +1 -1
  224. package/dist/components/WorkspaceFileView.js +1 -1
  225. package/dist/components/WorkspaceHeader.js +1 -1
  226. package/dist/components/WorkspaceLink.js +1 -1
  227. package/dist/components/icons.d.ts +2 -2
  228. package/dist/components/icons.js +2 -2
  229. package/dist/{copy-button-DtPMgN7e.d.ts → copy-button-CQx3LQAC.d.ts} +1 -2
  230. package/dist/{copy-button-Dejn5heL.js → copy-button-cYsJBauI.js} +1 -1
  231. package/dist/{icons-CpfUer49.js → icons--FqCZEc3.js} +3 -2
  232. package/dist/{icons-GQd1xF4e.d.ts → icons-DpUqY8Mp.d.ts} +6 -1
  233. package/dist/styles/agent-activity-preview.css +4 -0
  234. package/dist/styles/agent-chat.css +0 -41
  235. package/dist/styles/agent-connection.css +0 -12
  236. package/dist/styles/agent-tool-detail.css +54 -0
  237. package/dist/styles/approval.css +172 -0
  238. package/dist/styles/artifact.css +0 -12
  239. package/dist/styles/browser-run-panel.css +5 -2
  240. package/dist/styles/chain-of-thought.css +0 -8
  241. package/dist/styles/checkpoint.css +58 -0
  242. package/dist/styles/combobox.css +1 -1
  243. package/dist/styles/commit.css +0 -21
  244. package/dist/styles/context-menu.css +0 -8
  245. package/dist/styles/environment-variables.css +0 -13
  246. package/dist/styles/file-tree.css +0 -16
  247. package/dist/styles/index.css +8 -4
  248. package/dist/styles/inline-citation.css +107 -0
  249. package/dist/styles/mcp-server-picker.css +0 -30
  250. package/dist/styles/menu.css +0 -29
  251. package/dist/styles/menubar.css +0 -8
  252. package/dist/styles/message-scroller.css +0 -12
  253. package/dist/styles/message.css +0 -12
  254. package/dist/styles/model-selector.css +0 -20
  255. package/dist/styles/plan.css +127 -0
  256. package/dist/styles/popover.css +0 -36
  257. package/dist/styles/prompt-input.css +2 -195
  258. package/dist/styles/recipes.css +114 -5
  259. package/dist/styles/responsive-sidebar-shell.css +16 -19
  260. package/dist/styles/sources.css +0 -8
  261. package/dist/styles/subagent-run.css +12 -70
  262. package/dist/styles/task.css +0 -16
  263. package/dist/styles/test-results.css +0 -13
  264. package/dist/styles/think-full-app.css +12 -38
  265. package/dist/styles/think-routine-library.css +12 -20
  266. package/dist/styles/think-thread-picker.css +15 -0
  267. package/dist/styles/toast.css +0 -7
  268. package/dist/styles/utilities.css +31 -0
  269. package/dist/styles/web-preview.css +0 -21
  270. package/dist/styles/workspace-explorer.css +5 -55
  271. package/dist/think-agent-Cip5KAPj.d.ts +7 -0
  272. package/dist/utils/codex-model-catalog.d.ts +4 -4
  273. package/dist/utils/structured-code.d.ts +1 -1
  274. package/dist/workspace-path-L_KmjRjq.js +26 -0
  275. package/package.json +3 -4
  276. package/dist/class-names-9UtZwb0J.js +0 -12
  277. package/dist/components/AppFrame.d.ts +0 -24
  278. package/dist/components/AppFrame.js +0 -25
  279. package/dist/components/Shell.d.ts +0 -163
  280. package/dist/components/Shell.js +0 -137
  281. package/dist/components/SubagentRun.d.ts +0 -86
  282. package/dist/components/SubagentRun.js +0 -108
  283. package/dist/styles/app-frame.css +0 -15
  284. package/dist/styles/shell.css +0 -122
@@ -1,33 +1,3 @@
1
- .subagent-run {
2
- display: inline-flex;
3
- flex-direction: column;
4
- max-inline-size: 100%;
5
- color: var(--sigvelo-color-text);
6
- font-family: inherit;
7
- }
8
-
9
- .subagent-run__trigger {
10
- align-items: safe center;
11
- justify-content: flex-start;
12
- max-inline-size: 18rem;
13
- border-radius: var(--sigvelo-radius-full);
14
- text-align: start;
15
- }
16
-
17
- .subagent-run__trigger[data-panel-open] {
18
- border-color: var(--sigvelo-color-neutral-border-muted);
19
- background-color: var(--sigvelo-color-neutral-bg-subtle);
20
- }
21
-
22
- .subagent-run__trigger-content {
23
- display: flex;
24
- align-items: stretch;
25
- flex: 1 1 0;
26
- flex-direction: column;
27
- gap: 0;
28
- min-inline-size: 0;
29
- }
30
-
31
1
  .subagent-run__selector {
32
2
  max-inline-size: 14rem;
33
3
  justify-content: flex-start;
@@ -55,14 +25,22 @@
55
25
  min-inline-size: 0;
56
26
  }
57
27
 
58
- .subagent-run__heading {
59
- display: flex;
60
- align-items: safe center;
61
- flex-wrap: nowrap;
28
+ .subagent-run__list--adjacent {
29
+ margin-block-start: var(--sigvelo-spacing-2);
30
+ }
31
+
32
+ .subagent-run__tray {
33
+ display: grid;
62
34
  gap: var(--sigvelo-spacing-1-5);
63
35
  min-inline-size: 0;
64
36
  }
65
37
 
38
+ .subagent-run__tray-label {
39
+ color: var(--sigvelo-color-text-muted);
40
+ font-size: var(--sigvelo-text-xs);
41
+ line-height: 1.4;
42
+ }
43
+
66
44
  .subagent-run__title {
67
45
  min-inline-size: 0;
68
46
  overflow: hidden;
@@ -99,38 +77,6 @@
99
77
  color: var(--sigvelo-color-warning-text);
100
78
  }
101
79
 
102
- .subagent-run__description {
103
- display: block;
104
- overflow: hidden;
105
- color: var(--sigvelo-color-text-muted);
106
- font-size: var(--sigvelo-text-compact);
107
- line-height: 1.5;
108
- text-overflow: ellipsis;
109
- white-space: nowrap;
110
- }
111
-
112
- .subagent-run__description:empty {
113
- display: none;
114
- }
115
-
116
- .subagent-run__status {
117
- max-inline-size: 100%;
118
- }
119
-
120
- .subagent-run__content-inner {
121
- display: flex;
122
- flex-direction: column;
123
- gap: var(--sigvelo-spacing-2);
124
- padding-block: var(--sigvelo-spacing-2);
125
- min-inline-size: min(30rem, calc(100vw - var(--sigvelo-spacing-8)));
126
- margin-block-start: var(--sigvelo-spacing-2);
127
- padding-inline: var(--sigvelo-spacing-2);
128
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
129
- var(--sigvelo-color-neutral-border-subtle);
130
- border-radius: var(--sigvelo-radius-md);
131
- background-color: var(--sigvelo-color-surface);
132
- }
133
-
134
80
  .subagent-run__progress {
135
81
  display: grid;
136
82
  gap: var(--sigvelo-spacing-1-5);
@@ -191,10 +137,6 @@
191
137
  }
192
138
 
193
139
  @media (forced-colors: active) {
194
- .subagent-run__content-inner {
195
- border-color: CanvasText;
196
- }
197
-
198
140
  .subagent-run__milestone::before {
199
141
  border-color: CanvasText;
200
142
  }
@@ -1,11 +1,3 @@
1
- .task {
2
- display: flex;
3
- flex-direction: column;
4
- width: 100%;
5
- font-family: inherit;
6
- color: var(--sigvelo-color-text);
7
- }
8
-
9
1
  .task__trigger {
10
2
  display: flex;
11
3
  align-items: center;
@@ -53,14 +45,6 @@
53
45
  display: inline-flex;
54
46
  }
55
47
 
56
- .task__trigger-title {
57
- flex: 1;
58
- min-width: 0;
59
- overflow: hidden;
60
- text-overflow: ellipsis;
61
- white-space: nowrap;
62
- }
63
-
64
48
  .task__list {
65
49
  display: flex;
66
50
  flex-direction: column;
@@ -1,16 +1,3 @@
1
- .test-results {
2
- display: flex;
3
- flex-direction: column;
4
- width: 100%;
5
- font-family: inherit;
6
- color: var(--sigvelo-color-text);
7
- background-color: var(--sigvelo-color-surface);
8
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
9
- var(--sigvelo-color-neutral-border-subtle);
10
- border-radius: var(--sigvelo-radius-md);
11
- overflow: hidden;
12
- }
13
-
14
1
  .test-results__header {
15
2
  display: flex;
16
3
  flex-direction: column;
@@ -4,6 +4,7 @@
4
4
  );
5
5
 
6
6
  position: relative;
7
+ container: think-full-app / inline-size;
7
8
  block-size: 100%;
8
9
  min-block-size: 32rem;
9
10
  min-inline-size: 0;
@@ -20,6 +21,15 @@
20
21
  grid-template-rows: var(--think-full-app-header-block-size) minmax(0, 1fr);
21
22
  }
22
23
 
24
+ .think-full-app[data-has-compact-app-bar="true"] {
25
+ grid-template-rows: var(--think-full-app-header-block-size) minmax(0, 1fr);
26
+ }
27
+
28
+ .think-full-app[data-has-compact-app-bar="true"] > .think-full-app__chat-surface,
29
+ .think-full-app[data-has-compact-app-bar="true"] > .think-full-app__aside {
30
+ grid-row: 1 / -1;
31
+ }
32
+
23
33
  .think-full-app[data-has-workbench="false"] {
24
34
  grid-template-columns: minmax(0, 1fr);
25
35
  }
@@ -80,28 +90,6 @@
80
90
  grid-template-rows: minmax(0, 1fr) auto;
81
91
  }
82
92
 
83
- .think-full-app__error {
84
- inline-size: min(100%, var(--agent-chat-content-max-inline-size));
85
- margin: 0 auto var(--sigvelo-spacing-1-5);
86
- padding: 0.4375rem var(--sigvelo-spacing-2-5);
87
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
88
- var(--sigvelo-color-danger-border-subtle);
89
- border-radius: var(--sigvelo-radius-sm);
90
- background: var(--sigvelo-color-danger-bg-subtle);
91
- color: var(--sigvelo-color-danger-text);
92
- font-size: var(--sigvelo-text-xs);
93
- }
94
-
95
- .think-full-app__error-dismiss {
96
- margin-inline-start: 0.5rem;
97
- min-height: auto;
98
- padding: 0;
99
- color: inherit;
100
- font-size: inherit;
101
- font-weight: inherit;
102
- text-decoration: underline;
103
- }
104
-
105
93
  .think-full-app__aside {
106
94
  grid-column: 2;
107
95
  grid-row: 1;
@@ -169,21 +157,7 @@
169
157
  padding: 0;
170
158
  }
171
159
 
172
- @media (width <= 56rem) {
173
- .think-full-app {
174
- min-block-size: 0;
175
- grid-template-columns: minmax(0, 1fr);
176
- grid-template-rows: minmax(0, 1fr);
177
- }
178
-
179
- .think-full-app[data-has-workbench-topbar="true"] {
180
- grid-template-rows: var(--think-full-app-header-block-size) minmax(0, 1fr);
181
- }
182
-
183
- .think-full-app[data-has-compact-app-bar="true"] {
184
- grid-template-rows: var(--think-full-app-header-block-size) minmax(0, 1fr);
185
- }
186
-
160
+ @container think-full-app (inline-size <= 56rem) {
187
161
  .think-full-app > .think-full-app__app-bar[data-compact-only="true"] {
188
162
  display: grid;
189
163
  }
@@ -240,7 +214,7 @@
240
214
  .think-full-app__chat-surface,
241
215
  .think-full-app__workbench-slot,
242
216
  .think-full-app__workbench {
243
- grid-column: 1;
217
+ grid-column: 1 / -1;
244
218
  grid-row: 1;
245
219
  min-block-size: 0;
246
220
  display: none;
@@ -55,19 +55,6 @@
55
55
  text-transform: uppercase;
56
56
  }
57
57
 
58
- .think-routine-library__status,
59
- .think-routine-library__title {
60
- position: absolute;
61
- inline-size: 1px;
62
- block-size: 1px;
63
- margin: -1px;
64
- padding: 0;
65
- overflow: hidden;
66
- border: 0;
67
- clip-path: inset(50%);
68
- white-space: nowrap;
69
- }
70
-
71
58
  .think-routine-library__layout {
72
59
  grid-row: 1 / -1;
73
60
  min-block-size: 0;
@@ -96,15 +83,11 @@
96
83
  margin-block-end: var(--sigvelo-spacing-2);
97
84
  }
98
85
 
99
- .think-routine-library__layout
100
- .responsive-sidebar-shell__frame[data-sidebar-open="true"]
101
- .think-routine-library__browser-toolbar {
86
+ .think-routine-library__layout[data-sidebar-open="true"] .think-routine-library__browser-toolbar {
102
87
  padding-inline-start: var(--sigvelo-spacing-12);
103
88
  }
104
89
 
105
- .think-routine-library__layout
106
- .responsive-sidebar-shell__frame[data-sidebar-open="false"]
107
- .think-routine-library__detail {
90
+ .think-routine-library__layout[data-sidebar-open="false"] .think-routine-library__detail {
108
91
  padding-block-start: clamp(3.75rem, 6vw, 4.5rem);
109
92
  }
110
93
 
@@ -112,6 +95,10 @@
112
95
  inline-size: fit-content;
113
96
  }
114
97
 
98
+ .think-routine-library__filters .toggle-group__item {
99
+ color: color-mix(in oklab, var(--sigvelo-color-text-muted), var(--sigvelo-color-text) 12%);
100
+ }
101
+
115
102
  .think-routine-library__search {
116
103
  display: grid;
117
104
  gap: var(--sigvelo-spacing-1-5);
@@ -198,7 +185,7 @@
198
185
 
199
186
  .think-routine-library__routine-copy span,
200
187
  .think-routine-library__routine-copy small {
201
- color: var(--sigvelo-color-text-muted);
188
+ color: color-mix(in oklab, var(--sigvelo-color-text-muted), var(--sigvelo-color-text) 12%);
202
189
  font-size: var(--sigvelo-text-xs);
203
190
  }
204
191
 
@@ -409,6 +396,11 @@
409
396
  font-size: var(--sigvelo-text-lg);
410
397
  }
411
398
 
399
+ .think-routine-library__empty-action {
400
+ justify-self: center;
401
+ margin-block-start: var(--sigvelo-spacing-4);
402
+ }
403
+
412
404
  .think-routine-library__create {
413
405
  min-block-size: 0;
414
406
  overflow: auto;
@@ -238,6 +238,21 @@
238
238
  }
239
239
  }
240
240
 
241
+ @container responsive-sidebar-shell (inline-size <= 56rem) {
242
+ .think-thread-picker {
243
+ block-size: auto;
244
+ max-block-size: inherit;
245
+ grid-template-rows: auto auto auto;
246
+ }
247
+
248
+ .think-thread-picker__nav,
249
+ .think-thread-picker__scroll,
250
+ .think-thread-picker__viewport {
251
+ block-size: auto;
252
+ max-block-size: 20rem;
253
+ }
254
+ }
255
+
241
256
  @media (prefers-reduced-motion: reduce) {
242
257
  .think-thread-status-indicators__item[data-status="running"] svg,
243
258
  .think-thread-picker__thread[data-status="pending"] .think-thread-picker__thread-status svg,
@@ -60,13 +60,6 @@
60
60
  color: var(--sigvelo-color-text);
61
61
  }
62
62
 
63
- .toast__description {
64
- margin: 0;
65
- font-size: var(--sigvelo-text-xs);
66
- line-height: var(--sigvelo-leading-normal);
67
- color: var(--sigvelo-color-text-muted);
68
- }
69
-
70
63
  .toast__action {
71
64
  display: inline-flex;
72
65
  align-items: center;
@@ -0,0 +1,31 @@
1
+ /*
2
+ * Small, intentional composition helpers. Utilities describe one reusable
3
+ * behavior and must not carry component anatomy or product-specific visuals.
4
+ */
5
+ .sigvelo-visually-hidden {
6
+ position: absolute;
7
+ inline-size: 1px;
8
+ block-size: 1px;
9
+ margin: -1px;
10
+ padding: 0;
11
+ overflow: hidden;
12
+ border: 0;
13
+ clip-path: inset(50%);
14
+ white-space: nowrap;
15
+ }
16
+
17
+ .sigvelo-stack-list {
18
+ display: flex;
19
+ flex-direction: column;
20
+ margin: 0;
21
+ padding: 0;
22
+ list-style: none;
23
+ }
24
+
25
+ .sigvelo-truncate {
26
+ min-inline-size: 0;
27
+ flex: 1;
28
+ overflow: hidden;
29
+ text-overflow: ellipsis;
30
+ white-space: nowrap;
31
+ }
@@ -1,16 +1,3 @@
1
- .web-preview {
2
- display: flex;
3
- flex-direction: column;
4
- width: 100%;
5
- font-family: inherit;
6
- color: var(--sigvelo-color-text);
7
- background-color: var(--sigvelo-color-surface);
8
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
9
- var(--sigvelo-color-neutral-border-subtle);
10
- border-radius: var(--sigvelo-radius-md);
11
- overflow: hidden;
12
- }
13
-
14
1
  .web-preview__nav {
15
2
  display: flex;
16
3
  align-items: center;
@@ -107,14 +94,6 @@
107
94
  overflow: auto;
108
95
  }
109
96
 
110
- .web-preview__console-list {
111
- display: flex;
112
- flex-direction: column;
113
- margin: 0;
114
- padding: 0;
115
- list-style: none;
116
- }
117
-
118
97
  .web-preview__console-empty {
119
98
  padding-block: var(--sigvelo-spacing-3);
120
99
  padding-inline: var(--sigvelo-spacing-3);
@@ -62,10 +62,11 @@
62
62
  text-overflow: ellipsis;
63
63
  }
64
64
 
65
- .workspace-explorer__body {
65
+ .workspace-explorer__body,
66
+ .workspace-explorer__file {
66
67
  display: flex;
67
68
  flex-direction: column;
68
- min-height: 0;
69
+ min-block-size: 0;
69
70
  flex: 1;
70
71
  overflow: auto;
71
72
  }
@@ -77,18 +78,6 @@
77
78
  margin-inline: var(--sigvelo-spacing-2);
78
79
  }
79
80
 
80
- .workspace-explorer__filter-label {
81
- position: absolute;
82
- inline-size: 1px;
83
- block-size: 1px;
84
- margin: -1px;
85
- padding: 0;
86
- overflow: hidden;
87
- border: 0;
88
- clip-path: inset(50%);
89
- white-space: nowrap;
90
- }
91
-
92
81
  .workspace-explorer__filter-control {
93
82
  position: relative;
94
83
  }
@@ -169,15 +158,6 @@
169
158
  text-align: center;
170
159
  }
171
160
 
172
- /* File preview fills the pane flush — no card-in-pane inset. */
173
- .workspace-explorer__file {
174
- display: flex;
175
- flex-direction: column;
176
- min-height: 0;
177
- flex: 1;
178
- overflow: auto;
179
- }
180
-
181
161
  .workspace-explorer__code {
182
162
  flex: 1;
183
163
  min-block-size: 100%;
@@ -233,18 +213,6 @@
233
213
  cursor: not-allowed;
234
214
  }
235
215
 
236
- .workspace-link__visually-hidden {
237
- position: absolute;
238
- inline-size: 1px;
239
- block-size: 1px;
240
- margin: -1px;
241
- padding: 0;
242
- overflow: hidden;
243
- border: 0;
244
- clip-path: inset(50%);
245
- white-space: nowrap;
246
- }
247
-
248
216
  .workspace-explorer__markdown-content
249
217
  :is(
250
218
  [data-streamdown="code-block"],
@@ -314,7 +282,8 @@
314
282
  color: var(--sigvelo-color-text-muted);
315
283
  }
316
284
 
317
- .workspace-explorer__skill-metadata dd {
285
+ .workspace-explorer__skill-metadata dd,
286
+ .workspace-explorer__media-details dd {
318
287
  min-inline-size: 0;
319
288
  margin: 0;
320
289
  overflow-wrap: anywhere;
@@ -466,13 +435,6 @@
466
435
  color: var(--sigvelo-color-text-muted);
467
436
  }
468
437
 
469
- .workspace-explorer__media-details dd {
470
- min-inline-size: 0;
471
- margin: 0;
472
- overflow-wrap: anywhere;
473
- font-family: var(--sigvelo-font-mono);
474
- }
475
-
476
438
  .workspace-explorer__media-transcript,
477
439
  .workspace-explorer__media-fallback a {
478
440
  color: var(--sigvelo-color-primary-text);
@@ -498,18 +460,6 @@
498
460
  display: none;
499
461
  }
500
462
 
501
- .workspace-explorer__visually-hidden {
502
- position: absolute;
503
- inline-size: 1px;
504
- block-size: 1px;
505
- margin: -1px;
506
- padding: 0;
507
- overflow: hidden;
508
- border: 0;
509
- clip-path: inset(50%);
510
- white-space: nowrap;
511
- }
512
-
513
463
  .workspace-media-lightbox {
514
464
  --yarl__color_backdrop: var(--sigvelo-color-surface);
515
465
  --yarl__color_button: var(--sigvelo-color-text-muted);
@@ -0,0 +1,7 @@
1
+ import { Think } from "@cloudflare/think";
2
+
3
+ //#region src/components/_internal/think-agent.d.ts
4
+ /** Shared complete Think specialization for stateful React agent hooks. */
5
+ type ThinkAgent<State = unknown> = Think<object, State>;
6
+ //#endregion
7
+ export { ThinkAgent as t };
@@ -78,7 +78,7 @@ declare const CHECKED_IN_CODEX_MODELS: readonly [{
78
78
  readonly upgradeInfo: null;
79
79
  readonly availabilityNux: null;
80
80
  readonly hidden: boolean;
81
- readonly inputModalities: ("image" | "text")[];
81
+ readonly inputModalities: ("text" | "image")[];
82
82
  readonly supportsPersonality: boolean;
83
83
  readonly additionalSpeedTiers: never[];
84
84
  readonly serviceTiers: never[];
@@ -98,7 +98,7 @@ declare const CHECKED_IN_CODEX_MODELS: readonly [{
98
98
  readonly upgradeInfo: null;
99
99
  readonly availabilityNux: null;
100
100
  readonly hidden: boolean;
101
- readonly inputModalities: ("image" | "text")[];
101
+ readonly inputModalities: ("text" | "image")[];
102
102
  readonly supportsPersonality: boolean;
103
103
  readonly additionalSpeedTiers: never[];
104
104
  readonly serviceTiers: never[];
@@ -115,7 +115,7 @@ declare const CHECKED_IN_CODEX_MODELS: readonly [{
115
115
  readonly upgradeInfo: null;
116
116
  readonly availabilityNux: null;
117
117
  readonly hidden: boolean;
118
- readonly inputModalities: ("image" | "text")[];
118
+ readonly inputModalities: ("text" | "image")[];
119
119
  readonly supportsPersonality: boolean;
120
120
  readonly additionalSpeedTiers: never[];
121
121
  readonly serviceTiers: never[];
@@ -132,7 +132,7 @@ declare const CHECKED_IN_CODEX_MODELS: readonly [{
132
132
  readonly upgradeInfo: null;
133
133
  readonly availabilityNux: null;
134
134
  readonly hidden: boolean;
135
- readonly inputModalities: ("image" | "text")[];
135
+ readonly inputModalities: ("text" | "image")[];
136
136
  readonly supportsPersonality: boolean;
137
137
  readonly additionalSpeedTiers: never[];
138
138
  readonly serviceTiers: never[];
@@ -1,4 +1,4 @@
1
- import { A as CodeBlockLanguage } from "../CodeBlock-BRajW4QU.js";
1
+ import { A as CodeBlockLanguage } from "../CodeBlock-Dnpr88ZQ.js";
2
2
 
3
3
  //#region src/utils/structured-code.d.ts
4
4
  interface StructuredCodeDisplay {
@@ -0,0 +1,26 @@
1
+ //#region src/components/_internal/workspace-path.ts
2
+ /**
3
+ * Canonicalize an absolute path using the workspace path grammar.
4
+ *
5
+ * This deliberately does not URL-decode or reject characters such as `\\` and
6
+ * line breaks. Callers at URL or trust boundaries own those stricter checks.
7
+ */
8
+ function canonicalizeAbsoluteWorkspacePath(path) {
9
+ if (!path.startsWith("/") || path.includes("\0")) return null;
10
+ const segments = [];
11
+ for (const segment of path.split("/")) {
12
+ if (!segment || segment === ".") continue;
13
+ if (segment === "..") segments.pop();
14
+ else segments.push(segment);
15
+ }
16
+ return `/${segments.join("/")}`;
17
+ }
18
+ /** Compare two workspace paths after applying the canonical workspace grammar. */
19
+ function isWorkspacePathWithinRoot(path, root) {
20
+ const canonicalPath = canonicalizeAbsoluteWorkspacePath(path);
21
+ const canonicalRoot = canonicalizeAbsoluteWorkspacePath(root);
22
+ if (!canonicalPath || !canonicalRoot) return false;
23
+ return canonicalRoot === "/" || canonicalPath === canonicalRoot || canonicalPath.startsWith(`${canonicalRoot}/`);
24
+ }
25
+ //#endregion
26
+ export { isWorkspacePathWithinRoot as n, canonicalizeAbsoluteWorkspacePath as t };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-b/react-components",
3
- "version": "0.16.1",
3
+ "version": "0.17.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": {
@@ -20,6 +20,7 @@
20
20
  "**/*.css"
21
21
  ],
22
22
  "exports": {
23
+ "./components/_internal/*": null,
23
24
  "./components/*": {
24
25
  "types": "./dist/components/*.d.ts",
25
26
  "import": "./dist/components/*.js"
@@ -29,8 +30,6 @@
29
30
  "import": "./dist/utils/*.js"
30
31
  },
31
32
  "./styles": "./dist/styles/index.css",
32
- "./styles/tokens": "./dist/styles/tokens.css",
33
- "./styles/base": "./dist/styles/base.css",
34
33
  "./styles/*": "./dist/styles/*.css",
35
34
  "./styles/*.css": "./dist/styles/*.css",
36
35
  "./package.json": "./package.json"
@@ -58,7 +57,7 @@
58
57
  "streamdown": "^2.5.0",
59
58
  "unist-util-visit": "^5.1.0",
60
59
  "yet-another-react-lightbox": "^3.32.1",
61
- "@mcp-b/design-tokens": "0.16.1"
60
+ "@mcp-b/design-tokens": "0.17.0"
62
61
  },
63
62
  "devDependencies": {
64
63
  "@ai-sdk/react": "^3.0.222",
@@ -1,12 +0,0 @@
1
- //#region src/components/_internal/class-names.ts
2
- /**
3
- * Concatenates class-name parts, skipping falsy values.
4
- *
5
- * Matches the idiom used throughout existing components:
6
- * `[...].filter(Boolean).join(" ")`
7
- */
8
- function cx(...parts) {
9
- return parts.filter(Boolean).join(" ");
10
- }
11
- //#endregion
12
- export { cx as t };
@@ -1,24 +0,0 @@
1
- import * as React from "react";
2
-
3
- //#region src/components/AppFrame.d.ts
4
- declare function Root({
5
- className,
6
- ref,
7
- ...props
8
- }: React.HTMLAttributes<HTMLDivElement> & {
9
- ref?: React.Ref<HTMLDivElement>;
10
- }): React.JSX.Element;
11
- declare function Body({
12
- className,
13
- ref,
14
- ...props
15
- }: React.HTMLAttributes<HTMLDivElement> & {
16
- ref?: React.Ref<HTMLDivElement>;
17
- }): React.JSX.Element;
18
- /** Full-height application frame with a fixed chrome row and contained work surface. */
19
- declare const AppFrame: {
20
- Root: typeof Root;
21
- Body: typeof Body;
22
- };
23
- //#endregion
24
- export { AppFrame };
@@ -1,25 +0,0 @@
1
- import { t as cx } from "../class-names-9UtZwb0J.js";
2
- import "react";
3
- import { jsx } from "react/jsx-runtime";
4
- //#region src/components/AppFrame.tsx
5
- function Root({ className, ref, ...props }) {
6
- return /* @__PURE__ */ jsx("div", {
7
- ref,
8
- className: cx("app-frame", className),
9
- ...props
10
- });
11
- }
12
- function Body({ className, ref, ...props }) {
13
- return /* @__PURE__ */ jsx("div", {
14
- ref,
15
- className: cx("app-frame__body", className),
16
- ...props
17
- });
18
- }
19
- /** Full-height application frame with a fixed chrome row and contained work surface. */
20
- const AppFrame = {
21
- Root,
22
- Body
23
- };
24
- //#endregion
25
- export { AppFrame };