@mcp-b/react-components 0.11.0 → 0.13.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 (253) hide show
  1. package/dist/{AgentChat-B9LD_WF1.d.ts → AgentChat-Br6tKEl8.d.ts} +38 -10
  2. package/dist/{BrowserLiveView-ZktFZiMD.d.ts → BrowserLiveView-BV5qgFgI.d.ts} +11 -10
  3. package/dist/{BrowserReplay-6G-mnwcn.d.ts → BrowserReplay-xWvRjRAC.d.ts} +2 -1
  4. package/dist/{Button-Ct5I6aTu.d.ts → Button-FX_hpqxm.d.ts} +8 -11
  5. package/dist/{CodeBlock-XNQOupQ3.js → CodeBlock-BUFXG8HW.js} +22 -12
  6. package/dist/{CodeBlock-CxQXv3C4.d.ts → CodeBlock-DUh9WOGo.d.ts} +13 -7
  7. package/dist/{Combobox-D9anamNr.d.ts → Combobox-B9Fcd6q-.d.ts} +4 -14
  8. package/dist/{FileTree-wMyZhhHO.js → FileTree-mpEIcfzA.js} +1 -1
  9. package/dist/{Menu-B5vDqZe_.d.ts → Menu-Bgu-ufb5.d.ts} +29 -65
  10. package/dist/{ModelSelector-DXtpcRmT.js → ModelSelector-DVgVBdvw.js} +23 -20
  11. package/dist/{PromptInput-D6-G24p7.d.ts → PromptInput-p5KmOmt1.d.ts} +313 -89
  12. package/dist/Select-Dl_vF_Bt.d.ts +213 -0
  13. package/dist/{Tabs-D9EAq09D.d.ts → Tabs-3Zc4tb9D.d.ts} +9 -6
  14. package/dist/ThinkChat-7DQ2CogF.js +222 -0
  15. package/dist/{ThinkChatActivity-B2UD95My.d.ts → ThinkChatActivity-Cuk28Js_.d.ts} +4 -4
  16. package/dist/ThinkChatContext-C3Eb1Xpi.d.ts +16 -0
  17. package/dist/{ThinkChatToolParts-DnUiZgCC.d.ts → ThinkChatToolParts-Cv4o7j6F.d.ts} +13 -5
  18. package/dist/{attachment-preview-ChtC3HiU.js → attachment-preview-DIs50Q0h.js} +3 -3
  19. package/dist/components/Accordion.d.ts +17 -6
  20. package/dist/components/Accordion.js +23 -36
  21. package/dist/components/Activity.d.ts +5 -5
  22. package/dist/components/Activity.js +9 -9
  23. package/dist/components/AgentChat.d.ts +1 -1
  24. package/dist/components/AgentChat.js +354 -132
  25. package/dist/components/AgentConnection.js +6 -22
  26. package/dist/components/AlertDialog.d.ts +40 -32
  27. package/dist/components/AlertDialog.js +46 -39
  28. package/dist/components/Artifact.d.ts +1 -1
  29. package/dist/components/Artifact.js +5 -5
  30. package/dist/components/Autocomplete.js +10 -2
  31. package/dist/components/Avatar.d.ts +2 -2
  32. package/dist/components/Avatar.js +3 -3
  33. package/dist/components/Badge.d.ts +11 -14
  34. package/dist/components/Badge.js +11 -33
  35. package/dist/components/BrowserLiveView.d.ts +1 -1
  36. package/dist/components/BrowserLiveView.js +39 -45
  37. package/dist/components/BrowserReplay.d.ts +1 -1
  38. package/dist/components/BrowserReplay.js +4 -4
  39. package/dist/components/BrowserRunPanel.js +91 -55
  40. package/dist/components/Button.d.ts +2 -2
  41. package/dist/components/Button.js +7 -30
  42. package/dist/components/ChainOfThought.d.ts +5 -5
  43. package/dist/components/ChainOfThought.js +8 -5
  44. package/dist/components/ChatGptSignInScreen.js +3 -3
  45. package/dist/components/Checkbox.d.ts +10 -2
  46. package/dist/components/Checkbox.js +13 -6
  47. package/dist/components/CheckboxGroup.d.ts +6 -6
  48. package/dist/components/CheckboxGroup.js +6 -6
  49. package/dist/components/CodeBlock.d.ts +1 -1
  50. package/dist/components/CodeBlock.js +1 -1
  51. package/dist/components/CodexModelSelector.d.ts +58 -0
  52. package/dist/components/CodexModelSelector.js +170 -0
  53. package/dist/components/Collapsible.d.ts +2 -4
  54. package/dist/components/Collapsible.js +9 -7
  55. package/dist/components/Combobox.d.ts +2 -2
  56. package/dist/components/Combobox.js +20 -22
  57. package/dist/components/Commit.d.ts +6 -6
  58. package/dist/components/Commit.js +14 -26
  59. package/dist/components/Context.js +5 -1
  60. package/dist/components/ContextMenu.d.ts +20 -72
  61. package/dist/components/ContextMenu.js +46 -56
  62. package/dist/components/Conversation.d.ts +3 -7
  63. package/dist/components/Conversation.js +3 -4
  64. package/dist/components/Dialog.d.ts +38 -30
  65. package/dist/components/Dialog.js +46 -34
  66. package/dist/components/EnvironmentVariables.d.ts +2 -7
  67. package/dist/components/EnvironmentVariables.js +13 -36
  68. package/dist/components/Field.d.ts +3 -3
  69. package/dist/components/Field.js +7 -8
  70. package/dist/components/Fieldset.d.ts +2 -2
  71. package/dist/components/Fieldset.js +2 -2
  72. package/dist/components/FileTree.js +1 -1
  73. package/dist/components/Label.d.ts +1 -1
  74. package/dist/components/Label.js +1 -1
  75. package/dist/components/Marker.js +1 -15
  76. package/dist/components/McpServerPicker.d.ts +31 -6
  77. package/dist/components/McpServerPicker.js +136 -72
  78. package/dist/components/Menu.d.ts +2 -2
  79. package/dist/components/Menu.js +41 -51
  80. package/dist/components/Menubar.d.ts +16 -52
  81. package/dist/components/Menubar.js +44 -56
  82. package/dist/components/Message.d.ts +4 -3
  83. package/dist/components/Message.js +16 -9
  84. package/dist/components/MessageScroller.d.ts +1 -1
  85. package/dist/components/MessageScroller.js +1 -1
  86. package/dist/components/Meter.js +5 -0
  87. package/dist/components/ModelSelector.d.ts +12 -9
  88. package/dist/components/ModelSelector.js +1 -1
  89. package/dist/components/NavigationMenu.d.ts +3 -14
  90. package/dist/components/NavigationMenu.js +22 -38
  91. package/dist/components/NumberField.js +6 -0
  92. package/dist/components/Popover.d.ts +21 -44
  93. package/dist/components/Popover.js +33 -23
  94. package/dist/components/PreviewCard.d.ts +20 -18
  95. package/dist/components/PreviewCard.js +30 -20
  96. package/dist/components/PricingPage.js +30 -29
  97. package/dist/components/Progress.d.ts +7 -3
  98. package/dist/components/Progress.js +9 -4
  99. package/dist/components/PromptInput.d.ts +2 -2
  100. package/dist/components/PromptInput.js +184 -148
  101. package/dist/components/Queue.d.ts +8 -19
  102. package/dist/components/Queue.js +6 -6
  103. package/dist/components/RadioGroup.d.ts +10 -9
  104. package/dist/components/RadioGroup.js +8 -9
  105. package/dist/components/Reasoning.d.ts +4 -4
  106. package/dist/components/Reasoning.js +12 -21
  107. package/dist/components/ScrollArea.d.ts +2 -9
  108. package/dist/components/ScrollArea.js +5 -23
  109. package/dist/components/Select.d.ts +2 -2
  110. package/dist/components/Select.js +100 -134
  111. package/dist/components/Slider.d.ts +10 -7
  112. package/dist/components/Slider.js +12 -11
  113. package/dist/components/Sources.d.ts +4 -4
  114. package/dist/components/Sources.js +8 -5
  115. package/dist/components/Stepper.js +2 -8
  116. package/dist/components/Switch.d.ts +6 -3
  117. package/dist/components/Switch.js +7 -4
  118. package/dist/components/Tabs.d.ts +2 -2
  119. package/dist/components/Tabs.js +9 -4
  120. package/dist/components/Task.d.ts +4 -4
  121. package/dist/components/Task.js +10 -6
  122. package/dist/components/Terminal.d.ts +2 -2
  123. package/dist/components/Terminal.js +5 -5
  124. package/dist/components/TestResults.d.ts +4 -4
  125. package/dist/components/TestResults.js +5 -5
  126. package/dist/components/ThinkChat.d.ts +37 -30
  127. package/dist/components/ThinkChat.js +1 -152
  128. package/dist/components/ThinkChatActivity.d.ts +2 -2
  129. package/dist/components/ThinkChatActivity.js +4 -11
  130. package/dist/components/ThinkChatContext.d.ts +2 -2
  131. package/dist/components/ThinkChatContext.js +9 -2
  132. package/dist/components/ThinkChatToolPanels.d.ts +1 -1
  133. package/dist/components/ThinkChatToolPanels.js +27 -15
  134. package/dist/components/ThinkChatToolParts.d.ts +1 -1
  135. package/dist/components/ThinkExecutionWorkbench.d.ts +10 -7
  136. package/dist/components/ThinkExecutionWorkbench.js +382 -359
  137. package/dist/components/ThinkFullApp.d.ts +16 -13
  138. package/dist/components/ThinkFullApp.js +35 -25
  139. package/dist/components/ThinkThreadPicker.d.ts +1 -31
  140. package/dist/components/ThinkThreadPicker.js +32 -171
  141. package/dist/components/ThinkThreadShell.d.ts +35 -0
  142. package/dist/components/ThinkThreadShell.js +146 -0
  143. package/dist/components/Toast.js +7 -0
  144. package/dist/components/ToggleGroup.d.ts +6 -2
  145. package/dist/components/ToggleGroup.js +6 -2
  146. package/dist/components/Toolbar.js +6 -0
  147. package/dist/components/Tooltip.d.ts +36 -27
  148. package/dist/components/Tooltip.js +45 -29
  149. package/dist/components/WebPreview.d.ts +1 -1
  150. package/dist/components/WebPreview.js +3 -3
  151. package/dist/components/WorkspaceExplorer.d.ts +6 -8
  152. package/dist/components/WorkspaceExplorer.js +9 -7
  153. package/dist/components/icons.d.ts +2 -2
  154. package/dist/components/icons.js +2 -2
  155. package/dist/{copy-button-C6JSKtFE.js → copy-button-DUMLYdsk.js} +7 -6
  156. package/dist/{copy-button-BKXqGiNm.d.ts → copy-button-DtPMgN7e.d.ts} +3 -2
  157. package/dist/icons-Ba9THQKz.js +64 -0
  158. package/dist/icons-CUCz_Sft.d.ts +210 -0
  159. package/dist/merge-refs-DF_7w2x_.js +18 -0
  160. package/dist/styles/accessibility.css +14 -0
  161. package/dist/styles/accordion.css +21 -61
  162. package/dist/styles/activity.css +23 -58
  163. package/dist/styles/agent-chat.css +49 -5
  164. package/dist/styles/agent-connection.css +8 -10
  165. package/dist/styles/alert-dialog.css +20 -26
  166. package/dist/styles/artifact.css +6 -6
  167. package/dist/styles/attachment-preview.css +1 -1
  168. package/dist/styles/autocomplete.css +5 -170
  169. package/dist/styles/avatar.css +8 -8
  170. package/dist/styles/badge.css +8 -10
  171. package/dist/styles/base-ui-motion.css +176 -0
  172. package/dist/styles/base.css +19 -25
  173. package/dist/styles/browser-live-view.css +7 -7
  174. package/dist/styles/browser-replay.css +5 -5
  175. package/dist/styles/browser-run-panel.css +59 -112
  176. package/dist/styles/button.css +48 -43
  177. package/dist/styles/card.css +3 -5
  178. package/dist/styles/chain-of-thought.css +14 -70
  179. package/dist/styles/chatgpt-sign-in-screen.css +3 -3
  180. package/dist/styles/checkbox-group.css +1 -1
  181. package/dist/styles/checkbox.css +3 -7
  182. package/dist/styles/code-block.css +10 -10
  183. package/dist/styles/codex-model-selector.css +186 -0
  184. package/dist/styles/collapsible.css +11 -27
  185. package/dist/styles/combobox.css +3 -149
  186. package/dist/styles/commit.css +19 -35
  187. package/dist/styles/context-menu.css +1 -77
  188. package/dist/styles/context.css +12 -12
  189. package/dist/styles/conversation.css +7 -7
  190. package/dist/styles/dialog.css +34 -55
  191. package/dist/styles/environment-variables.css +10 -10
  192. package/dist/styles/field.css +16 -58
  193. package/dist/styles/fieldset.css +2 -2
  194. package/dist/styles/file-tree.css +7 -9
  195. package/dist/styles/index.css +12 -2
  196. package/dist/styles/input.css +1 -51
  197. package/dist/styles/label.css +2 -2
  198. package/dist/styles/marker.css +2 -4
  199. package/dist/styles/mcp-server-picker.css +66 -19
  200. package/dist/styles/menu.css +6 -153
  201. package/dist/styles/menubar.css +6 -105
  202. package/dist/styles/message-scroller.css +1 -1
  203. package/dist/styles/message.css +87 -9
  204. package/dist/styles/meter.css +4 -20
  205. package/dist/styles/model-selector.css +32 -20
  206. package/dist/styles/navigation-menu.css +14 -54
  207. package/dist/styles/number-field.css +8 -23
  208. package/dist/styles/popover.css +13 -68
  209. package/dist/styles/preview-card.css +5 -46
  210. package/dist/styles/pricing-page.css +43 -43
  211. package/dist/styles/progress.css +7 -16
  212. package/dist/styles/prompt-input.css +100 -44
  213. package/dist/styles/queue.css +12 -28
  214. package/dist/styles/radio.css +4 -8
  215. package/dist/styles/reasoning.css +3 -62
  216. package/dist/styles/recipes.css +475 -0
  217. package/dist/styles/select.css +7 -103
  218. package/dist/styles/shell.css +3 -3
  219. package/dist/styles/slider.css +5 -7
  220. package/dist/styles/sources.css +9 -66
  221. package/dist/styles/stepper.css +16 -14
  222. package/dist/styles/streamdown.css +11 -57
  223. package/dist/styles/switch.css +4 -7
  224. package/dist/styles/tabs.css +7 -8
  225. package/dist/styles/task.css +13 -42
  226. package/dist/styles/terminal.css +7 -7
  227. package/dist/styles/test-results.css +21 -37
  228. package/dist/styles/think-execution-workbench.css +337 -0
  229. package/dist/styles/think-full-app.css +27 -410
  230. package/dist/styles/think-resize-handle.css +33 -0
  231. package/dist/styles/think-thread-picker.css +18 -247
  232. package/dist/styles/think-thread-shell.css +219 -0
  233. package/dist/styles/toast.css +14 -25
  234. package/dist/styles/toggle-group.css +16 -14
  235. package/dist/styles/toggle.css +14 -15
  236. package/dist/styles/toolbar.css +13 -25
  237. package/dist/styles/tooltip.css +6 -16
  238. package/dist/styles/web-preview.css +15 -15
  239. package/dist/styles/workspace-explorer.css +21 -14
  240. package/dist/summarize-tool-input-BUJsENSn.js +12 -0
  241. package/dist/utils/codex-model-catalog.d.ts +142 -0
  242. package/dist/utils/codex-model-catalog.js +112 -0
  243. package/dist/utils/structured-code.d.ts +1 -1
  244. package/package.json +8 -2
  245. package/dist/Select-CRsKCJ9x.d.ts +0 -200
  246. package/dist/ThinkChatContext-BLAAb8J5.d.ts +0 -28
  247. package/dist/components/McpServerConnections.d.ts +0 -41
  248. package/dist/components/McpServerConnections.js +0 -188
  249. package/dist/components/useStickToBottom.d.ts +0 -33
  250. package/dist/components/useStickToBottom.js +0 -107
  251. package/dist/icons-CbjtbIJK.d.ts +0 -51
  252. package/dist/icons-D2Q5n5C1.js +0 -291
  253. package/dist/styles/mcp-server-connections.css +0 -145
