@mcp-b/react-components 0.20.0 → 0.20.4

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 (156) hide show
  1. package/dist/{AgentChat-CaQaT0LF.d.ts → AgentChat-C-ZyXbJz.d.ts} +3 -0
  2. package/dist/{CodeBlock-Bb-IPBc_.js → CodeBlock-ygtuzqJd.js} +1 -1
  3. package/dist/{FileTree-CUlXfnmc.js → FileTree-CdgfccsM.js} +5 -5
  4. package/dist/{Message-rZEaaD8Q.js → Message-DzuteocT.js} +4 -3
  5. package/dist/{ModelSelector-4GsCWcZV.js → ModelSelector-pecWyOFI.js} +4 -3
  6. package/dist/{ThinkChat-15EhfvYJ.js → ThinkChat-E_HrfH76.js} +15 -6
  7. package/dist/{ThinkChatActivity-CnIJPvV5.d.ts → ThinkChatActivity-CdbL0aoA.d.ts} +1 -1
  8. package/dist/{WorkspaceFileView-CEdArlOT.js → WorkspaceFileView-Bxx4wEzJ.js} +5 -11
  9. package/dist/components/Accordion.js +4 -4
  10. package/dist/components/Activity.js +2 -2
  11. package/dist/components/AgentActivity.js +1 -1
  12. package/dist/components/AgentActivityPreview.js +1 -1
  13. package/dist/components/AgentAttention.js +2 -2
  14. package/dist/components/AgentChat.d.ts +1 -1
  15. package/dist/components/AgentChat.js +8 -6
  16. package/dist/components/AgentConnection.js +2 -2
  17. package/dist/components/AgentMessageParts.js +1 -1
  18. package/dist/components/AgentToolDetail.js +2 -2
  19. package/dist/components/AlertDialog.js +8 -8
  20. package/dist/components/AppTopBar.js +1 -1
  21. package/dist/components/Approval.js +1 -1
  22. package/dist/components/Artifact.js +1 -1
  23. package/dist/components/Autocomplete.js +11 -11
  24. package/dist/components/Avatar.js +6 -6
  25. package/dist/components/BrowserLiveView.js +2 -2
  26. package/dist/components/BrowserReplay.js +4 -7
  27. package/dist/components/BrowserRunPanel.js +2 -2
  28. package/dist/components/Card.js +8 -11
  29. package/dist/components/ChainOfThought.js +2 -2
  30. package/dist/components/ChatGptSignInScreen.js +2 -2
  31. package/dist/components/Checkbox.js +2 -2
  32. package/dist/components/CheckboxGroup.js +7 -7
  33. package/dist/components/Checkpoint.js +1 -1
  34. package/dist/components/CodeBlock.js +1 -1
  35. package/dist/components/CodexModelSelector.js +5 -4
  36. package/dist/components/Collapsible.js +2 -2
  37. package/dist/components/Combobox.js +11 -11
  38. package/dist/components/Commit.js +4 -4
  39. package/dist/components/Context.js +3 -1
  40. package/dist/components/ContextMenu.js +13 -13
  41. package/dist/components/Conversation.js +3 -8
  42. package/dist/components/Dialog.js +6 -6
  43. package/dist/components/EnvironmentVariables.js +3 -3
  44. package/dist/components/Field.js +7 -7
  45. package/dist/components/Fieldset.js +3 -3
  46. package/dist/components/FileTree.js +1 -1
  47. package/dist/components/Form.js +1 -1
  48. package/dist/components/InlineCitation.js +2 -2
  49. package/dist/components/Input.js +1 -1
  50. package/dist/components/Label.js +2 -1
  51. package/dist/components/McpConnectionRequest.js +1 -1
  52. package/dist/components/McpServerPicker.js +3 -3
  53. package/dist/components/MediaPreviewCard.js +5 -4
  54. package/dist/components/Menu.js +17 -17
  55. package/dist/components/Menubar.js +14 -14
  56. package/dist/components/Message.js +1 -1
  57. package/dist/components/MessageScroller.js +1 -1
  58. package/dist/components/Meter.js +5 -5
  59. package/dist/components/ModelSelector.js +1 -1
  60. package/dist/components/NaniteScene.js +2 -1
  61. package/dist/components/NavigationMenu.js +11 -11
  62. package/dist/components/NumberField.js +6 -6
  63. package/dist/components/Plan.js +1 -1
  64. package/dist/components/Popover.js +12 -14
  65. package/dist/components/PreviewCard.js +6 -6
  66. package/dist/components/PricingPage.js +2 -1
  67. package/dist/components/PricingPlanCard.js +1 -1
  68. package/dist/components/Progress.js +4 -4
  69. package/dist/components/PromptInput.js +10 -12
  70. package/dist/components/Queue.js +1 -1
  71. package/dist/components/RadioGroup.js +4 -4
  72. package/dist/components/Reasoning.js +2 -2
  73. package/dist/components/ResizableSidePanel.js +3 -5
  74. package/dist/components/ResponsiveSidebarShell.js +4 -3
  75. package/dist/components/ScrollArea.js +6 -6
  76. package/dist/components/SearchField.js +1 -1
  77. package/dist/components/Select.js +15 -15
  78. package/dist/components/Slider.js +7 -7
  79. package/dist/components/Sources.js +2 -2
  80. package/dist/components/Stepper.js +1 -1
  81. package/dist/components/SubagentRunDetails.js +2 -1
  82. package/dist/components/SubagentRunIndicator.js +1 -1
  83. package/dist/components/SubagentRunSelector.js +1 -1
  84. package/dist/components/Switch.js +3 -3
  85. package/dist/components/Tabs.js +2 -2
  86. package/dist/components/Task.js +2 -2
  87. package/dist/components/Terminal.js +2 -2
  88. package/dist/components/TestResults.js +3 -3
  89. package/dist/components/ThemeModeControl.js +1 -1
  90. package/dist/components/ThinkChat.d.ts +12 -3
  91. package/dist/components/ThinkChat.js +1 -1
  92. package/dist/components/ThinkChatActivity.d.ts +1 -1
  93. package/dist/components/ThinkChatActivity.js +2 -1
  94. package/dist/components/ThinkChatActivitySummary.js +17 -4
  95. package/dist/components/ThinkChatToolPanels.js +10 -5
  96. package/dist/components/ThinkExecutionDetail.js +1 -1
  97. package/dist/components/ThinkExecutionStatus.js +1 -1
  98. package/dist/components/ThinkExecutionWorkbench.js +2 -2
  99. package/dist/components/ThinkFullApp.js +6 -76
  100. package/dist/components/ThinkPendingApproval.js +1 -3
  101. package/dist/components/ThinkRoutine.d.ts +1 -1
  102. package/dist/components/ThinkRoutine.js +2 -1
  103. package/dist/components/ThinkRoutineBrowser.js +9 -9
  104. package/dist/components/ThinkRoutineDetail.js +1 -1
  105. package/dist/components/ThinkRoutineForm.js +1 -1
  106. package/dist/components/ThinkRoutineLibrary.js +1 -1
  107. package/dist/components/ThinkThreadPicker.js +3 -3
  108. package/dist/components/ThinkThreadShell.js +2 -1
  109. package/dist/components/Toast.js +6 -6
  110. package/dist/components/ToggleGroup.js +2 -2
  111. package/dist/components/Tooltip.js +4 -4
  112. package/dist/components/WebPreview.js +1 -1
  113. package/dist/components/WorkspaceBrowser.js +1 -1
  114. package/dist/components/WorkspaceExplorer.js +2 -2
  115. package/dist/components/WorkspaceFileView.js +1 -1
  116. package/dist/components/WorkspaceHeader.js +1 -1
  117. package/dist/components/icons.js +1 -1
  118. package/dist/{copy-button-BtRwhRks.js → copy-button-vo1paUSi.js} +1 -1
  119. package/dist/format-S6uWyoSb.js +38 -0
  120. package/dist/{icons-DKXiSepE.js → icons-DyOM0EJs.js} +2 -1
  121. package/dist/{merge-refs-KlanQB7A.js → merge-refs-DF_7w2x_.js} +1 -1
  122. package/dist/styles/activity-header.css +0 -3
  123. package/dist/styles/activity.css +1 -1
  124. package/dist/styles/agent-attention.css +0 -7
  125. package/dist/styles/agent-connection.css +1 -1
  126. package/dist/styles/app-top-bar.css +2 -5
  127. package/dist/styles/browser-live-view.css +1 -10
  128. package/dist/styles/browser-run-panel.css +2 -11
  129. package/dist/styles/chain-of-thought.css +2 -14
  130. package/dist/styles/checkbox-group.css +0 -6
  131. package/dist/styles/codex-model-selector.css +0 -6
  132. package/dist/styles/commit.css +1 -7
  133. package/dist/styles/environment-variables.css +0 -3
  134. package/dist/styles/file-tree.css +1 -1
  135. package/dist/styles/inline-citation.css +1 -4
  136. package/dist/styles/mcp-server-picker.css +0 -3
  137. package/dist/styles/message.css +0 -6
  138. package/dist/styles/model-selector.css +1 -1
  139. package/dist/styles/prompt-input.css +3 -34
  140. package/dist/styles/queue.css +1 -1
  141. package/dist/styles/recipes.css +2 -2
  142. package/dist/styles/sources.css +1 -4
  143. package/dist/styles/stepper.css +1 -7
  144. package/dist/styles/subagent-run.css +0 -3
  145. package/dist/styles/task.css +1 -1
  146. package/dist/styles/test-results.css +2 -17
  147. package/dist/styles/theme-mode-control.css +1 -1
  148. package/dist/styles/think-execution-status.css +1 -7
  149. package/dist/styles/think-execution-workbench.css +0 -3
  150. package/dist/styles/think-full-app.css +0 -3
  151. package/dist/styles/think-thread-picker.css +2 -14
  152. package/dist/styles/toggle-group.css +1 -1
  153. package/dist/styles/utilities.css +6 -2
  154. package/dist/styles/workspace-explorer.css +1 -1
  155. package/dist/view-transitions-DyUP0lSg.js +77 -0
  156. package/package.json +2 -2
