@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
@@ -0,0 +1,210 @@
1
+ import { LucideProps } from "lucide-react";
2
+
3
+ //#region src/components/_internal/icons.d.ts
4
+ /**
5
+ * The design system's single icon adapter.
6
+ *
7
+ * Lucide supplies the artwork while this adapter owns the library-wide optical
8
+ * defaults and decorative semantics. Keeping the existing names here lets
9
+ * components share one icon language without coupling their public APIs to an
10
+ * icon vendor.
11
+ */
12
+ type IconProps = Omit<LucideProps, "ref">;
13
+ declare const ChevronRightIcon: ({
14
+ size,
15
+ strokeWidth,
16
+ ...props
17
+ }: IconProps) => import("react").JSX.Element;
18
+ declare const ChevronDownIcon: ({
19
+ size,
20
+ strokeWidth,
21
+ ...props
22
+ }: IconProps) => import("react").JSX.Element;
23
+ declare const ChevronLeftIcon: ({
24
+ size,
25
+ strokeWidth,
26
+ ...props
27
+ }: IconProps) => import("react").JSX.Element;
28
+ declare const CheckIcon: ({
29
+ size,
30
+ strokeWidth,
31
+ ...props
32
+ }: IconProps) => import("react").JSX.Element;
33
+ declare const XIcon: ({
34
+ size,
35
+ strokeWidth,
36
+ ...props
37
+ }: IconProps) => import("react").JSX.Element;
38
+ declare const PencilIcon: ({
39
+ size,
40
+ strokeWidth,
41
+ ...props
42
+ }: IconProps) => import("react").JSX.Element;
43
+ declare const CopyIcon: ({
44
+ size,
45
+ strokeWidth,
46
+ ...props
47
+ }: IconProps) => import("react").JSX.Element;
48
+ declare const EyeIcon: ({
49
+ size,
50
+ strokeWidth,
51
+ ...props
52
+ }: IconProps) => import("react").JSX.Element;
53
+ declare const EyeOffIcon: ({
54
+ size,
55
+ strokeWidth,
56
+ ...props
57
+ }: IconProps) => import("react").JSX.Element;
58
+ declare const FolderIcon: ({
59
+ size,
60
+ strokeWidth,
61
+ ...props
62
+ }: IconProps) => import("react").JSX.Element;
63
+ declare const FolderOpenIcon: ({
64
+ size,
65
+ strokeWidth,
66
+ ...props
67
+ }: IconProps) => import("react").JSX.Element;
68
+ declare const FileIcon: ({
69
+ size,
70
+ strokeWidth,
71
+ ...props
72
+ }: IconProps) => import("react").JSX.Element;
73
+ declare const PaperclipIcon: ({
74
+ size,
75
+ strokeWidth,
76
+ ...props
77
+ }: IconProps) => import("react").JSX.Element;
78
+ declare const MicrophoneIcon: ({
79
+ size,
80
+ strokeWidth,
81
+ ...props
82
+ }: IconProps) => import("react").JSX.Element;
83
+ declare const StopIcon: ({
84
+ size,
85
+ strokeWidth,
86
+ ...props
87
+ }: IconProps) => import("react").JSX.Element;
88
+ declare const PlusIcon: ({
89
+ size,
90
+ strokeWidth,
91
+ ...props
92
+ }: IconProps) => import("react").JSX.Element;
93
+ declare const MinusIcon: ({
94
+ size,
95
+ strokeWidth,
96
+ ...props
97
+ }: IconProps) => import("react").JSX.Element;
98
+ declare const PlayIcon: ({
99
+ size,
100
+ strokeWidth,
101
+ ...props
102
+ }: IconProps) => import("react").JSX.Element;
103
+ declare const PauseIcon: ({
104
+ size,
105
+ strokeWidth,
106
+ ...props
107
+ }: IconProps) => import("react").JSX.Element;
108
+ declare const SquareIcon: ({
109
+ size,
110
+ strokeWidth,
111
+ ...props
112
+ }: IconProps) => import("react").JSX.Element;
113
+ declare const ArrowLeftIcon: ({
114
+ size,
115
+ strokeWidth,
116
+ ...props
117
+ }: IconProps) => import("react").JSX.Element;
118
+ declare const ArrowRightIcon: ({
119
+ size,
120
+ strokeWidth,
121
+ ...props
122
+ }: IconProps) => import("react").JSX.Element;
123
+ declare const ArrowDownIcon: ({
124
+ size,
125
+ strokeWidth,
126
+ ...props
127
+ }: IconProps) => import("react").JSX.Element;
128
+ declare const ArrowUpIcon: ({
129
+ size,
130
+ strokeWidth,
131
+ ...props
132
+ }: IconProps) => import("react").JSX.Element;
133
+ declare const DownloadIcon: ({
134
+ size,
135
+ strokeWidth,
136
+ ...props
137
+ }: IconProps) => import("react").JSX.Element;
138
+ declare const RefreshIcon: ({
139
+ size,
140
+ strokeWidth,
141
+ ...props
142
+ }: IconProps) => import("react").JSX.Element;
143
+ declare const DotIcon: ({
144
+ size,
145
+ strokeWidth,
146
+ ...props
147
+ }: IconProps) => import("react").JSX.Element;
148
+ declare const EllipsisIcon: ({
149
+ size,
150
+ strokeWidth,
151
+ ...props
152
+ }: IconProps) => import("react").JSX.Element;
153
+ declare function SpinnerIcon({
154
+ className,
155
+ size,
156
+ strokeWidth,
157
+ ...props
158
+ }: IconProps): import("react").JSX.Element;
159
+ declare const SearchIcon: ({
160
+ size,
161
+ strokeWidth,
162
+ ...props
163
+ }: IconProps) => import("react").JSX.Element;
164
+ declare const SidebarIcon: ({
165
+ size,
166
+ strokeWidth,
167
+ ...props
168
+ }: IconProps) => import("react").JSX.Element;
169
+ declare const TerminalIcon: ({
170
+ size,
171
+ strokeWidth,
172
+ ...props
173
+ }: IconProps) => import("react").JSX.Element;
174
+ declare const LinkIcon: ({
175
+ size,
176
+ strokeWidth,
177
+ ...props
178
+ }: IconProps) => import("react").JSX.Element;
179
+ declare const WarningIcon: ({
180
+ size,
181
+ strokeWidth,
182
+ ...props
183
+ }: IconProps) => import("react").JSX.Element;
184
+ declare const WrenchIcon: ({
185
+ size,
186
+ strokeWidth,
187
+ ...props
188
+ }: IconProps) => import("react").JSX.Element;
189
+ declare const InfoIcon: ({
190
+ size,
191
+ strokeWidth,
192
+ ...props
193
+ }: IconProps) => import("react").JSX.Element;
194
+ declare const ImageIcon: ({
195
+ size,
196
+ strokeWidth,
197
+ ...props
198
+ }: IconProps) => import("react").JSX.Element;
199
+ declare const MonitorIcon: ({
200
+ size,
201
+ strokeWidth,
202
+ ...props
203
+ }: IconProps) => import("react").JSX.Element;
204
+ declare const MaximizeIcon: ({
205
+ size,
206
+ strokeWidth,
207
+ ...props
208
+ }: IconProps) => import("react").JSX.Element;
209
+ //#endregion
210
+ export { PlusIcon as A, XIcon as B, MicrophoneIcon as C, PauseIcon as D, PaperclipIcon as E, SquareIcon as F, StopIcon as I, TerminalIcon as L, SearchIcon as M, SidebarIcon as N, PencilIcon as O, SpinnerIcon as P, WarningIcon as R, MaximizeIcon as S, MonitorIcon as T, FolderOpenIcon as _, CheckIcon as a, InfoIcon as b, ChevronRightIcon as c, DownloadIcon as d, EllipsisIcon as f, FolderIcon as g, FileIcon as h, ArrowUpIcon as i, RefreshIcon as j, PlayIcon as k, CopyIcon as l, EyeOffIcon as m, ArrowLeftIcon as n, ChevronDownIcon as o, EyeIcon as p, ArrowRightIcon as r, ChevronLeftIcon as s, ArrowDownIcon as t, DotIcon as u, IconProps as v, MinusIcon as w, LinkIcon as x, ImageIcon as y, WrenchIcon as z };
@@ -0,0 +1,18 @@
1
+ //#region src/components/_internal/merge-refs.ts
2
+ function assignRef(ref, value) {
3
+ if (!ref) return;
4
+ if (typeof ref === "function") {
5
+ ref(value);
6
+ return;
7
+ }
8
+ ref.current = value;
9
+ }
10
+ function mergeRefs(...refs) {
11
+ const activeRefs = refs.filter(Boolean);
12
+ if (activeRefs.length === 0) return void 0;
13
+ return (value) => {
14
+ for (const activeRef of activeRefs) assignRef(activeRef, value);
15
+ };
16
+ }
17
+ //#endregion
18
+ export { mergeRefs as n, assignRef as t };
@@ -0,0 +1,14 @@
1
+ /* Accessibility overrides intentionally come after component styles so system
2
+ * colors and keyboard focus remain visible even when a component customizes
3
+ * its normal-mode outline or box shadow. */
4
+ @media (forced-colors: active) {
5
+ :where(:focus-visible) {
6
+ outline: var(--sigvelo-focus-width) solid Highlight;
7
+ outline-offset: var(--sigvelo-focus-offset);
8
+ }
9
+
10
+ :where([data-disabled], :disabled) {
11
+ border-color: GrayText;
12
+ color: GrayText;
13
+ }
14
+ }
@@ -18,13 +18,13 @@
18
18
  display: flex;