@@ -2,11 +2,12 @@
2
2
  display: inline-flex;
3
3
  align-items: center;
4
4
  justify-content: center;
5
- gap: 0.5rem;
6
- padding-block: 0.5rem;
7
- padding-inline: 0.75rem;
8
- font-family: var(--sigvelo-font-sans);
9
- font-size: 0.875rem;
5
+ gap: var(--sigvelo-recipe-control-gap);
6
+ min-block-size: var(--sigvelo-recipe-control-height);
7
+ padding-block: 0;
8
+ padding-inline: var(--sigvelo-recipe-control-padding-inline);
9
+ font-family: inherit;
10
+ font-size: var(--sigvelo-recipe-control-font-size);
10
11
  font-weight: var(--sigvelo-font-weight-semibold);
11
12
  line-height: 1.25;
12
13
  color: var(--sigvelo-color-text);
@@ -27,15 +28,15 @@
27
28
  }
28
29
 
29
30
  .toggle--sm {
30
- padding-block: 0.25rem;
31
- padding-inline: 0.5rem;
32
- font-size: 0.75rem;
31
+ --sigvelo-recipe-control-height: var(--sigvelo-control-height-sm);
32
+ --sigvelo-recipe-control-padding-inline: var(--sigvelo-spacing-2);
33
+ --sigvelo-recipe-control-font-size: var(--sigvelo-control-text-sm);
33
34
  }