@@ -140,6 +140,8 @@ interface AgentChatProps<MessageT extends UIMessage = UIMessage> {
140
140
  onApprovalResponse?: ChatAddToolApproveResponseFunction;
141
141
  /** Whole upstream Think stub used to resolve paused and durable execution approvals. */
142
142
  thinkStub?: AgentStub<Think>;
143
+ /** Disable approval scanning, automatic responses, cards, and composer controls. */
144
+ approvalsEnabled?: boolean;
143
145
  /** Parent-owned approval policy. Omit to keep AgentChat's session-local mode. */
144
146
  permissionModeControl?: PermissionModeControl;
145
147
  /** Called after a Think approve/reject RPC settles, including when it rejects. */
@@ -216,6 +218,7 @@ declare function AgentChat<MessageT extends UIMessage = UIMessage>({
216
218
  onEditAndResend,
217
219
  onApprovalResponse,
218
220
  thinkStub,
221
+ approvalsEnabled,
219
222
  permissionModeControl,
220
223
  onExecutionSettled,
221
224
  pendingApprovals: durableApprovals,
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
2
  import { Select } from "./components/Select.js";
3
- import { t as CopyButton } from "./copy-button-BtRwhRks.js";
3
+ import { t as CopyButton } from "./copy-button-vo1paUSi.js";
4
4
  import * as React from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  import { createHighlighter } from "shiki";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
- import { C as FolderIcon, S as FileIcon, p as ChevronRightIcon, w as FolderOpenIcon } from "./icons-DKXiSepE.js";
2
+ import { C as FolderIcon, S as FileIcon, p as ChevronRightIcon, w as FolderOpenIcon } from "./icons-DyOM0EJs.js";
3
3
  import { t as NavigationLink } from "./navigation-link-Cob7KBlM.js";
4
4
  import * as React from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -231,7 +231,7 @@ function FileTreeFolder({ className, path, name, level = 0, children, ref, ...pr
231
231
  children: isExpanded ? /* @__PURE__ */ jsx(FolderOpenIcon, {}) : /* @__PURE__ */ jsx(FolderIcon, {})
232
232
  }),
233
233
  /* @__PURE__ */ jsx("span", {
234
- className: "file-tree__name sigvelo-truncate",
234
+ className: "file-tree__name sigvelo-truncate sigvelo-truncate-grow",
235
235
  children: name
236
236
  })
237
237
  ]
@@ -270,7 +270,7 @@ function FileTreeFile({ className, path, name, icon, render, level = 0, ref, ...
270
270
  "aria-hidden": "true",
271
271
  children: icon ?? /* @__PURE__ */ jsx(FileIcon, {})
272
272
  }), /* @__PURE__ */ jsx("span", {
273
- className: "file-tree__name sigvelo-truncate",
273
+ className: "file-tree__name sigvelo-truncate sigvelo-truncate-grow",
274
274
  children: name
275
275
  })]
276
276
  }) : /* @__PURE__ */ jsxs("button", {
@@ -289,7 +289,7 @@ function FileTreeFile({ className, path, name, icon, render, level = 0, ref, ...
289
289
  "aria-hidden": "true",
290
290
  children: icon ?? /* @__PURE__ */ jsx(FileIcon, {})
291
291
  }), /* @__PURE__ */ jsx("span", {
292
- className: "file-tree__name sigvelo-truncate",
292
+ className: "file-tree__name sigvelo-truncate sigvelo-truncate-grow",
293
293
  children: name
294
294
  })]
295
295
  })