19
19
  align-items: center;
20
20
  justify-content: space-between;
21
- gap: 0.75rem;
21
+ gap: var(--sigvelo-recipe-control-gap);
22
22
  inline-size: 100%;
23
- min-block-size: var(--sigvelo-control-height-md);
24
- padding-block: 1rem;
25
- padding-inline: 0.5rem;
26
- font-family: var(--sigvelo-font-sans);
27
- font-size: 0.9375rem;
23
+ min-block-size: var(--sigvelo-recipe-control-height);
24
+ padding-block: var(--sigvelo-spacing-2);
25
+ padding-inline: var(--sigvelo-recipe-control-padding-inline);
26
+ font-family: inherit;
27
+ font-size: var(--sigvelo-recipe-control-font-size);
28
28
  font-weight: var(--sigvelo-font-weight-semibold);
29
29
  text-align: start;
30
30
  color: var(--sigvelo-color-text);
@@ -43,9 +43,7 @@
43
43
 
44
44
  .accordion__trigger:focus-visible {
45
45
  outline: none;
46
- box-shadow:
47
- 0 0 0 2px var(--sigvelo-color-canvas),
48
- 0 0 0 4px var(--sigvelo-color-focus);
46
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
49
47
  }
50
48
 
51
49
  .accordion__trigger:is(:disabled, [data-disabled]) {
@@ -53,69 +51,31 @@
53
51
  cursor: not-allowed;
54
52
  }