34
35
 
35
36
  .toggle--lg {
36
- padding-block: 0.625rem;
37
- padding-inline: 1rem;
38
- font-size: 1rem;
37
+ --sigvelo-recipe-control-height: var(--sigvelo-control-height-lg);
38
+ --sigvelo-recipe-control-padding-inline: var(--sigvelo-spacing-4);
39
+ --sigvelo-recipe-control-font-size: var(--sigvelo-control-text-lg);
39
40
  }
40
41
 
41
42
  .toggle:hover {
@@ -45,9 +46,7 @@
45
46
 
46
47
  .toggle:focus-visible {
47
48
  outline: none;
48
- box-shadow:
49
- 0 0 0 2px var(--sigvelo-color-canvas),
50
- 0 0 0 4px var(--sigvelo-color-focus);
49
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
51
50
  }
52
51
 
53
52
  .toggle[data-pressed] {
@@ -57,6 +56,6 @@
57
56
  }
58
57
 
59
58
  .toggle:disabled {
60
- opacity: 0.5;
59
+ opacity: var(--sigvelo-recipe-disabled-opacity);
61
60
  pointer-events: none;
62
61
  }
@@ -15,7 +15,7 @@
15
15
  }
16
16
 
17
17
  .toolbar[data-disabled] {
18
- opacity: 0.5;
18
+ opacity: var(--sigvelo-recipe-disabled-opacity);
19
19
  pointer-events: none;
20
20
  }