@@ -307,7 +307,7 @@ function FileTreeIcon({ className, children, ref, ...props }) {
307
307
  function FileTreeName({ className, children, ref, ...props }) {
308
308
  return /* @__PURE__ */ jsx("span", {
309
309
  ref,
310
- className: cx("file-tree__name", "sigvelo-truncate", className),
310
+ className: cx("file-tree__name", "sigvelo-truncate", "sigvelo-truncate-grow", className),
311
311
  ...props,
312
312
  children
313
313
  });
@@ -1,9 +1,10 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
- import { S as FileIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "./icons-DKXiSepE.js";
2
+ import { S as FileIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "./icons-DyOM0EJs.js";
3
3
  import { Button } from "./components/Button.js";
4
4
  import { Tooltip } from "./components/Tooltip.js";
5
5
  import { c as useWorkspaceNavigationContext, r as resolveWorkspaceLink, t as WorkspaceFileLink } from "./WorkspaceLink-BYYeTQLf.js";
6
6
  import { t as AttachmentPreview } from "./attachment-preview-DIs50Q0h.js";
7
+ import { n as clamp } from "./format-S6uWyoSb.js";
7
8
  import * as React from "react";
8
9
  import { jsx, jsxs } from "react/jsx-runtime";
9
10
  import { cjk } from "@streamdown/cjk";
@@ -185,7 +186,7 @@ function MessageAttachment({ part, className, ...props }) {
185
186
  download: part.filename,
186
187
  ...props,
187
188
  children: [/* @__PURE__ */ jsx(FileIcon, { className: "message__attachment-icon" }), /* @__PURE__ */ jsx("span", {
188
- className: "message__attachment-name",
189
+ className: "message__attachment-name sigvelo-truncate",
189
190
  children: name
190
191
  })]
191
192
  });
@@ -284,7 +285,7 @@ function MessageBranch({ className, branchCount, defaultBranch = 0, branch, onBr
284
285
  function MessageBranchContent({ className, children, ref, ...props }) {
285
286
  const { branchIndex } = useMessageBranch("MessageBranchContent");
286
287
  const items = React.Children.toArray(children);
287
- const safeIndex = items.length === 0 ? 0 : Math.min(Math.max(branchIndex, 0), items.length - 1);
288
+ const safeIndex = items.length === 0 ? 0 : clamp(branchIndex, 0, items.length - 1);
288
289
  return /* @__PURE__ */ jsx("div", {
289
290
  ref,
290
291
  className: cx("message__branch-content", className),
@@ -1,7 +1,8 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
- import { W as SearchIcon, d as ChevronDownIcon } from "./icons-DKXiSepE.js";
2
+ import { W as SearchIcon, d as ChevronDownIcon } from "./icons-DyOM0EJs.js";
3
3
  import { Button } from "./components/Button.js";
4
4
  import { Dialog } from "./components/Dialog.js";
5
+ import { i as titleCase } from "./format-S6uWyoSb.js";
5
6
  import { Separator } from "./components/Separator.js";
6
7
  import { Input } from "./components/Input.js";
7
8
  import * as React from "react";
@@ -152,7 +153,7 @@ function getCloudflareModelProvider(modelId) {
152
153
  function formatCloudflareModelProvider(provider) {
153
154
  const normalized = provider.trim().toLowerCase();
154
155
  if (cloudflareModelProviderLabels[normalized]) return cloudflareModelProviderLabels[normalized];
155
- return normalized.split(/[-_]/).filter(Boolean).map((word) => word[0].toUpperCase() + word.slice(1)).join(" ");
156
+ return titleCase(normalized);
156
157
  }
157
158
  function normalizeCloudflareModelSelectorModels(models) {
158
159
  const seen = /* @__PURE__ */ new Set();
@@ -477,7 +478,7 @@ function ModelSelectorLogoGroup({ className, children, ref, ...props }) {
477
478
  function ModelSelectorName({ className, children, ref, ...props }) {
478
479
  return /* @__PURE__ */ jsx("span", {
479
480
  ref,
480
- className: cx("model-selector__name", "sigvelo-truncate", className),
481
+ className: cx("model-selector__name", "sigvelo-truncate", "sigvelo-truncate-grow", className),
481
482
  ...props,
482
483
  children
483
484
  });
@@ -45,9 +45,12 @@ function thinkPendingExecutionApprovalsQueryOptions(stub, sourceKey) {
45
45
  staleTime: 5e3
46
46
  });
47
47
  }
48
- function useThinkPendingExecutionApprovals(stub, sourceKey, refreshSignal) {
48
+ function useThinkPendingExecutionApprovals(stub, sourceKey, refreshSignal, enabled = true) {
49
49
  const queryClient = useQueryClient();
50
- const approvalsQuery = useQuery(thinkPendingExecutionApprovalsQueryOptions(stub, sourceKey));
50
+ const approvalsQuery = useQuery({
51
+ ...thinkPendingExecutionApprovalsQueryOptions(stub, sourceKey),
52
+ enabled
53
+ });
51
54
  const refreshState = React.useRef({
52
55
  sourceKey,
53
56
  observedSignal: refreshSignal,
@@ -55,15 +58,20 @@ function useThinkPendingExecutionApprovals(stub, sourceKey, refreshSignal) {
55
58
  });
56
59
  const refetch = React.useEffectEvent(() => approvalsQuery.refetch());
57
60
  const refreshPendingApprovals = React.useCallback(async () => {
61
+ if (!enabled) return;
58
62
  const filters = {
59
63
  queryKey: thinkPendingExecutionApprovalsQueryKey(sourceKey),
60
64
  exact: true
61
65
  };
62
66
  await queryClient.cancelQueries(filters);
63
67
  await queryClient.invalidateQueries(filters);
64
- }, [queryClient, sourceKey]);
68
+ }, [
69
+ enabled,
70
+ queryClient,
71
+ sourceKey
72
+ ]);
65
73
  React.useEffect(() => {
66
- if (refreshState.current.sourceKey !== sourceKey) {
74
+ if (!enabled || refreshState.current.sourceKey !== sourceKey) {
67
75
  refreshState.current = {
68
76
  sourceKey,
69
77
  observedSignal: refreshSignal,
@@ -80,6 +88,7 @@ function useThinkPendingExecutionApprovals(stub, sourceKey, refreshSignal) {
80
88
  refetch();
81
89
  }, [
82
90
  approvalsQuery.isFetching,
91
+ enabled,
83
92
  refreshSignal,
84
93
  sourceKey
85
94
  ]);
@@ -122,7 +131,7 @@ function ThinkChatProvider({ agentTools, chat, children }) {
122
131
  * </QueryClientProvider>
123
132
  * ```
124
133
  */
125
- function ThinkChatRoot({ agent: agentOption, name, sourceKey, children }) {
134
+ function ThinkChatRoot({ agent: agentOption, approvalsEnabled = true, name, sourceKey, children }) {
126
135
  const agent = useAgent(typeof agentOption === "string" ? {
127
136
  agent: agentOption,
128
137
  name
@@ -133,7 +142,7 @@ function ThinkChatRoot({ agent: agentOption, name, sourceKey, children }) {
133
142
  const chat = useAgentChat({ agent });
134
143
  const agentTools = useAgentToolEvents({ agent });
135
144
  const agentIdentity = JSON.stringify(agent.path);
136
- const approvals = useThinkPendingExecutionApprovals(agent.stub, sourceKey, `${chat.messages.length}:${chat.status}`);
145
+ const approvals = useThinkPendingExecutionApprovals(agent.stub, sourceKey, `${chat.messages.length}:${chat.status}`, approvalsEnabled);
137
146
  const resetAgentTools = React.useEffectEvent(() => agentTools.resetLocalState());
138
147
  React.useEffect(() => {
139
148
  resetAgentTools();
@@ -1,5 +1,5 @@
1
1
  import { i as AgentMessageRenderPartContext } from "./AgentMessageParts-CyD2UB3V.js";
2
- import { r as AgentChatProps } from "./AgentChat-CaQaT0LF.js";
2
+ import { r as AgentChatProps } from "./AgentChat-C-ZyXbJz.js";
3
3
  import { l as ThinkChatPart } from "./ThinkChatToolParts-CSzVwMXf.js";
4
4
  import * as React from "react";
5
5
  import { DynamicToolUIPart, ToolUIPart, UIMessage } from "ai";
@@ -1,9 +1,10 @@
1
- import { Q as WarningIcon, b as EyeIcon, et as XIcon, k as MaximizeIcon, m as CodeIcon, u as CheckIcon, v as DownloadIcon } from "./icons-DKXiSepE.js";
1
+ import { Q as WarningIcon, b as EyeIcon, et as XIcon, k as MaximizeIcon, m as CodeIcon, u as CheckIcon, v as DownloadIcon } from "./icons-DyOM0EJs.js";
2
2
  import { t as NavigationLink } from "./navigation-link-Cob7KBlM.js";
3
3
  import { buttonVariants } from "./components/Button.js";
4
4
  import { c as useWorkspaceNavigationContext, s as useWorkspaceNavigationRestoration } from "./WorkspaceLink-BYYeTQLf.js";
5
- import { f as MessageResponse, m as createWorkspaceRehypePlugins } from "./Message-rZEaaD8Q.js";
6
- import { a as CodeBlockCopyButton, i as CodeBlockContent, r as CodeBlockContainer, t as CodeBlock } from "./CodeBlock-Bb-IPBc_.js";
5
+ import { r as formatClock } from "./format-S6uWyoSb.js";
6
+ import { f as MessageResponse, m as createWorkspaceRehypePlugins } from "./Message-DzuteocT.js";
7
+ import { a as CodeBlockCopyButton, i as CodeBlockContent, r as CodeBlockContainer, t as CodeBlock } from "./CodeBlock-ygtuzqJd.js";
7
8
  import { AppTopBar } from "./components/AppTopBar.js";
8
9
  import { inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceSkillPath, parseWorkspaceSkill } from "./components/WorkspaceFile.js";
9
10
  import { WorkspaceHeader } from "./components/WorkspaceHeader.js";
@@ -160,16 +161,9 @@ function formatBytes(size) {
160
161
  }
161
162
  return `${value >= 10 ? value.toFixed(0) : value.toFixed(1)} ${unit}`;
162
163
  }
163
- function formatDuration(duration) {
164
- const seconds = Math.max(0, Math.round(duration));
165
- const hours = Math.floor(seconds / 3600);
166
- const minutes = Math.floor(seconds % 3600 / 60);
167
- const remainder = seconds % 60;
168
- return hours > 0 ? `${hours}:${String(minutes).padStart(2, "0")}:${String(remainder).padStart(2, "0")}` : `${minutes}:${String(remainder).padStart(2, "0")}`;
169
- }
170
164
  function WorkspaceMediaDetails({ mimeType, size, dimensions, dimensionsPending = false, duration, durationPending = false, transcriptUrl }) {
171
165
  const dimensionValue = dimensionsPending ? "Loading…" : dimensions ? `${dimensions.width} × ${dimensions.height} px` : null;
172
- const durationValue = durationPending ? "Loading…" : duration !== void 0 && duration !== null ? formatDuration(duration) : null;
166
+ const durationValue = durationPending ? "Loading…" : duration !== void 0 && duration !== null ? formatClock(Math.round(duration)) : null;
173
167
  return /* @__PURE__ */ jsxs("figcaption", {
174
168
  className: "workspace-explorer__media-caption",
175
169
  children: [/* @__PURE__ */ jsxs("dl", {
@@ -23,7 +23,7 @@ import { jsx } from "react/jsx-runtime";
23
23
  * @see {@link https://base-ui.com/react/components/accordion | Base UI Accordion}
24
24
  */
25
25
  function AccordionRoot({ className, ref, ...props }) {
26
- const classes = mergeBaseClassName(["accordion"].filter(Boolean).join(" "), className);
26
+ const classes = mergeBaseClassName("accordion", className);
27
27
  return /* @__PURE__ */ jsx(Accordion$1.Root, {
28
28
  ref,
29
29
  "data-slot": "accordion",
@@ -35,7 +35,7 @@ function AccordionRoot({ className, ref, ...props }) {
35
35
  * A single item within an Accordion.
36
36
  */
37
37
  function AccordionItem({ className, ref, ...props }) {
38
- const classes = mergeBaseClassName(["accordion__item"].filter(Boolean).join(" "), className);
38
+ const classes = mergeBaseClassName("accordion__item", className);
39
39
  return /* @__PURE__ */ jsx(Accordion$1.Item, {
40
40
  ref,
41
41
  "data-slot": "accordion-item",
@@ -44,7 +44,7 @@ function AccordionItem({ className, ref, ...props }) {
44
44
  });
45
45
  }
46
46
  function AccordionHeader({ className, ref, ...props }) {
47
- const classes = mergeBaseClassName(["accordion__header"].filter(Boolean).join(" "), className);
47
+ const classes = mergeBaseClassName("accordion__header", className);
48
48
  return /* @__PURE__ */ jsx(Accordion$1.Header, {
49
49
  ref,
50
50
  "data-slot": "accordion-header",
@@ -59,7 +59,7 @@ function AccordionHeader({ className, ref, ...props }) {
59
59
  * The clickable trigger button within an AccordionItem.
60
60
  */
61
61
  function AccordionTrigger({ className, ref, ...props }) {
62
- const classes = mergeBaseClassName(["accordion__trigger"].filter(Boolean).join(" "), className);
62
+ const classes = mergeBaseClassName("accordion__trigger", className);
63
63
  return /* @__PURE__ */ jsx(Accordion$1.Trigger, {
64
64
  ref,
65
65
  "data-slot": "accordion-trigger",
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "./Collapsible.js";
3
- import { p as ChevronRightIcon } from "../icons-DKXiSepE.js";
3
+ import { p as ChevronRightIcon } from "../icons-DyOM0EJs.js";
4
4
  import "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/components/Activity.tsx
@@ -52,7 +52,7 @@ function ActivityHeader({ className, icon, isStreaming = false, label = "Working
52
52
  children: icon
53
53
  }) : null,
54
54
  /* @__PURE__ */ jsx("span", {
55
- className: "activity__header-label",
55
+ className: "activity__header-label sigvelo-truncate",
56
56
  children: label
57
57
  }),
58
58
  trailing
@@ -1,4 +1,4 @@
1
- import { $ as WrenchIcon, D as InfoIcon, O as LinkIcon, P as MonitorIcon, Q as WarningIcon, S as FileIcon, W as SearchIcon, X as TerminalIcon, z as PencilIcon } from "../icons-DKXiSepE.js";
1
+ import { $ as WrenchIcon, D as InfoIcon, O as LinkIcon, P as MonitorIcon, Q as WarningIcon, S as FileIcon, W as SearchIcon, X as TerminalIcon, z as PencilIcon } from "../icons-DyOM0EJs.js";
2
2
  import * as React from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/AgentActivity.tsx
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { A as McpIcon, K as SpinnerIcon, Q as WarningIcon, S as FileIcon, et as XIcon } from "../icons-DKXiSepE.js";
2
+ import { A as McpIcon, K as SpinnerIcon, Q as WarningIcon, S as FileIcon, et as XIcon } from "../icons-DyOM0EJs.js";
3
3
  import { ActivityHeader } from "./Activity.js";
4
4
  import { AgentActivityFavicon, AgentActivityIcon } from "./AgentActivity.js";
5
5
  import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
@@ -23,10 +23,10 @@ function AgentAttentionHeading({ description, icon, title }) {
23
23
  }) : null, /* @__PURE__ */ jsxs("span", {
24
24
  className: "agent-attention__text",
25
25
  children: [/* @__PURE__ */ jsx("span", {
26
- className: "agent-attention__title",
26
+ className: "agent-attention__title sigvelo-truncate",
27
27
  children: title
28
28
  }), description ? /* @__PURE__ */ jsx("span", {
29
- className: "agent-attention__description",
29
+ className: "agent-attention__description sigvelo-truncate",
30
30
  children: description
31
31
  }) : null]
32
32
  })] });
@@ -1,2 +1,2 @@
1
- import { a as PermissionModeControl, i as AgentChatRenderMessageContext, n as AgentChatComposerDraft, r as AgentChatProps, t as AgentChat } from "../AgentChat-CaQaT0LF.js";
1
+ import { a as PermissionModeControl, i as AgentChatRenderMessageContext, n as AgentChatComposerDraft, r as AgentChatProps, t as AgentChat } from "../AgentChat-C-ZyXbJz.js";
2
2
  export { AgentChat, AgentChatComposerDraft, AgentChatProps, AgentChatRenderMessageContext, PermissionModeControl };
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { H as QueueIcon, I as MoveToFrontIcon, U as RefreshIcon, V as PlusIcon, Z as TrashIcon, z as PencilIcon } from "../icons-DKXiSepE.js";
3
- import { n as MessageAction, r as MessageActions, t as Message } from "../Message-rZEaaD8Q.js";
2
+ import { H as QueueIcon, I as MoveToFrontIcon, U as RefreshIcon, V as PlusIcon, Z as TrashIcon, z as PencilIcon } from "../icons-DyOM0EJs.js";
3
+ import { n as MessageAction, r as MessageActions, t as Message } from "../Message-DzuteocT.js";
4
4
  import { AgentMessageParts } from "./AgentMessageParts.js";
5
5
  import { Context, ContextContent, ContextContentBody, ContextContentHeader, ContextTrigger, getContextUsage, getContextUsedTokens } from "./Context.js";
6
6
  import { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport } from "./MessageScroller.js";
@@ -10,7 +10,7 @@ import { Marker, MarkerContent } from "./Marker.js";
10
10
  import { Menu } from "./Menu.js";
11
11
  import { TransitionSurface } from "./TransitionSurface.js";
12
12
  import { PromptInput, PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger, PromptInputApproval, PromptInputAttachments, PromptInputBody, PromptInputButton, PromptInputCommandComposer, PromptInputContextSelector, PromptInputDictation, PromptInputFooter, PromptInputHeader, PromptInputPermissionSelector, PromptInputReferences, PromptInputSubmit, PromptInputTextarea, PromptInputTools, getApprovalRequestId, getApprovalStateKey, getPendingToolApprovals, usePromptInputAttachments } from "./PromptInput.js";
13
- import { t as CopyButton } from "../copy-button-BtRwhRks.js";
13
+ import { t as CopyButton } from "../copy-button-vo1paUSi.js";
14
14
  import * as React from "react";
15
15
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
16
16
  import { isCompactionMessage } from "agents/experimental/memory/utils";
@@ -108,7 +108,7 @@ function getEditableUserText(message) {
108
108
  * transport. Product code that talks to a Cloudflare Think agent should render
109
109
  * `ThinkChat`; use this directly only for plain AI SDK or read-only messages.
110
110
  */
111
- function AgentChat({ className, messages, status = "ready", onSubmit, showComposer = onSubmit !== void 0, onStop, placeholder = "Ask anything...", disabled, emptyState, composerHeader, composerTools, slashCommands, mentionCommands, contextSelector, composerEndTools, voiceInput, beforeVoiceStart, composerAddMenuItems, notice, onRegenerate, onEditAndResend, onApprovalResponse, thinkStub, permissionModeControl, onExecutionSettled, pendingApprovals: durableApprovals = EMPTY_PENDING_APPROVALS, contextWindow, renderPart, renderMessageAfter, ref }) {
111
+ function AgentChat({ className, messages, status = "ready", onSubmit, showComposer = onSubmit !== void 0, onStop, placeholder = "Ask anything...", disabled, emptyState, composerHeader, composerTools, slashCommands, mentionCommands, contextSelector, composerEndTools, voiceInput, beforeVoiceStart, composerAddMenuItems, notice, onRegenerate, onEditAndResend, onApprovalResponse, thinkStub, approvalsEnabled = true, permissionModeControl, onExecutionSettled, pendingApprovals: durableApprovals = EMPTY_PENDING_APPROVALS, contextWindow, renderPart, renderMessageAfter, ref }) {
112
112
  const [copyAnnouncement, setCopyAnnouncement] = React.useState("");
113
113
  const [composerDraft, setComposerDraft] = React.useState("");
114
114
  const [composerReferences, setComposerReferences] = React.useState([]);
@@ -214,19 +214,21 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
214
214
  }, [thinkStub]);
215
215
  const skippedApprovalIdSet = React.useMemo(() => new Set(skippedApprovalIds), [skippedApprovalIds]);
216
216
  const pendingApprovalItems = React.useMemo(() => {
217
+ if (!approvalsEnabled) return [];
217
218
  return [...getPendingToolApprovals(messages, { pausedExecutions: Boolean(thinkStub) }).filter((part) => {
218
219
  if (part.state === "approval-requested" && !onApprovalResponse) return false;
219
220
  const id = getApprovalStateKey(part);
220
221
  return Boolean(id) && !skippedApprovalIdSet.has(id);
221
222
  }).map((part) => ({ part })), ...thinkStub ? durableApprovals.filter((approval) => approval.source === "action" && !skippedApprovalIdSet.has(approval.executionId)).map((approval) => ({ approval })) : []];
222
223
  }, [
224
+ approvalsEnabled,
223
225
  durableApprovals,
224
226
  messages,
225
227
  onApprovalResponse,
226
228
  skippedApprovalIdSet,
227
229
  thinkStub
228
230
  ]);
229
- const approvalsWired = Boolean(onApprovalResponse || thinkStub);
231
+ const approvalsWired = approvalsEnabled && Boolean(onApprovalResponse || thinkStub);
230
232
  const autoApprovedIds = React.useRef({
231
233
  thinkStub,
232
234
  ids: /* @__PURE__ */ new Set()
@@ -397,7 +399,7 @@ function AgentChat({ className, messages, status = "ready", onSubmit, showCompos
397
399
  children: /* @__PURE__ */ jsx(QueueIcon, {})
398
400
  }),
399
401
  /* @__PURE__ */ jsx("span", {
400
- className: "agent-chat__queued-text sigvelo-truncate",
402
+ className: "agent-chat__queued-text sigvelo-truncate sigvelo-truncate-grow",
401
403
  children: messageText
402
404
  }),
403
405
  /* @__PURE__ */ jsxs("button", {
@@ -1,10 +1,10 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { O as LinkIcon } from "../icons-DKXiSepE.js";
2
+ import { O as LinkIcon } from "../icons-DyOM0EJs.js";
3
3
  import { Button } from "./Button.js";
4
4
  import { Popover } from "./Popover.js";
5
5
  import { Field } from "./Field.js";
6
6
  import { Form } from "./Form.js";
7
- import { a as CodeBlockCopyButton, i as CodeBlockContent, n as CodeBlockActions, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock } from "../CodeBlock-Bb-IPBc_.js";
7
+ import { a as CodeBlockCopyButton, i as CodeBlockContent, n as CodeBlockActions, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock } from "../CodeBlock-ygtuzqJd.js";
8
8
  import { CUSTOM_MCP_SERVER_CARD } from "../utils/mcp-server-catalog.js";
9
9
  import * as React from "react";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- import { d as MessageContent, f as MessageResponse, i as MessageAttachment } from "../Message-rZEaaD8Q.js";
1
+ import { d as MessageContent, f as MessageResponse, i as MessageAttachment } from "../Message-DzuteocT.js";
2
2
  import { Reasoning, ReasoningContent, ReasoningTrigger } from "./Reasoning.js";
3
3
  import { Source, Sources, SourcesContent, SourcesTrigger } from "./Sources.js";
4
4
  import { ToolInvocation } from "./ToolInvocation.js";
@@ -1,11 +1,11 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { r as ArrowLeftIcon } from "../icons-DKXiSepE.js";
2
+ import { r as ArrowLeftIcon } from "../icons-DyOM0EJs.js";
3
3
  import { TransitionSurface } from "./TransitionSurface.js";
4
4
  import { AppTopBar } from "./AppTopBar.js";
5
5
  import { NaniteMark } from "./NaniteScene.js";
6
6
  import { SubagentRunIndicator, getSubagentRunName } from "./SubagentRunIndicator.js";
7
7
  import { SubagentRunMilestone, SubagentRunMilestones, SubagentRunProgress } from "./SubagentRunDetails.js";
8
- import { t as ThinkChat } from "../ThinkChat-15EhfvYJ.js";
8
+ import { t as ThinkChat } from "../ThinkChat-E_HrfH76.js";
9
9
  import * as React from "react";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
11
  import { useAgentChat } from "@cloudflare/think/react";
@@ -33,7 +33,7 @@ import { AlertDialog as AlertDialog$1 } from "@base-ui/react/alert-dialog";
33
33
  * @see {@link https://base-ui.com/react/components/alert-dialog | Base UI Alert Dialog}
34
34
  */
35
35
  function AlertDialogTrigger({ className, ref, ...props }) {
36
- const classes = mergeBaseClassName(["alert-dialog__trigger"].filter(Boolean).join(" "), className);
36
+ const classes = mergeBaseClassName("alert-dialog__trigger", className);
37
37
  return /* @__PURE__ */ jsx(AlertDialog$1.Trigger, {
38
38
  ref,
39
39
  "data-slot": "alert-dialog-trigger",
@@ -42,7 +42,7 @@ function AlertDialogTrigger({ className, ref, ...props }) {
42
42
  });
43
43
  }
44
44
  function AlertDialogBackdrop({ className, ref, ...props }) {
45
- const classes = mergeBaseClassName(["alert-dialog__backdrop", "base-ui-backdrop"].filter(Boolean).join(" "), className);
45
+ const classes = mergeBaseClassName("alert-dialog__backdrop base-ui-backdrop", className);
46
46
  return /* @__PURE__ */ jsx(AlertDialog$1.Backdrop, {
47
47
  ref,
48
48
  "data-slot": "alert-dialog-overlay",
@@ -51,7 +51,7 @@ function AlertDialogBackdrop({ className, ref, ...props }) {
51
51
  });
52
52
  }
53
53
  function AlertDialogViewport({ className, ref, ...props }) {
54
- const classes = mergeBaseClassName(["alert-dialog__viewport"].filter(Boolean).join(" "), className);
54
+ const classes = mergeBaseClassName("alert-dialog__viewport", className);
55
55
  return /* @__PURE__ */ jsx(AlertDialog$1.Viewport, {
56
56
  ref,
57
57
  "data-slot": "alert-dialog-viewport",
@@ -76,7 +76,7 @@ function AlertDialogHeader({ className, ref, ...props }) {
76
76
  return /* @__PURE__ */ jsx("div", {
77
77
  ref,
78
78
  "data-slot": "alert-dialog-header",
79
- className: mergeBaseClassName(["alert-dialog__header"].filter(Boolean).join(" "), className),
79
+ className: mergeBaseClassName("alert-dialog__header", className),
80
80
  ...props
81
81
  });
82
82
  }
@@ -84,7 +84,7 @@ function AlertDialogFooter({ className, ref, ...props }) {
84
84
  return /* @__PURE__ */ jsx("div", {
85
85
  ref,
86
86
  "data-slot": "alert-dialog-footer",
87
- className: mergeBaseClassName(["alert-dialog__footer"].filter(Boolean).join(" "), className),
87
+ className: mergeBaseClassName("alert-dialog__footer", className),
88
88
  ...props
89
89
  });
90
90
  }
@@ -92,12 +92,12 @@ function AlertDialogMedia({ className, ref, ...props }) {
92
92
  return /* @__PURE__ */ jsx("div", {
93
93
  ref,
94
94
  "data-slot": "alert-dialog-media",
95
- className: mergeBaseClassName(["alert-dialog__media"].filter(Boolean).join(" "), className),
95
+ className: mergeBaseClassName("alert-dialog__media", className),
96
96
  ...props
97
97
  });
98
98
  }
99
99
  function AlertDialogTitle({ className, ref, ...props }) {
100
- const classes = mergeBaseClassName(["alert-dialog__title"].filter(Boolean).join(" "), className);
100
+ const classes = mergeBaseClassName("alert-dialog__title", className);
101
101
  return /* @__PURE__ */ jsx(AlertDialog$1.Title, {
102
102
  ref,
103
103
  "data-slot": "alert-dialog-title",
@@ -106,7 +106,7 @@ function AlertDialogTitle({ className, ref, ...props }) {
106
106
  });
107
107
  }
108
108
  function AlertDialogDescription({ className, ref, ...props }) {
109
- const classes = mergeBaseClassName(["alert-dialog__description"].filter(Boolean).join(" "), className);
109
+ const classes = mergeBaseClassName("alert-dialog__description", className);
110
110
  return /* @__PURE__ */ jsx(AlertDialog$1.Description, {
111
111
  ref,
112
112
  "data-slot": "alert-dialog-description",
@@ -31,7 +31,7 @@ function AppTopBarTitle({ className, render, ref, ...props }) {
31
31
  props: {
32
32
  ...props,
33
33
  "data-slot": "app-top-bar-title",
34
- className: cx("app-top-bar__title", className)
34
+ className: cx("app-top-bar__title", "sigvelo-truncate", className)
35
35
  }
36
36
  });
37
37
  }
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { z as PencilIcon } from "../icons-DKXiSepE.js";
2
+ import { z as PencilIcon } from "../icons-DyOM0EJs.js";
3
3
  import { Button } from "./Button.js";
4
4
  import * as React from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { et as XIcon } from "../icons-DKXiSepE.js";
2
+ import { et as XIcon } from "../icons-DyOM0EJs.js";
3
3
  import { Button } from "./Button.js";
4
4
  import { Tooltip } from "./Tooltip.js";
5
5
  import "react";
@@ -4,7 +4,7 @@ import { jsx } from "react/jsx-runtime";
4
4
  import { Autocomplete as Autocomplete$1 } from "@base-ui/react/autocomplete";
5
5
  //#region src/components/Autocomplete.tsx
6
6
  function Input({ className, ref, ...props }) {
7
- const classes = mergeBaseClassName(["autocomplete__input"].filter(Boolean).join(" "), className);
7
+ const classes = mergeBaseClassName("autocomplete__input", className);
8
8
  return /* @__PURE__ */ jsx(Autocomplete$1.Input, {
9
9
  ref,
10
10
  "data-slot": "autocomplete-input",
@@ -13,7 +13,7 @@ function Input({ className, ref, ...props }) {
13
13
  });
14
14
  }
15
15
  function Trigger({ className, ref, ...props }) {
16
- const classes = mergeBaseClassName(["autocomplete__trigger"].filter(Boolean).join(" "), className);
16
+ const classes = mergeBaseClassName("autocomplete__trigger", className);
17
17
  return /* @__PURE__ */ jsx(Autocomplete$1.Trigger, {
18
18
  ref,
19
19
  "data-slot": "autocomplete-trigger",
@@ -22,7 +22,7 @@ function Trigger({ className, ref, ...props }) {
22
22
  });
23
23
  }
24
24
  function Clear({ className, ref, ...props }) {
25
- const classes = mergeBaseClassName(["autocomplete__clear"].filter(Boolean).join(" "), className);
25
+ const classes = mergeBaseClassName("autocomplete__clear", className);
26
26
  return /* @__PURE__ */ jsx(Autocomplete$1.Clear, {
27
27
  ref,
28
28
  "data-slot": "autocomplete-clear",
@@ -31,7 +31,7 @@ function Clear({ className, ref, ...props }) {
31
31
  });
32
32
  }
33
33
  function Positioner({ className, ref, ...props }) {
34
- const classes = mergeBaseClassName(["autocomplete__positioner", "base-ui-positioner"].filter(Boolean).join(" "), className);
34
+ const classes = mergeBaseClassName("autocomplete__positioner base-ui-positioner", className);
35
35
  return /* @__PURE__ */ jsx(Autocomplete$1.Positioner, {
36
36
  ref,
37
37
  "data-slot": "autocomplete-positioner",
@@ -40,7 +40,7 @@ function Positioner({ className, ref, ...props }) {
40
40
  });
41
41
  }
42
42
  function Popup({ className, ref, ...props }) {
43
- const classes = mergeBaseClassName(["autocomplete__popup", "base-ui-popup"].filter(Boolean).join(" "), className);
43
+ const classes = mergeBaseClassName("autocomplete__popup base-ui-popup", className);
44
44
  return /* @__PURE__ */ jsx(Autocomplete$1.Popup, {
45
45
  ref,
46
46
  "data-slot": "autocomplete-content",
@@ -49,7 +49,7 @@ function Popup({ className, ref, ...props }) {
49
49
  });
50
50
  }
51
51
  function List({ className, ref, ...props }) {
52
- const classes = mergeBaseClassName(["autocomplete__list"].filter(Boolean).join(" "), className);
52
+ const classes = mergeBaseClassName("autocomplete__list", className);
53
53
  return /* @__PURE__ */ jsx(Autocomplete$1.List, {
54
54
  ref,
55
55
  "data-slot": "autocomplete-list",
@@ -58,7 +58,7 @@ function List({ className, ref, ...props }) {
58
58
  });
59
59
  }
60
60
  function Item({ className, ref, ...props }) {
61
- const classes = mergeBaseClassName(["autocomplete__item"].filter(Boolean).join(" "), className);
61
+ const classes = mergeBaseClassName("autocomplete__item", className);
62
62
  return /* @__PURE__ */ jsx(Autocomplete$1.Item, {
63
63
  ref,
64
64
  "data-slot": "autocomplete-item",
@@ -67,7 +67,7 @@ function Item({ className, ref, ...props }) {
67
67
  });
68
68
  }
69
69
  function Empty({ className, ref, ...props }) {
70
- const classes = mergeBaseClassName(["autocomplete__empty"].filter(Boolean).join(" "), className);
70
+ const classes = mergeBaseClassName("autocomplete__empty", className);
71
71
  return /* @__PURE__ */ jsx(Autocomplete$1.Empty, {
72
72
  ref,
73
73
  "data-slot": "autocomplete-empty",
@@ -76,7 +76,7 @@ function Empty({ className, ref, ...props }) {
76
76
  });
77
77
  }
78
78
  function Status({ className, ref, ...props }) {
79
- const classes = mergeBaseClassName(["autocomplete__status"].filter(Boolean).join(" "), className);
79
+ const classes = mergeBaseClassName("autocomplete__status", className);
80
80
  return /* @__PURE__ */ jsx(Autocomplete$1.Status, {
81
81
  ref,
82
82
  "data-slot": "autocomplete-status",
@@ -85,7 +85,7 @@ function Status({ className, ref, ...props }) {
85
85
  });
86
86
  }
87
87
  function Group({ className, ref, ...props }) {
88
- const classes = mergeBaseClassName(["autocomplete__group"].filter(Boolean).join(" "), className);
88
+ const classes = mergeBaseClassName("autocomplete__group", className);
89
89
  return /* @__PURE__ */ jsx(Autocomplete$1.Group, {
90
90
  ref,
91
91
  "data-slot": "autocomplete-group",
@@ -94,7 +94,7 @@ function Group({ className, ref, ...props }) {
94
94
  });
95
95
  }
96
96
  function GroupLabel({ className, ref, ...props }) {
97
- const classes = mergeBaseClassName(["autocomplete__group-label"].filter(Boolean).join(" "), className);
97
+ const classes = mergeBaseClassName("autocomplete__group-label", className);
98
98
  return /* @__PURE__ */ jsx(Autocomplete$1.GroupLabel, {
99
99
  ref,
100
100
  "data-slot": "autocomplete-group-label",