55
53
 
56
- .accordion__trigger-text {
57
- flex: 1;
58
- min-inline-size: 0;
59
- overflow-wrap: break-word;
60
- }
61
-
62
- .accordion__icon {
63
- display: flex;
64
- align-items: center;
65
- justify-content: center;
66
- flex: 0 0 auto;
67
- inline-size: 1.25rem;
68
- block-size: 1.25rem;
69
- color: var(--sigvelo-color-text-muted);
70
- transition:
71
- color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
72
- transform var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized);
73
- }
74
-
75
- .accordion__item[data-open] .accordion__icon {
76
- color: var(--sigvelo-color-text);
77
- transform: rotate(180deg);
78
- }
79
-
80
54
  .accordion__panel {
55
+ block-size: var(--accordion-panel-height);
81
56
  overflow: hidden;
82
- font-family: var(--sigvelo-font-sans);
83
- font-size: 0.875rem;
57
+ font-family: inherit;
58
+ font-size: var(--sigvelo-text-sm);
84
59
  line-height: 1.625;
85
60
  color: var(--sigvelo-color-text-muted);
61
+ transition:
62
+ block-size var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized),
63
+ opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
86
64
  }
87
65
 
88
- .accordion__panel[data-open] {
89
- animation: accordion-expand var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized);
90
- }
91
-
66
+ .accordion__panel[data-starting-style],
92
67
  .accordion__panel[data-ending-style] {
93
- animation: accordion-collapse var(--sigvelo-duration-medium) var(--sigvelo-ease-accelerate);
68
+ block-size: 0;
69
+ opacity: 0;
94
70
  }
95
71
 
96
72
  .accordion__panel > * {
97
- padding-block-end: 1rem;
98
- padding-inline: 0.5rem;
73
+ padding-block-end: var(--sigvelo-spacing-4);
74
+ padding-inline: var(--sigvelo-recipe-control-padding-inline);
99
75
  }
100
76
 