21
21
 
@@ -24,8 +24,8 @@
24
24
  align-items: center;
25
25
  justify-content: center;
26
26
  padding: 0.5rem;
27
- font-family: var(--sigvelo-font-sans);
28
- font-size: 0.875rem;
27
+ font-family: inherit;
28
+ font-size: var(--sigvelo-text-sm);
29
29
  font-weight: var(--sigvelo-font-weight-semibold);
30
30
  color: var(--sigvelo-color-text);
31
31
  background-color: transparent;
@@ -44,13 +44,11 @@
44
44
 
45
45
  .toolbar__button:focus-visible {
46
46
  outline: none;
47
- box-shadow:
48
- 0 0 0 2px var(--sigvelo-color-canvas),
49
- 0 0 0 4px var(--sigvelo-color-focus);
47
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
50
48
  }
51
49
 
52
50
  .toolbar__button[data-disabled] {
53
- opacity: 0.5;
51
+ opacity: var(--sigvelo-recipe-disabled-opacity);
54
52
  pointer-events: none;
55
53
  }
56
54
 
@@ -64,8 +62,8 @@
64
62
  align-items: center;
65
63
  justify-content: center;
66
64
  padding: 0.5rem;
67
- font-family: var(--sigvelo-font-sans);
68
- font-size: 0.875rem;
65
+ font-family: inherit;
66
+ font-size: var(--sigvelo-text-sm);
69
67
  font-weight: var(--sigvelo-font-weight-semibold);
70
68
  color: var(--sigvelo-color-text);
71
69
  text-decoration: none;
@@ -82,15 +80,13 @@
82
80
 
83
81
  .toolbar__link:focus-visible {
84
82
  outline: none;
85
- box-shadow:
86
- 0 0 0 2px var(--sigvelo-color-canvas),
87
- 0 0 0 4px var(--sigvelo-color-focus);
83
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
88
84
  }
89
85
 
90
86
  .toolbar__group {
91
87
  display: flex;
92
88
  align-items: center;
93
- gap: 0.125rem;
89
+ gap: var(--sigvelo-spacing-0-5);
94
90
  }
95
91
 
96
92
  .toolbar[data-orientation="vertical"] .toolbar__group {
@@ -111,23 +107,15 @@
111
107
  }
112
108
 
113
109
  .toolbar__input {
114
- padding-block: 0.375rem;
115
- padding-inline: 0.5rem;
116
- font-family: var(--sigvelo-font-sans);
117
- font-size: 0.875rem;
118
- color: var(--sigvelo-color-text);
119
- background-color: var(--sigvelo-color-canvas);
120
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
121
- var(--sigvelo-color-neutral-border-muted);
122
- border-radius: var(--sigvelo-radius-sm);
110
+ --sigvelo-recipe-control-height: var(--sigvelo-control-height-sm);
111
+ --sigvelo-recipe-control-padding-inline: var(--sigvelo-spacing-2);
112
+ --sigvelo-recipe-control-radius: var(--sigvelo-radius-sm);
123
113
  }
124
114
 
125
115
  .toolbar__input:focus-visible {
126
116
  outline: none;
127
117
  border-color: var(--sigvelo-color-focus);
128
- box-shadow:
129
- 0 0 0 2px var(--sigvelo-color-canvas),
130
- 0 0 0 4px color-mix(in oklab, var(--sigvelo-color-focus), transparent 80%);
118
+ box-shadow: var(--sigvelo-recipe-focus-shadow-subtle);
131
119
  }
132
120
 