101
- @keyframes accordion-expand {
102
- from {
103
- block-size: 0;
104
- opacity: 0;
105
- }
106
- to {
107
- block-size: var(--accordion-panel-height);
108
- opacity: 1;
109
- }
110
- }
111
-
112
- @keyframes accordion-collapse {
113
- from {
114
- block-size: var(--accordion-panel-height);
115
- opacity: 1;
116
- }
117
- to {
118
- block-size: 0;
119
- opacity: 0;
77
+ @media (prefers-reduced-motion: reduce) {
78
+ .accordion__panel {
79
+ transition-duration: var(--sigvelo-duration-reduced);
120
80
  }
121
81
  }
@@ -11,15 +11,15 @@
11
11
  max-width: 36rem;
12
12
  /* Whitespace separates the work log from message prose around it */
13
13
  margin-block: 0.5rem;
14
- font-family: var(--sigvelo-font-sans);
14
+ font-family: inherit;
15
15
  color: var(--sigvelo-color-text);
16
16
  }
17
17
 
18
18
  .activity__trigger {
19
19
  display: flex;
20
20
  align-items: center;
21
- gap: 0.375rem;
22
- padding-block: 0.375rem;
21
+ gap: var(--sigvelo-spacing-1-5);
22
+ padding-block: var(--sigvelo-spacing-1-5);
23
23
  /* The fill bleeds past the text edge via the negative margin, so the label
24
24
  stays flush with the rows below instead of indenting on hover */
25
25
  padding-inline: 0.5rem;
@@ -31,7 +31,7 @@
31
31
  status, not content */
32
32
  color: color-mix(in oklab, var(--sigvelo-color-text-muted), transparent 20%);
33
33
  font-family: inherit;
34
- font-size: 0.8125rem;
34
+ font-size: var(--sigvelo-text-compact);
35
35
  font-weight: var(--sigvelo-font-weight-semibold);
36
36
  text-align: start;
37
37
  cursor: pointer;
@@ -47,9 +47,7 @@
47
47
 
48
48
  .activity__trigger:focus-visible {
49
49
  outline: none;
50
- box-shadow:
51
- 0 0 0 2px var(--sigvelo-color-canvas),
52
- 0 0 0 4px var(--sigvelo-color-focus);
50
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
53
51
  }
54
52
 
55
53
  /* Basis 0 keeps the long nowrap label from inflating the message width
@@ -95,45 +93,30 @@
95
93
  transform: rotate(90deg);
96
94
  }
97
95
 
98
- /* The measured height lives on the base class, NOT gated behind [data-open]:
99
- during close the open rule stops matching before the ending style lands,
100
- height computes to `auto`, and `auto → 0` can't transition — the panel
101
- snaps shut instead of folding. (Base UI's documented panel pattern.) */
102
96
  .activity__content {
103
- height: var(--collapsible-panel-height);
104
- overflow: hidden;
105
97
  /* The panel clips (overflow: hidden), so it must own the gutter the row
106
98
  hover fills bleed into — the list padding puts the text back in line */
107
99
  margin-inline: -0.5rem;
108
100
  /* Standard easing, not emphasized: the expo-out curve front-loads ~60% of
109
101
  the motion into the first frames, which makes collapsing read as content
110
102
  snapping upward instead of folding. */
111
- transition:
112
- height var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
113
- opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
114
- }
115
-
116
- .activity__content[data-starting-style],
117
- .activity__content[data-ending-style] {
118
- height: 0;
119
- opacity: 0;
120
103
  }
121
104
 
122
105
  .activity__list {
123
106
  display: flex;
124
107
  flex-direction: column;
125
- gap: 0.375rem;
108
+ gap: var(--sigvelo-spacing-1-5);
126
109
  /* Unbounded on purpose: the expanded log flows in the conversation scroll;
127
110
  only subsection panels (group text, shell output, code) are height-capped. */
128
- padding-block: 0.125rem 0.5rem;
111
+ padding-block: var(--sigvelo-spacing-0-5) 0.5rem;
129
112
  padding-inline: 0.5rem;
130
113
  }
131
114
 
132
115
  .activity__item {
133
116
  display: flex;
134
117
  align-items: baseline;
135
- gap: 0.375rem;
136
- font-size: 0.8125rem;
118
+ gap: var(--sigvelo-spacing-1-5);
119
+ font-size: var(--sigvelo-text-compact);
137
120
  color: var(--sigvelo-color-text);
138
121
  line-height: 1.6;
139
122
  }
@@ -148,18 +131,18 @@
148
131
  .activity__group-trigger {
149
132
  display: flex;
150
133
  align-items: baseline;
151
- gap: 0.375rem;
134
+ gap: var(--sigvelo-spacing-1-5);
152
135
  /* Negative margins cancel the padding, so the hover fill gets breathing
153
136
  room while the row text stays aligned with its plain siblings */
154
- padding-block: 0.125rem;
137
+ padding-block: var(--sigvelo-spacing-0-5);
155
138
  padding-inline: 0.5rem;
156
- margin-block: -0.125rem;
139
+ margin-block: -var(--sigvelo-spacing-0-5);
157
140
  margin-inline: -0.5rem;
158
141
  background: none;
159
142
  border: none;
160
143
  border-radius: var(--sigvelo-radius-sm);
161
144
  font-family: inherit;
162
- font-size: 0.8125rem;
145
+ font-size: var(--sigvelo-text-compact);
163
146
  font-weight: inherit;
164
147
  color: var(--sigvelo-color-text);
165
148
  line-height: 1.6;
@@ -195,34 +178,18 @@
195
178
 
196
179
  .activity__group-trigger:focus-visible {
197
180
  outline: none;
198
- box-shadow:
199
- 0 0 0 2px var(--sigvelo-color-canvas),
200
- 0 0 0 4px var(--sigvelo-color-focus);
181
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
201
182
  border-radius: var(--sigvelo-radius-sm);
202
183
  }
203
184
 
204
- .activity__group-panel {
205
- height: var(--collapsible-panel-height);
206
- overflow: hidden;
207
- transition:
208
- height var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
209
- opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
210
- }
211
-
212
- .activity__group-panel[data-starting-style],
213
- .activity__group-panel[data-ending-style] {
214
- height: 0;
215
- opacity: 0;
216
- }
217
-
218
185
  .activity__group-panel-inner {
219
- padding-block: 0.375rem 0.5rem;
186
+ padding-block: var(--sigvelo-spacing-1-5) 0.5rem;
220
187
  }
221
188
 
222
189
  /* Prose panels (thought traces): quiet text, bounded like everything else */
223
190
  .activity__group-text {
224
191
  margin: 0;
225
- font-size: 0.8125rem;
192
+ font-size: var(--sigvelo-text-compact);
226
193
  line-height: 1.6;
227
194
  color: var(--sigvelo-color-text-muted);
228
195
  white-space: pre-wrap;
@@ -234,9 +201,7 @@
234
201
  .activity__group-text:focus-visible,
235
202
  .activity__shell-output:focus-visible {
236
203
  outline: none;
237
- box-shadow:
238
- 0 0 0 2px var(--sigvelo-color-canvas),
239
- 0 0 0 4px var(--sigvelo-color-focus);
204
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
240
205
  border-radius: var(--sigvelo-radius-sm);
241
206
  scroll-margin-block: 1rem;
242
207
  }
@@ -248,13 +213,13 @@
248
213
  flex-direction: column;
249
214
  gap: 0.25rem;
250
215
  padding-block: 0.5rem;
251
- padding-inline: 0.75rem;
216
+ padding-inline: var(--sigvelo-spacing-3);
252
217
  background-color: var(--sigvelo-color-neutral-bg-subtle);
253
218
  border-radius: var(--sigvelo-radius-md);
254
219
  }
255
220
 
256
221
  .activity__shell-label {
257
- font-size: 0.6875rem;
222
+ font-size: var(--sigvelo-text-2xs);
258
223
  font-weight: var(--sigvelo-font-weight-semibold);
259
224
  color: var(--sigvelo-color-text-muted);
260
225
  }
@@ -262,7 +227,7 @@
262
227
  .activity__shell-output {
263
228
  margin: 0;
264
229
  font-family: var(--sigvelo-font-mono);
265
- font-size: 0.75rem;
230
+ font-size: var(--sigvelo-text-xs);
266
231
  line-height: 1.6;
267
232
  color: var(--sigvelo-color-text);
268
233
  white-space: pre-wrap;
@@ -274,7 +239,7 @@
274
239
 
275
240
  .activity__shell-status {
276
241
  align-self: flex-end;
277
- font-size: 0.6875rem;
242
+ font-size: var(--sigvelo-text-2xs);
278
243
  color: var(--sigvelo-color-success-text-on-subtle);
279
244
  }
280
245
 
@@ -291,8 +256,8 @@
291
256
  drove it. Compact underline tabs — chrome stays quiet inside the shell. */
292
257
  .activity__browser-tabs .tabs__tab {
293
258
  padding-block: 0.25rem;
294
- padding-inline: 0.125rem;
295
- font-size: 0.75rem;
259
+ padding-inline: var(--sigvelo-spacing-0-5);
260
+ font-size: var(--sigvelo-text-xs);
296
261
  }
297
262
 
298
263
  .activity__browser-tabs .tabs__panel {
@@ -1,11 +1,12 @@
1
1
  .agent-chat {
2
+ --agent-chat-content-max-inline-size: 64rem;
2
3
  position: relative;
3
4
  width: 100%;
4
5
  height: 100%;
5
6
  min-height: 0;
6
7
  background-color: var(--sigvelo-color-surface);
7
8
  color: var(--sigvelo-color-text);
8
- font-family: var(--sigvelo-font-sans);
9
+ font-family: inherit;
9
10
  }
10
11
 
11
12
  .agent-chat__conversation {
@@ -17,6 +18,8 @@
17
18
  --agent-chat-composer-size is set from a ResizeObserver in AgentChat. */
18
19
  .agent-chat__transcript-content {
19
20
  gap: 0.875rem;
21
+ inline-size: min(100%, var(--agent-chat-content-max-inline-size));
22
+ margin-inline: auto;
20
23
  padding-block: 1rem calc(var(--agent-chat-composer-size, 5rem) + 0.5rem);
21
24
  padding-inline: 1rem;
22
25
  }
@@ -41,7 +44,7 @@
41
44
  position: absolute;
42
45
  inset-inline: 0;
43
46
  inset-block-end: 0;
44
- padding: 0.625rem;
47
+ padding: var(--sigvelo-spacing-2-5);
45
48
  padding-block-start: 1.5rem;
46
49
  background: linear-gradient(
47
50
  to top,
@@ -51,7 +54,7 @@
51
54
  }
52
55
 
53
56
  .agent-chat__composer > .prompt-input {
54
- max-inline-size: 64rem;
57
+ inline-size: min(100%, var(--agent-chat-content-max-inline-size));
55
58
  margin-inline: auto;
56
59
  }
57
60
 
@@ -67,13 +70,54 @@
67
70
  .agent-chat__notice {
68
71
  display: flex;
69
72
  align-items: center;
70
- gap: 0.375rem;
73
+ gap: var(--sigvelo-spacing-1-5);
71
74
  margin-block-end: 0.5rem;
72
- font-size: 0.75rem;
75
+ font-size: var(--sigvelo-text-xs);
73
76
  color: var(--sigvelo-color-text-muted);
74
77
  }
75
78
 
79
+ .agent-chat__notice:empty {
80
+ margin-block-end: 0;
81
+ }
82
+
76
83
  .agent-chat__notice[data-tone="danger"],
77
84
  .agent-chat__notice [data-tone="danger"] {
78
85
  color: var(--sigvelo-color-danger-text);
79
86
  }
87
+
88
+ .agent-chat__turn-error {
89
+ display: flex;
90
+ flex: 1;
91
+ flex-wrap: wrap;
92
+ align-items: center;
93
+ justify-content: space-between;
94
+ gap: var(--sigvelo-spacing-3);
95
+ padding: var(--sigvelo-spacing-3);
96
+ color: var(--sigvelo-color-danger-text-on-subtle);
97
+ background-color: var(--sigvelo-color-danger-bg-subtle);
98
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width)
99
+ var(--sigvelo-color-danger-border-muted);
100
+ border-radius: var(--sigvelo-radius-lg);
101
+ }
102
+
103
+ .agent-chat__turn-error-message {
104
+ min-inline-size: min(100%, 16rem);
105
+ flex: 1;
106
+ margin: 0;
107
+ overflow-wrap: anywhere;
108
+ font-size: var(--sigvelo-text-sm);
109
+ line-height: 1.5;
110
+ }
111
+
112
+ .agent-chat__turn-error-actions {
113
+ display: flex;
114
+ flex-wrap: wrap;
115
+ gap: 0.5rem;
116
+ margin-inline-start: auto;
117
+ }
118
+
119
+ @media (forced-colors: active) {
120
+ .agent-chat__turn-error {
121
+ border: var(--sigvelo-focus-width) solid CanvasText;
122
+ }
123
+ }