133
121
  @container (max-width: 20rem) {
@@ -1,22 +1,12 @@
1
1
  .tooltip__popup {
2
+ --sigvelo-recipe-surface-padding: 0.375rem 0.75rem;
3
+ --sigvelo-recipe-surface-shadow: var(--sigvelo-shadow-sm);
4
+
2
5
  z-index: 50;
3
- padding-block: 0.375rem;
4
- padding-inline: 0.75rem;
5
- font-family: var(--sigvelo-font-sans);
6
- font-size: 0.75rem;
6
+ max-inline-size: min(20rem, var(--available-width));
7
+ overflow-y: auto;
8
+ font-size: var(--sigvelo-text-xs);
7
9
  line-height: 1.25;
8
- color: var(--sigvelo-color-text);
9
- background-color: var(--sigvelo-color-surface);
10
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
11
- var(--sigvelo-color-neutral-border-muted);
12
- border-radius: var(--sigvelo-radius-md);
13
- box-shadow: var(--sigvelo-shadow-sm);
14
- }
15
-
16
- .tooltip__popup[data-starting-style],
17
- .tooltip__popup[data-ending-style] {
18
- opacity: 0;
19
- transform: scale(0.95);
20
10
  }
21
11
 
22
12
  .tooltip__arrow {
@@ -2,7 +2,7 @@
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  width: 100%;
5
- font-family: var(--sigvelo-font-sans);
5
+ font-family: inherit;
6
6
  color: var(--sigvelo-color-text);
7
7
  background-color: var(--sigvelo-color-surface);
8
8
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -14,9 +14,9 @@
14
14
  .web-preview__nav {
15
15
  display: flex;
16
16
  align-items: center;
17
- gap: 0.375rem;
17
+ gap: var(--sigvelo-spacing-1-5);
18
18
  padding-block: 0.5rem;
19
- padding-inline: 0.625rem;
19
+ padding-inline: var(--sigvelo-spacing-2-5);
20
20
  background-color: var(--sigvelo-color-neutral-bg-subtle);
21
21
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
22
22
  var(--sigvelo-color-neutral-border-subtle);
@@ -34,7 +34,7 @@
34
34
  .web-preview__url {
35
35
  width: 100%;
36
36
  font-family: var(--sigvelo-font-mono);
37
- font-size: 0.75rem;
37
+ font-size: var(--sigvelo-text-xs);
38
38
  }
39
39
 
40
40
  .web-preview__body {
@@ -55,7 +55,7 @@
55
55
  justify-content: center;
56
56
  padding: 2rem;
57
57
  color: var(--sigvelo-color-text-muted);
58
- font-size: 0.8125rem;
58
+ font-size: var(--sigvelo-text-compact);
59
59
  text-align: center;
60
60
  }
61
61
 
@@ -71,10 +71,10 @@
71
71
  display: flex;
72
72
  align-items: center;
73
73
  justify-content: space-between;
74
- padding-block: 0.375rem;
75
- padding-inline: 0.75rem;
74
+ padding-block: var(--sigvelo-spacing-1-5);
75
+ padding-inline: var(--sigvelo-spacing-3);
76
76
  border: 0;
77
- font-size: 0.6875rem;
77
+ font-size: var(--sigvelo-text-2xs);
78
78
  font-weight: var(--sigvelo-font-weight-bold);
79
79
  text-transform: uppercase;
80
80
  letter-spacing: 0.05em;
@@ -116,9 +116,9 @@
116
116
  }
117
117
 
118
118
  .web-preview__console-empty {
119
- padding-block: 0.75rem;
120
- padding-inline: 0.75rem;
121
- font-size: 0.75rem;
119
+ padding-block: var(--sigvelo-spacing-3);
120
+ padding-inline: var(--sigvelo-spacing-3);
121
+ font-size: var(--sigvelo-text-xs);
122
122
  color: var(--sigvelo-color-text-muted);
123
123
  text-align: center;
124
124
  }
@@ -128,10 +128,10 @@
128
128
  grid-template-columns: auto 1fr auto;
129
129
  gap: 0.5rem;
130
130
  align-items: baseline;
131
- padding-block: 0.375rem;
132
- padding-inline: 0.75rem;
131
+ padding-block: var(--sigvelo-spacing-1-5);
132
+ padding-inline: var(--sigvelo-spacing-3);
133
133
  font-family: var(--sigvelo-font-mono);
134
- font-size: 0.75rem;
134
+ font-size: var(--sigvelo-text-xs);
135
135
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
136
136
  var(--sigvelo-color-neutral-border-subtle);
137
137
  }
@@ -156,7 +156,7 @@
156
156
  .web-preview__console-time {
157
157
  color: var(--sigvelo-color-text-muted);
158
158
  font-variant-numeric: tabular-nums;
159
- font-size: 0.6875rem;
159
+ font-size: var(--sigvelo-text-2xs);
160
160
  }
161
161
 
162
162
  @media (forced-colors: active) {
@@ -3,7 +3,7 @@
3
3
  flex-direction: column;
4
4
  min-height: 0;
5
5
  height: 100%;
6
- font-family: var(--sigvelo-font-sans);
6
+ font-family: inherit;
7
7
  color: var(--sigvelo-color-text);
8
8
  }
9
9
 
@@ -13,18 +13,18 @@
13
13
  align-items: center;
14
14
  gap: 0.5rem;
15
15
  min-height: 2.5rem;
16
- padding: 0.25rem 0.625rem;
16
+ padding: 0.25rem var(--sigvelo-spacing-2-5);
17
17
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
18
18
  var(--sigvelo-color-neutral-border-subtle);
19
19
  }
20
20
 
21
21
  .workspace-explorer__title {
22
- font-size: 0.8125rem;
22
+ font-size: var(--sigvelo-text-compact);
23
23
  font-weight: 550;
24
24
  }
25
25
 
26
26
  .workspace-explorer__count {
27
- font-size: 0.75rem;
27
+ font-size: var(--sigvelo-text-xs);
28
28
  color: var(--sigvelo-color-text-muted);
29
29
  }
30
30
 
@@ -34,7 +34,7 @@
34
34
  overflow: hidden;
35
35
  text-overflow: ellipsis;
36
36
  white-space: nowrap;
37
- font-size: 0.75rem;
37
+ font-size: var(--sigvelo-text-xs);
38
38
  font-family: var(--sigvelo-font-mono);
39
39
  color: var(--sigvelo-color-text-muted);
40
40
  }
@@ -49,17 +49,17 @@
49
49
  .workspace-explorer__body {
50
50
  display: flex;
51
51
  flex-direction: column;
52
- gap: 0.375rem;
52
+ gap: var(--sigvelo-spacing-1-5);
53
53
  min-height: 0;
54
54
  flex: 1;
55
- padding: 0.375rem 0.625rem;
55
+ padding: var(--sigvelo-spacing-1-5) var(--sigvelo-spacing-2-5);
56
56
  overflow: auto;
57
57
  }
58
58
 
59
59
  .workspace-explorer__filter {
60
60
  display: flex;
61
61
  align-items: center;
62
- gap: 0.375rem;
62
+ gap: var(--sigvelo-spacing-1-5);
63
63
  min-height: 2rem;
64
64
  padding-inline: 0.5rem;
65
65
  color: var(--sigvelo-color-text-muted);
@@ -72,16 +72,23 @@
72
72
  border-color: var(--sigvelo-color-focus);
73
73
  }
74
74
 
75
- .workspace-explorer__filter input {
75
+ .workspace-explorer__filter-input.input {
76
76
  flex: 1;
77
77
  min-width: 0;
78
+ height: auto;
78
79
  padding-block: 0.25rem;
80
+ padding-inline: 0;
79
81
  border: none;
82
+ border-radius: 0;
80
83
  background: transparent;
81
84
  color: var(--sigvelo-color-text);
82
85
  font-family: inherit;
83
- font-size: 0.75rem;
84
- outline: none;
86
+ font-size: var(--sigvelo-text-xs);
87
+ }
88
+
89
+ .workspace-explorer__filter-input.input:focus-visible {
90
+ outline: var(--sigvelo-focus-width) solid var(--sigvelo-color-focus);
91
+ outline-offset: var(--sigvelo-focus-offset);
85
92
  }
86
93
 
87
94
  .workspace-explorer__tree {
@@ -109,8 +116,8 @@
109
116
  flex: 1;
110
117
  align-items: center;
111
118
  justify-content: center;
112
- padding: 1.5rem 0.75rem;
113
- font-size: 0.8125rem;
119
+ padding: 1.5rem var(--sigvelo-spacing-3);
120
+ font-size: var(--sigvelo-text-compact);
114
121
  color: var(--sigvelo-color-text-muted);
115
122
  text-align: center;
116
123
  }
@@ -131,6 +138,6 @@
131
138
 
132
139
  /* File contents read at gutter scale, like the original workbench preview. */
133
140
  .workspace-explorer__code :is(.code-block__content, .code-block__content pre) {
134
- font-size: 0.75rem;
141
+ font-size: var(--sigvelo-text-xs);
135
142
  line-height: 1.6;
136
143
  }
@@ -0,0 +1,12 @@
1
+ //#region src/components/_internal/summarize-tool-input.ts
2
+ /** First non-empty line of the salient string input (command, path, query…). */
3
+ function summarizeToolInput(input) {
4
+ if (!input || typeof input !== "object") return null;
5
+ for (const value of Object.values(input)) if (typeof value === "string" && value.trim()) {
6
+ const line = value.trim().split("\n", 1)[0] ?? "";
7
+ return line.length > 64 ? `${line.slice(0, 64)}…` : line;
8
+ }
9
+ return null;
10
+ }
11
+ //#endregion
12
+ export { summarizeToolInput as t };
@@ -0,0 +1,142 @@
1
+ //#region src/utils/codex-model-catalog.d.ts
2
+ /**
3
+ * Codex app-server model catalog types.
4
+ *
5
+ * Upstream generates these types with ts-rs but does not publish them from
6
+ * `@openai/codex-sdk`. Keep the field names and shapes aligned with:
7
+ * https://github.com/openai/codex/tree/main/codex-rs/app-server-protocol/schema/typescript
8
+ */
9
+ /** Canonical user-input modality tags advertised by a Codex model. */
10
+ type CodexInputModality = "text" | "image";
11
+ /** Codex intentionally keeps this open so new effort levels do not break clients. */
12
+ type CodexReasoningEffort = string;
13
+ type CodexReasoningEffortOption = {
14
+ reasoningEffort: CodexReasoningEffort;
15
+ description: string;
16
+ };
17
+ type CodexModelServiceTier = {
18
+ id: string;
19
+ name: string;
20
+ description: string;
21
+ };
22
+ type CodexModelUpgradeInfo = {
23
+ model: string;
24
+ upgradeCopy: string | null;
25
+ modelLink: string | null;
26
+ migrationMarkdown: string | null;
27
+ };
28
+ type CodexModelAvailabilityNux = {
29
+ message: string;
30
+ };
31
+ /** Whole upstream `v2/Model` response shape from Codex app-server `model/list`. */
32
+ type CodexModel = {
33
+ id: string;
34
+ model: string;
35
+ upgrade: string | null;
36
+ upgradeInfo: CodexModelUpgradeInfo | null;
37
+ availabilityNux: CodexModelAvailabilityNux | null;
38
+ displayName: string;
39
+ description: string;
40
+ hidden: boolean;
41
+ supportedReasoningEfforts: CodexReasoningEffortOption[];
42
+ defaultReasoningEffort: CodexReasoningEffort;
43
+ inputModalities: CodexInputModality[];
44
+ supportsPersonality: boolean; /** @deprecated Upstream Codex uses `serviceTiers` for structured tier metadata. */
45
+ additionalSpeedTiers: string[];
46
+ serviceTiers: CodexModelServiceTier[];
47
+ defaultServiceTier: string | null;
48
+ isDefault: boolean;
49
+ };
50
+ /** Whole upstream `v2/ModelListResponse` shape. */
51
+ type CodexModelListResponse = {
52
+ data: CodexModel[]; /** Opaque cursor for the next `model/list` request. */
53
+ nextCursor: string | null;
54
+ };
55
+ /** Current visible model ids in upstream Codex's checked-in catalog. */
56
+ declare const CODEX_MODEL_IDS: readonly ["gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.2"];
57
+ type CodexModelId = (typeof CODEX_MODEL_IDS)[number];
58
+ /** Preserves literal ids and capability values for checked-in Codex catalogs. */
59
+ declare function defineCodexModels<const Models extends readonly CodexModel[]>(models: Models): Models;
60
+ /**
61
+ * Checked-in snapshot of upstream Codex's visible model catalog
62
+ * (`codex-rs/models-manager/models.json`). Display data for hosts without a
63
+ * live `model/list`; runtime account catalogs remain authoritative because
64
+ * availability differs by account and rollout.
65
+ */
66
+ declare const CHECKED_IN_CODEX_MODELS: readonly [{
67
+ readonly id: "gpt-5.6-sol";
68
+ readonly model: "gpt-5.6-sol";
69
+ readonly displayName: "GPT-5.6-Sol";
70
+ readonly description: "Fast agentic coding model for responsive everyday work.";
71
+ readonly supportedReasoningEfforts: [...CodexReasoningEffortOption[], CodexReasoningEffortOption, {
72
+ readonly reasoningEffort: "ultra";
73
+ readonly description: "Maximum reasoning with automatic task delegation";
74
+ }];
75
+ readonly defaultReasoningEffort: "low";
76
+ readonly isDefault: false;
77
+ readonly upgrade: null;
78
+ readonly upgradeInfo: null;
79
+ readonly availabilityNux: null;
80
+ readonly hidden: boolean;
81
+ readonly inputModalities: ("image" | "text")[];
82
+ readonly supportsPersonality: boolean;
83
+ readonly additionalSpeedTiers: never[];
84
+ readonly serviceTiers: never[];
85
+ readonly defaultServiceTier: null;
86
+ }, {
87
+ readonly id: "gpt-5.6-terra";
88
+ readonly model: "gpt-5.6-terra";
89
+ readonly displayName: "GPT-5.6-Terra";
90
+ readonly description: "Balanced agentic coding model for everyday work.";
91
+ readonly supportedReasoningEfforts: [...CodexReasoningEffortOption[], CodexReasoningEffortOption, {
92
+ readonly reasoningEffort: "ultra";
93
+ readonly description: "Maximum reasoning with automatic task delegation";
94
+ }];
95
+ readonly defaultReasoningEffort: "medium";
96
+ readonly isDefault: true;
97
+ readonly upgrade: null;
98
+ readonly upgradeInfo: null;
99
+ readonly availabilityNux: null;
100
+ readonly hidden: boolean;
101
+ readonly inputModalities: ("image" | "text")[];
102
+ readonly supportsPersonality: boolean;
103
+ readonly additionalSpeedTiers: never[];
104
+ readonly serviceTiers: never[];
105
+ readonly defaultServiceTier: null;
106
+ }, {
107
+ readonly id: "gpt-5.6-luna";
108
+ readonly model: "gpt-5.6-luna";
109
+ readonly displayName: "GPT-5.6-Luna";
110
+ readonly description: "Agentic coding model tuned for deliberate work.";
111
+ readonly supportedReasoningEfforts: [...CodexReasoningEffortOption[], CodexReasoningEffortOption];
112
+ readonly defaultReasoningEffort: "medium";
113
+ readonly isDefault: false;
114
+ readonly upgrade: null;
115
+ readonly upgradeInfo: null;
116
+ readonly availabilityNux: null;
117
+ readonly hidden: boolean;
118
+ readonly inputModalities: ("image" | "text")[];
119
+ readonly supportsPersonality: boolean;
120
+ readonly additionalSpeedTiers: never[];
121
+ readonly serviceTiers: never[];
122
+ readonly defaultServiceTier: null;
123
+ }, {
124
+ readonly id: "gpt-5.5";
125
+ readonly model: "gpt-5.5";
126
+ readonly displayName: "GPT-5.5";
127
+ readonly description: "Previous-generation agentic coding model.";
128
+ readonly supportedReasoningEfforts: CodexReasoningEffortOption[];
129
+ readonly defaultReasoningEffort: "medium";
130
+ readonly isDefault: false;
131
+ readonly upgrade: null;
132
+ readonly upgradeInfo: null;
133
+ readonly availabilityNux: null;
134
+ readonly hidden: boolean;
135
+ readonly inputModalities: ("image" | "text")[];
136
+ readonly supportsPersonality: boolean;
137
+ readonly additionalSpeedTiers: never[];
138
+ readonly serviceTiers: never[];
139
+ readonly defaultServiceTier: null;
140
+ }];
141
+ //#endregion
142
+ export { CHECKED_IN_CODEX_MODELS, CODEX_MODEL_IDS, CodexInputModality, CodexModel, CodexModelAvailabilityNux, CodexModelId, CodexModelListResponse, CodexModelServiceTier, CodexModelUpgradeInfo, CodexReasoningEffort, CodexReasoningEffortOption, defineCodexModels };
@@ -0,0 +1,112 @@
1
+ //#region src/utils/codex-model-catalog.ts
2
+ /** Current visible model ids in upstream Codex's checked-in catalog. */
3
+ const CODEX_MODEL_IDS = [
4
+ "gpt-5.6-sol",
5
+ "gpt-5.6-terra",
6
+ "gpt-5.6-luna",
7
+ "gpt-5.5",
8
+ "gpt-5.4",
9
+ "gpt-5.4-mini",
10
+ "gpt-5.2"
11
+ ];
12
+ /** Preserves literal ids and capability values for checked-in Codex catalogs. */
13
+ function defineCodexModels(models) {
14
+ return models;
15
+ }
16
+ const standardReasoningEfforts = [
17
+ {
18
+ reasoningEffort: "low",
19
+ description: "Fast responses with lighter reasoning"
20
+ },
21
+ {
22
+ reasoningEffort: "medium",
23
+ description: "Balances speed and reasoning depth for everyday tasks"
24
+ },
25
+ {
26
+ reasoningEffort: "high",
27
+ description: "Greater reasoning depth for complex problems"
28
+ },
29
+ {
30
+ reasoningEffort: "xhigh",
31
+ description: "Extra high reasoning depth for complex problems"
32
+ }
33
+ ];
34
+ const maxReasoningEffort = {
35
+ reasoningEffort: "max",
36
+ description: "Maximum reasoning depth for hard problems"
37
+ };
38
+ const checkedInModelMetadata = {
39
+ upgrade: null,
40
+ upgradeInfo: null,
41
+ availabilityNux: null,
42
+ hidden: false,
43
+ inputModalities: ["text", "image"],
44
+ supportsPersonality: true,
45
+ additionalSpeedTiers: [],
46
+ serviceTiers: [],
47
+ defaultServiceTier: null
48
+ };
49
+ /**
50
+ * Checked-in snapshot of upstream Codex's visible model catalog
51
+ * (`codex-rs/models-manager/models.json`). Display data for hosts without a
52
+ * live `model/list`; runtime account catalogs remain authoritative because
53
+ * availability differs by account and rollout.
54
+ */
55
+ const CHECKED_IN_CODEX_MODELS = defineCodexModels([
56
+ {
57
+ ...checkedInModelMetadata,
58
+ id: "gpt-5.6-sol",
59
+ model: "gpt-5.6-sol",
60
+ displayName: "GPT-5.6-Sol",
61
+ description: "Fast agentic coding model for responsive everyday work.",
62
+ supportedReasoningEfforts: [
63
+ ...standardReasoningEfforts,
64
+ maxReasoningEffort,
65
+ {
66
+ reasoningEffort: "ultra",
67
+ description: "Maximum reasoning with automatic task delegation"
68
+ }
69
+ ],
70
+ defaultReasoningEffort: "low",
71
+ isDefault: false
72
+ },
73
+ {
74
+ ...checkedInModelMetadata,
75
+ id: "gpt-5.6-terra",
76
+ model: "gpt-5.6-terra",
77
+ displayName: "GPT-5.6-Terra",
78
+ description: "Balanced agentic coding model for everyday work.",
79
+ supportedReasoningEfforts: [
80
+ ...standardReasoningEfforts,
81
+ maxReasoningEffort,
82
+ {
83
+ reasoningEffort: "ultra",
84
+ description: "Maximum reasoning with automatic task delegation"
85
+ }
86
+ ],
87
+ defaultReasoningEffort: "medium",
88
+ isDefault: true
89
+ },
90
+ {
91
+ ...checkedInModelMetadata,
92
+ id: "gpt-5.6-luna",
93
+ model: "gpt-5.6-luna",
94
+ displayName: "GPT-5.6-Luna",
95
+ description: "Agentic coding model tuned for deliberate work.",
96
+ supportedReasoningEfforts: [...standardReasoningEfforts, maxReasoningEffort],
97
+ defaultReasoningEffort: "medium",
98
+ isDefault: false
99
+ },
100
+ {
101
+ ...checkedInModelMetadata,
102
+ id: "gpt-5.5",
103
+ model: "gpt-5.5",
104
+ displayName: "GPT-5.5",
105
+ description: "Previous-generation agentic coding model.",
106
+ supportedReasoningEfforts: standardReasoningEfforts,
107
+ defaultReasoningEffort: "medium",
108
+ isDefault: false
109
+ }
110
+ ]);
111
+ //#endregion
112
+ export { CHECKED_IN_CODEX_MODELS, CODEX_MODEL_IDS, defineCodexModels };
@@ -1,4 +1,4 @@
1
- import { A as CodeBlockLanguage } from "../CodeBlock-CxQXv3C4.js";
1
+ import { A as CodeBlockLanguage } from "../CodeBlock-DUh9WOGo.js";
2
2
 
3
3
  //#region src/utils/structured-code.d.ts
4
4
  interface StructuredCodeDisplay {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-b/react-components",
3
- "version": "0.11.0",
3
+ "version": "0.13.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": {
@@ -50,14 +50,16 @@
50
50
  "@streamdown/mermaid": "^1.0.2",
51
51
  "anser": "^2.3.5",
52
52
  "cloudflare": "^6.5.0",
53
+ "lucide-react": "^1.23.0",
53
54
  "shiki": "^3.23.0",
54
55
  "streamdown": "^2.5.0",
55
- "@mcp-b/design-tokens": "0.11.0"
56
+ "@mcp-b/design-tokens": "0.13.0"
56
57
  },
57
58
  "devDependencies": {
58
59
  "@ai-sdk/react": "^3.0.222",
59
60
  "@cloudflare/shell": "^0.4.1",
60
61
  "@cloudflare/think": "^0.12.1",
62
+ "@cloudflare/voice": "^0.3.3",
61
63
  "@storybook/addon-a11y": "^10.4.6",
62
64
  "@storybook/addon-docs": "^10.4.6",
63
65
  "@storybook/addon-vitest": "^10.4.6",
@@ -84,6 +86,7 @@
84
86
  "@ai-sdk/react": "^3.0.194",
85
87
  "@cloudflare/shell": "^0.4.1",
86
88
  "@cloudflare/think": "^0.12.1",
89
+ "@cloudflare/voice": "^0.3.3",
87
90
  "agents": "^0.17.3",
88
91
  "ai": "^6.0.182",
89
92
  "react": "^19.0.0",
@@ -99,6 +102,9 @@
99
102
  "@cloudflare/think": {
100
103
  "optional": true
101
104
  },
105
+ "@cloudflare/voice": {
106
+ "optional": true
107
+ },
102
108
  "agents": {
103
109
  "optional": true
104
110
  },