@mcp-b/react-components 0.20.1 → 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 (149) hide show
  1. package/dist/{CodeBlock-Bb-IPBc_.js → CodeBlock-ygtuzqJd.js} +1 -1
  2. package/dist/{FileTree-CUlXfnmc.js → FileTree-CdgfccsM.js} +5 -5
  3. package/dist/{Message-rZEaaD8Q.js → Message-DzuteocT.js} +4 -3
  4. package/dist/{ModelSelector-4GsCWcZV.js → ModelSelector-pecWyOFI.js} +4 -3
  5. package/dist/{WorkspaceFileView-CEdArlOT.js → WorkspaceFileView-Bxx4wEzJ.js} +5 -11
  6. package/dist/components/Accordion.js +4 -4
  7. package/dist/components/Activity.js +2 -2
  8. package/dist/components/AgentActivity.js +1 -1
  9. package/dist/components/AgentActivityPreview.js +1 -1
  10. package/dist/components/AgentAttention.js +2 -2
  11. package/dist/components/AgentChat.js +4 -4
  12. package/dist/components/AgentConnection.js +2 -2
  13. package/dist/components/AgentMessageParts.js +1 -1
  14. package/dist/components/AgentToolDetail.js +1 -1
  15. package/dist/components/AlertDialog.js +8 -8
  16. package/dist/components/AppTopBar.js +1 -1
  17. package/dist/components/Approval.js +1 -1
  18. package/dist/components/Artifact.js +1 -1
  19. package/dist/components/Autocomplete.js +11 -11
  20. package/dist/components/Avatar.js +6 -6
  21. package/dist/components/BrowserLiveView.js +2 -2
  22. package/dist/components/BrowserReplay.js +4 -7
  23. package/dist/components/BrowserRunPanel.js +2 -2
  24. package/dist/components/Card.js +8 -11
  25. package/dist/components/ChainOfThought.js +2 -2
  26. package/dist/components/ChatGptSignInScreen.js +2 -2
  27. package/dist/components/Checkbox.js +2 -2
  28. package/dist/components/CheckboxGroup.js +7 -7
  29. package/dist/components/Checkpoint.js +1 -1
  30. package/dist/components/CodeBlock.js +1 -1
  31. package/dist/components/CodexModelSelector.js +5 -4
  32. package/dist/components/Collapsible.js +2 -2
  33. package/dist/components/Combobox.js +11 -11
  34. package/dist/components/Commit.js +4 -4
  35. package/dist/components/Context.js +3 -1
  36. package/dist/components/ContextMenu.js +13 -13
  37. package/dist/components/Conversation.js +3 -8
  38. package/dist/components/Dialog.js +6 -6
  39. package/dist/components/EnvironmentVariables.js +3 -3
  40. package/dist/components/Field.js +7 -7
  41. package/dist/components/Fieldset.js +3 -3
  42. package/dist/components/FileTree.js +1 -1
  43. package/dist/components/Form.js +1 -1
  44. package/dist/components/InlineCitation.js +2 -2
  45. package/dist/components/Input.js +1 -1
  46. package/dist/components/Label.js +2 -1
  47. package/dist/components/McpConnectionRequest.js +1 -1
  48. package/dist/components/McpServerPicker.js +3 -3
  49. package/dist/components/MediaPreviewCard.js +5 -4
  50. package/dist/components/Menu.js +17 -17
  51. package/dist/components/Menubar.js +14 -14
  52. package/dist/components/Message.js +1 -1
  53. package/dist/components/MessageScroller.js +1 -1
  54. package/dist/components/Meter.js +5 -5
  55. package/dist/components/ModelSelector.js +1 -1
  56. package/dist/components/NaniteScene.js +2 -1
  57. package/dist/components/NavigationMenu.js +11 -11
  58. package/dist/components/NumberField.js +6 -6
  59. package/dist/components/Plan.js +1 -1
  60. package/dist/components/Popover.js +12 -14
  61. package/dist/components/PreviewCard.js +6 -6
  62. package/dist/components/PricingPage.js +2 -1
  63. package/dist/components/PricingPlanCard.js +1 -1
  64. package/dist/components/Progress.js +4 -4
  65. package/dist/components/PromptInput.js +10 -12
  66. package/dist/components/Queue.js +1 -1
  67. package/dist/components/RadioGroup.js +4 -4
  68. package/dist/components/Reasoning.js +2 -2
  69. package/dist/components/ResizableSidePanel.js +3 -5
  70. package/dist/components/ResponsiveSidebarShell.js +4 -3
  71. package/dist/components/ScrollArea.js +6 -6
  72. package/dist/components/SearchField.js +1 -1
  73. package/dist/components/Select.js +15 -15
  74. package/dist/components/Slider.js +7 -7
  75. package/dist/components/Sources.js +2 -2
  76. package/dist/components/Stepper.js +1 -1
  77. package/dist/components/SubagentRunDetails.js +2 -1
  78. package/dist/components/SubagentRunIndicator.js +1 -1
  79. package/dist/components/SubagentRunSelector.js +1 -1
  80. package/dist/components/Switch.js +3 -3
  81. package/dist/components/Tabs.js +2 -2
  82. package/dist/components/Task.js +2 -2
  83. package/dist/components/Terminal.js +2 -2
  84. package/dist/components/TestResults.js +3 -3
  85. package/dist/components/ThemeModeControl.js +1 -1
  86. package/dist/components/ThinkChatActivity.js +2 -1
  87. package/dist/components/ThinkChatActivitySummary.js +12 -3
  88. package/dist/components/ThinkChatToolPanels.js +1 -1
  89. package/dist/components/ThinkExecutionDetail.js +1 -1
  90. package/dist/components/ThinkExecutionStatus.js +1 -1
  91. package/dist/components/ThinkExecutionWorkbench.js +2 -2
  92. package/dist/components/ThinkFullApp.js +4 -74
  93. package/dist/components/ThinkPendingApproval.js +1 -3
  94. package/dist/components/ThinkRoutine.d.ts +1 -1
  95. package/dist/components/ThinkRoutine.js +2 -1
  96. package/dist/components/ThinkRoutineBrowser.js +9 -9
  97. package/dist/components/ThinkRoutineDetail.js +1 -1
  98. package/dist/components/ThinkRoutineForm.js +1 -1
  99. package/dist/components/ThinkRoutineLibrary.js +1 -1
  100. package/dist/components/ThinkThreadPicker.js +3 -3
  101. package/dist/components/ThinkThreadShell.js +2 -1
  102. package/dist/components/Toast.js +6 -6
  103. package/dist/components/ToggleGroup.js +2 -2
  104. package/dist/components/Tooltip.js +4 -4
  105. package/dist/components/WebPreview.js +1 -1
  106. package/dist/components/WorkspaceBrowser.js +1 -1
  107. package/dist/components/WorkspaceExplorer.js +2 -2
  108. package/dist/components/WorkspaceFileView.js +1 -1
  109. package/dist/components/WorkspaceHeader.js +1 -1
  110. package/dist/components/icons.js +1 -1
  111. package/dist/{copy-button-BtRwhRks.js → copy-button-vo1paUSi.js} +1 -1
  112. package/dist/format-S6uWyoSb.js +38 -0
  113. package/dist/{icons-DKXiSepE.js → icons-DyOM0EJs.js} +2 -1
  114. package/dist/{merge-refs-KlanQB7A.js → merge-refs-DF_7w2x_.js} +1 -1
  115. package/dist/styles/activity-header.css +0 -3
  116. package/dist/styles/activity.css +1 -1
  117. package/dist/styles/agent-attention.css +0 -7
  118. package/dist/styles/agent-connection.css +1 -1
  119. package/dist/styles/app-top-bar.css +2 -5
  120. package/dist/styles/browser-live-view.css +1 -10
  121. package/dist/styles/browser-run-panel.css +2 -11
  122. package/dist/styles/chain-of-thought.css +2 -14
  123. package/dist/styles/checkbox-group.css +0 -6
  124. package/dist/styles/codex-model-selector.css +0 -6
  125. package/dist/styles/commit.css +1 -7
  126. package/dist/styles/environment-variables.css +0 -3
  127. package/dist/styles/file-tree.css +1 -1
  128. package/dist/styles/inline-citation.css +1 -4
  129. package/dist/styles/mcp-server-picker.css +0 -3
  130. package/dist/styles/message.css +0 -6
  131. package/dist/styles/model-selector.css +1 -1
  132. package/dist/styles/prompt-input.css +3 -34
  133. package/dist/styles/queue.css +1 -1
  134. package/dist/styles/recipes.css +2 -2
  135. package/dist/styles/sources.css +1 -4
  136. package/dist/styles/stepper.css +1 -7
  137. package/dist/styles/subagent-run.css +0 -3
  138. package/dist/styles/task.css +1 -1
  139. package/dist/styles/test-results.css +2 -17
  140. package/dist/styles/theme-mode-control.css +1 -1
  141. package/dist/styles/think-execution-status.css +1 -7
  142. package/dist/styles/think-execution-workbench.css +0 -3
  143. package/dist/styles/think-full-app.css +0 -3
  144. package/dist/styles/think-thread-picker.css +2 -14
  145. package/dist/styles/toggle-group.css +1 -1
  146. package/dist/styles/utilities.css +6 -2
  147. package/dist/styles/workspace-explorer.css +1 -1
  148. package/dist/view-transitions-DyUP0lSg.js +77 -0
  149. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "./Collapsible.js";
3
- import { O as LinkIcon, p as ChevronRightIcon } from "../icons-DKXiSepE.js";
3
+ import { O as LinkIcon, p as ChevronRightIcon } from "../icons-DyOM0EJs.js";
4
4
  import "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/components/Sources.tsx
@@ -98,7 +98,7 @@ function Source({ title, description, children, className, href, ref, ...props }
98
98
  className: "sources__link-body",
99
99
  children: [
100
100
  title ? /* @__PURE__ */ jsx("span", {
101
- className: "sources__link-title",
101
+ className: "sources__link-title sigvelo-truncate",
102
102
  children: title
103
103
  }) : null,
104
104
  description ? /* @__PURE__ */ jsx("span", {
@@ -1,5 +1,5 @@
1
1
  import { n as mergeBaseClassName, t as cx } from "../class-names-BiMDVpUo.js";
2
- import { K as SpinnerIcon, u as CheckIcon } from "../icons-DKXiSepE.js";
2
+ import { K as SpinnerIcon, u as CheckIcon } from "../icons-DyOM0EJs.js";
3
3
  import { Tabs } from "./Tabs.js";
4
4
  import * as React from "react";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -1,11 +1,12 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
+ import { n as clamp } from "../format-S6uWyoSb.js";
2
3
  import { Progress } from "./Progress.js";
3
4
  import * as React from "react";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
6
  //#region src/components/SubagentRunDetails.tsx
6
7
  function SubagentRunProgress({ className, label, value, ref, ...props }) {
7
8
  const labelId = React.useId();
8
- const percent = value === void 0 ? null : Math.round(Math.min(1, Math.max(0, value)) * 100);
9
+ const percent = value === void 0 ? null : Math.round(clamp(value, 0, 1) * 100);
9
10
  return /* @__PURE__ */ jsxs("div", {
10
11
  ref,
11
12
  className: cx("subagent-run__progress", className),
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { J as StopIcon, K as SpinnerIcon, Q as WarningIcon, u as CheckIcon } from "../icons-DKXiSepE.js";
2
+ import { J as StopIcon, K as SpinnerIcon, Q as WarningIcon, u as CheckIcon } from "../icons-DyOM0EJs.js";
3
3
  import "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/components/SubagentRunIndicator.tsx
@@ -32,7 +32,7 @@ function SubagentRunSelector({ className, render, run, tooltip, ref, "aria-label
32
32
  children: [
33
33
  /* @__PURE__ */ jsx(NaniteMark, { index: run.order }),
34
34
  /* @__PURE__ */ jsx("span", {
35
- className: "subagent-run__title",
35
+ className: "subagent-run__title sigvelo-truncate",
36
36
  children: name
37
37
  }),
38
38
  /* @__PURE__ */ jsx(SubagentRunIndicator, { run })
@@ -1,4 +1,4 @@
1
- import { n as mergeBaseClassName } from "../class-names-BiMDVpUo.js";
1
+ import { n as mergeBaseClassName, t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { Switch as Switch$1 } from "@base-ui/react/switch";
@@ -25,7 +25,7 @@ import { Switch as Switch$1 } from "@base-ui/react/switch";
25
25
  * @see {@link https://base-ui.com/react/components/switch | Base UI Switch}
26
26
  */
27
27
  function SwitchRoot({ size = "md", className, ref, ...props }) {
28
- const classes = mergeBaseClassName(["switch", size !== "md" && `switch--${size}`].filter(Boolean).join(" "), className);
28
+ const classes = mergeBaseClassName(cx("switch", size !== "md" && `switch--${size}`), className);
29
29
  return /* @__PURE__ */ jsx(Switch$1.Root, {
30
30
  ref,
31
31
  "data-slot": "switch",
@@ -38,7 +38,7 @@ function SwitchRoot({ size = "md", className, ref, ...props }) {
38
38
  * The thumb indicator for the Switch component.
39
39
  */
40
40
  function SwitchThumb({ className, ref, ...props }) {
41
- const classes = mergeBaseClassName(["switch__thumb"].filter(Boolean).join(" "), className);
41
+ const classes = mergeBaseClassName("switch__thumb", className);
42
42
  return /* @__PURE__ */ jsx(Switch$1.Thumb, {
43
43
  ref,
44
44
  "data-slot": "switch-thumb",
@@ -1,4 +1,4 @@
1
- import { n as mergeBaseClassName } from "../class-names-BiMDVpUo.js";
1
+ import { n as mergeBaseClassName, t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
@@ -28,7 +28,7 @@ function tabsListVariants({ variant = "default", className } = {}) {
28
28
  * @see {@link https://base-ui.com/react/components/tabs | Base UI Tabs}
29
29
  */
30
30
  function TabsRoot({ orientation = "horizontal", variant = "default", className, unstyled = false, ref, ...props }) {
31
- const classes = unstyled ? className : mergeBaseClassName(["tabs", variant !== "default" && `tabs--${variant}`].filter(Boolean).join(" "), className);
31
+ const classes = unstyled ? className : mergeBaseClassName(cx("tabs", variant !== "default" && `tabs--${variant}`), className);
32
32
  return /* @__PURE__ */ jsx(Tabs$1.Root, {
33
33
  ref,
34
34
  "data-slot": "tabs",
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "./Collapsible.js";
3
- import { S as FileIcon, W as SearchIcon, p as ChevronRightIcon } from "../icons-DKXiSepE.js";
3
+ import { S as FileIcon, W as SearchIcon, 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/Task.tsx
@@ -62,7 +62,7 @@ function TaskTrigger({ className, title, children, ref, ...props }) {
62
62
  children: /* @__PURE__ */ jsx(SearchIcon, {})
63
63
  }),
64
64
  /* @__PURE__ */ jsx("span", {
65
- className: "task__trigger-title sigvelo-truncate",
65
+ className: "task__trigger-title sigvelo-truncate sigvelo-truncate-grow",
66
66
  children: title
67
67
  }),
68
68
  /* @__PURE__ */ jsx("span", {
@@ -1,8 +1,8 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { X as TerminalIcon, et as XIcon } from "../icons-DKXiSepE.js";
2
+ import { X as TerminalIcon, et as XIcon } from "../icons-DyOM0EJs.js";
3
3
  import { Button } from "./Button.js";
4
4
  import { Tooltip } from "./Tooltip.js";
5
- import { t as CopyButton } from "../copy-button-BtRwhRks.js";
5
+ import { t as CopyButton } from "../copy-button-vo1paUSi.js";
6
6
  import { Badge } from "./Badge.js";
7
7
  import { ScrollArea } from "./ScrollArea.js";
8
8
  import * as React from "react";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "./Collapsible.js";
3
- import { K as SpinnerIcon, et as XIcon, p as ChevronRightIcon, u as CheckIcon } from "../icons-DKXiSepE.js";
3
+ import { K as SpinnerIcon, et as XIcon, p as ChevronRightIcon, u as CheckIcon } from "../icons-DyOM0EJs.js";
4
4
  import { Badge } from "./Badge.js";
5
5
  import * as React from "react";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -207,7 +207,7 @@ function TestSuiteName({ className, children, ref, ...props }) {
207
207
  children: STATUS_LABEL[status]
208
208
  }),
209
209
  /* @__PURE__ */ jsx("span", {
210
- className: "test-results__suite-name",
210
+ className: "test-results__suite-name sigvelo-truncate",
211
211
  children: children ?? name
212
212
  })
213
213
  ]
@@ -299,7 +299,7 @@ function TestName({ className, children, ref, ...props }) {
299
299
  const { name } = React.useContext(TestContext);
300
300
  return /* @__PURE__ */ jsx("span", {
301
301
  ref,
302
- className: cx("test-results__test-name", className),
302
+ className: cx("test-results__test-name", "sigvelo-truncate", className),
303
303
  ...props,
304
304
  children: children ?? name
305
305
  });
@@ -1,4 +1,4 @@
1
- import { F as MoonIcon, P as MonitorIcon, Y as SunIcon } from "../icons-DKXiSepE.js";
1
+ import { F as MoonIcon, P as MonitorIcon, Y as SunIcon } from "../icons-DyOM0EJs.js";
2
2
  import { Radio, RadioGroup } from "./RadioGroup.js";
3
3
  import { useTheme } from "./ThemeProvider.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,6 @@
1
1
  import { Activity, ActivityContent, ActivityItem, ActivityItemGroup, ActivityText, ActivityTrigger } from "./Activity.js";
2
2
  import { AgentActivityFavicon, AgentActivityIcon } from "./AgentActivity.js";
3
+ import { f as MessageResponse } from "../Message-DzuteocT.js";
3
4
  import { isBrowserToolPart, isExecuteToolPart, isFetchToolPart, isPartWorking, isSessionContextToolPart, isSkillToolPart, isThinkChatActivityPart, isWorkspaceToolPart } from "./ThinkChatToolParts.js";
4
5
  import { useOptionalAgentToolRuns } from "./AgentToolRunsContext.js";
5
6
  import { SubagentRunList } from "./SubagentRunList.js";
@@ -68,7 +69,7 @@ function ThinkChatActivityStep({ text, part, toolRenderers }) {
68
69
  if (isReasoningUIPart(part) && part.text.trim()) return /* @__PURE__ */ jsx(ActivityItemGroup, {
69
70
  label: text,
70
71
  icon,
71
- children: /* @__PURE__ */ jsx(ActivityText, { children: part.text })
72
+ children: /* @__PURE__ */ jsx(ActivityText, { children: /* @__PURE__ */ jsx(MessageResponse, { children: part.text }) })
72
73
  });
73
74
  if (isWorkspaceToolPart(part) && part.type !== "tool-delete") return /* @__PURE__ */ jsx(ActivityItemGroup, {
74
75
  label: text,
@@ -161,9 +161,9 @@ function describeThinkChatActivityPart(part, toolRenderers) {
161
161
  if (custom !== void 0) return custom;
162
162
  }
163
163
  if (isReasoningUIPart(part)) {
164
- const snippet = summarizeToolInput({ text: part.text });
164
+ const snippet = summarizeReasoningTitle(part.text);
165
165
  const label = part.state === "streaming" ? "Thinking…" : "Thought";
166
- return snippet ? `${label} · ${snippet}` : label;
166
+ return snippet ?? label;
167
167
  }
168
168
  if (isWorkspaceToolPart(part)) return describeWorkspaceToolPart(part);
169
169
  if (isSkillToolPart(part)) return describeSkillToolPart(part);
@@ -256,12 +256,21 @@ function describeBrowserToolPart(part) {
256
256
  }
257
257
  function describeExecuteToolPart(part) {
258
258
  const output = part.state === "output-available" ? part.output : void 0;
259
- if (isPartFailed(part) || output?.status === "error") return "Code failed";
260
259
  if (output?.status === "paused") return isHumanWaitPause(output) ? "Code waiting for human" : "Code waiting for approval";
260
+ const explicitSummary = part.input ? Reflect.get(part.input, "summary") : void 0;
261
+ const summary = typeof explicitSummary === "string" ? summarizeToolInput({ summary: explicitSummary }) : null;
262
+ if (summary) return summary;
263
+ if (isPartFailed(part) || output?.status === "error") return "Code failed";
261
264
  const label = isPartWorking(part) ? "Running code" : "Ran code";
262
265
  const snippet = summarizeToolInput(part.input);
263
266
  return snippet ? `${label} · ${snippet}` : label;
264
267
  }
268
+ function summarizeReasoningTitle(text) {
269
+ const line = text.split("\n").find((candidate) => candidate.trim())?.trim();
270
+ if (!line) return null;
271
+ const title = line.replace(/^#{1,6}(?:\s+|$)/, "").replace(/(?:\s+|^)#{1,6}$/, "").replace(/^(?:\*\*|__)/, "").replace(/(?:\*\*|__)$/, "").trim();
272
+ return /^[#*_]*$/.test(title) ? null : summarizeToolInput({ summary: title });
273
+ }
265
274
  function isHumanWaitPause(output) {
266
275
  const pending = output.pending ?? [];
267
276
  return pending.length > 0 && pending.every((action) => action.connector === "human" && action.method === "waitFor");
@@ -1,7 +1,7 @@
1
1
  import { ActivityOutput, ActivityPanel } from "./Activity.js";
2
2
  import { displayUrl, isSessionContextToolFailure } from "./ThinkChatToolParts.js";
3
3
  import { Tabs } from "./Tabs.js";
4
- import { t as CodeBlock } from "../CodeBlock-Bb-IPBc_.js";
4
+ import { t as CodeBlock } from "../CodeBlock-ygtuzqJd.js";
5
5
  import { BrowserLiveView } from "./BrowserLiveView.js";
6
6
  import { inferWorkspaceLanguage } from "./WorkspaceFile.js";
7
7
  import * as React from "react";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { D as InfoIcon, S as FileIcon, U as RefreshIcon, X as TerminalIcon, et as XIcon, n as ArrowDownIcon, u as CheckIcon } from "../icons-DKXiSepE.js";
2
+ import { D as InfoIcon, S as FileIcon, U as RefreshIcon, X as TerminalIcon, et as XIcon, n as ArrowDownIcon, u as CheckIcon } from "../icons-DyOM0EJs.js";
3
3
  import { Activity, ActivityContent, ActivityItem, ActivityItemGroup, ActivityOutput, ActivityPanel, ActivityTrigger } from "./Activity.js";
4
4
  import { formatThinkExecutionRunProgress, formatThinkExecutionStatus, formatThinkExecutionTimestamp, getThinkExecutionRunError, getThinkExecutionRunId, getThinkExecutionRunProgressedAt, getThinkExecutionRunProgressedLabel, getThinkExecutionRunStatus, getThinkExecutionRunTitle, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
5
5
  import { ThinkExecutionStatus } from "./ThinkExecutionStatus.js";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { D as InfoIcon, K as SpinnerIcon, R as PauseIcon, et as XIcon, u as CheckIcon } from "../icons-DKXiSepE.js";
2
+ import { D as InfoIcon, K as SpinnerIcon, R as PauseIcon, et as XIcon, u as CheckIcon } from "../icons-DyOM0EJs.js";
3
3
  import { Tooltip } from "./Tooltip.js";
4
4
  import { formatThinkExecutionStatus, getThinkExecutionRunStatus, getThinkExecutionRunStatusTone } from "./ThinkExecutionRun.js";
5
5
  import "react";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { U as RefreshIcon, y as EllipsisIcon } from "../icons-DKXiSepE.js";
2
+ import { U as RefreshIcon, y as EllipsisIcon } from "../icons-DyOM0EJs.js";
3
3
  import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
4
4
  import { Button, buttonVariants } from "./Button.js";
5
5
  import { Tooltip } from "./Tooltip.js";
@@ -223,7 +223,7 @@ function ThinkExecutionWorkbench({ backButton, className, pageSize = executionPa
223
223
  children: [/* @__PURE__ */ jsxs("span", {
224
224
  className: "think-execution-workbench__run-heading",
225
225
  children: [/* @__PURE__ */ jsx("span", {
226
- className: "think-execution-workbench__run-title",
226
+ className: "think-execution-workbench__run-title sigvelo-truncate",
227
227
  children: getThinkExecutionRunTitle(run)
228
228
  }), getThinkExecutionRunSubtitle(run) ? /* @__PURE__ */ jsx("code", { children: getThinkExecutionRunSubtitle(run) }) : null]
229
229
  }), /* @__PURE__ */ jsx("span", {
@@ -1,12 +1,13 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { S as FileIcon, X as TerminalIcon, d as ChevronDownIcon } from "../icons-DKXiSepE.js";
2
+ import { S as FileIcon, X as TerminalIcon, d as ChevronDownIcon } from "../icons-DyOM0EJs.js";
3
3
  import { Button } from "./Button.js";
4
4
  import { a as WorkspaceNavigationRestorationBoundary, i as WorkspaceNavigationFocusRestorer, n as WorkspaceNavigationProvider } from "../WorkspaceLink-BYYeTQLf.js";
5
+ import { n as mergeRefs } from "../merge-refs-DF_7w2x_.js";
5
6
  import { AppTopBar } from "./AppTopBar.js";
6
7
  import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../ThinkChat-E_HrfH76.js";
7
- import { t as mergeRefs } from "../merge-refs-KlanQB7A.js";
8
8
  import { useWorkspace } from "./Workspace.js";
9
9
  import { WorkspaceExplorer } from "./WorkspaceExplorer.js";
10
+ import { n as runViewTransition } from "../view-transitions-DyUP0lSg.js";
10
11
  import { ResizableSidePanel } from "./ResizableSidePanel.js";
11
12
  import { ThinkExecutionWorkbench } from "./ThinkExecutionWorkbench.js";
12
13
  import { ThinkFullAppViewSwitch } from "./ThinkFullAppViewSwitch.js";
@@ -15,77 +16,6 @@ import { ThinkThreadShell } from "./ThinkThreadShell.js";
15
16
  import * as React from "react";
16
17
  import { jsx, jsxs } from "react/jsx-runtime";
17
18
  import { useAgentToolEvents } from "agents/react";
18
- import { flushSync } from "react-dom";
19
- //#region src/components/_internal/view-transitions.ts
20
- let documentScopeSequence = 0;
21
- let restoreActiveDocumentScope = null;
22
- function motionIsReduced() {
23
- if (typeof document === "undefined") return true;
24
- if (document.documentElement.dataset.motion === "reduce") return true;
25
- return window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? false;
26
- }
27
- function isReactTestEnvironment() {
28
- return globalThis.IS_REACT_ACT_ENVIRONMENT;
29
- }
30
- function scopeDocumentTransition(scope) {
31
- if (!(scope instanceof HTMLElement || scope instanceof SVGElement)) return null;
32
- restoreActiveDocumentScope?.();
33
- const rootStyle = document.documentElement.style;
34
- const scopeStyle = scope.style;
35
- const rootValue = rootStyle.getPropertyValue("view-transition-name");
36
- const rootPriority = rootStyle.getPropertyPriority("view-transition-name");
37
- const scopeValue = scopeStyle.getPropertyValue("view-transition-name");
38
- const scopePriority = scopeStyle.getPropertyPriority("view-transition-name");
39
- rootStyle.setProperty("view-transition-name", "none", "important");
40
- scopeStyle.setProperty("view-transition-name", `sigvelo-transition-scope-${++documentScopeSequence}`, "important");
41
- let active = true;
42
- const restore = () => {
43
- if (!active) return;
44
- active = false;
45
- if (rootValue) rootStyle.setProperty("view-transition-name", rootValue, rootPriority);
46
- else rootStyle.removeProperty("view-transition-name");
47
- if (scopeValue) scopeStyle.setProperty("view-transition-name", scopeValue, scopePriority);
48
- else scopeStyle.removeProperty("view-transition-name");
49
- if (restoreActiveDocumentScope === restore) restoreActiveDocumentScope = null;
50
- };
51
- restoreActiveDocumentScope = restore;
52
- return restore;
53
- }
54
- /**
55
- * Runs one synchronous React update inside the narrowest supported native view
56
- * transition. Unsupported and reduced-motion environments commit immediately.
57
- */
58
- function runViewTransition({ scope, update }) {
59
- let committed = false;
60
- const commitOnce = () => {
61
- if (committed) return;
62
- committed = true;
63
- flushSync(update);
64
- };
65
- if (typeof document === "undefined" || motionIsReduced() || isReactTestEnvironment()) {
66
- commitOnce();
67
- return null;
68
- }
69
- const scopedHost = scope;
70
- const documentHost = document;
71
- const useScopedHost = typeof scopedHost?.startViewTransition === "function";
72
- const host = useScopedHost ? scopedHost : typeof documentHost.startViewTransition === "function" ? documentHost : null;
73
- if (!host?.startViewTransition) {
74
- commitOnce();
75
- return null;
76
- }
77
- const restoreDocumentScope = useScopedHost ? null : scopeDocumentTransition(scope);
78
- try {
79
- const transition = host.startViewTransition(commitOnce);
80
- if (restoreDocumentScope) transition.finished.finally(restoreDocumentScope).catch(() => void 0);
81
- return transition;
82
- } catch {
83
- restoreDocumentScope?.();
84
- commitOnce();
85
- return null;
86
- }
87
- }
88
- //#endregion
89
19
  //#region src/components/ThinkFullApp.tsx
90
20
  const workbenchPanelDefaultWidth = 340;
91
21
  const workbenchPanelMinWidth = 300;
@@ -231,7 +161,7 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
231
161
  onClick: (event) => sidebarControls.toggleSidebar(event.currentTarget),
232
162
  children: [
233
163
  /* @__PURE__ */ jsx("span", {
234
- className: "think-full-app__thread-trigger-title",
164
+ className: "think-full-app__thread-trigger-title sigvelo-truncate",
235
165
  children: appBarTitle ?? "Threads"
236
166
  }),
237
167
  threadStatusSummary ? /* @__PURE__ */ jsx(ThinkThreadStatusIndicators, { summary: threadStatusSummary }) : null,
@@ -1,3 +1,4 @@
1
+ import { i as titleCase } from "../format-S6uWyoSb.js";
1
2
  import { Approval, ApprovalCount, ApprovalDecision, ApprovalHeader, ApprovalInputPreview, ApprovalPreview, ApprovalPreviewRow, ApprovalQuestion, formatApprovalValue } from "./Approval.js";
2
3
  import "react";
3
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -10,9 +11,6 @@ function getPausedExecution(part) {
10
11
  const output = getToolOutput(part);
11
12
  return output?.status === "paused" && typeof output.executionId === "string" ? output : void 0;
12
13
  }
13
- function titleCase(value) {
14
- return value.split("-").map((word) => `${word.charAt(0).toUpperCase()}${word.slice(1)}`).join(" ");
15
- }
16
14
  /**
17
15
  * Durable Think approval adapter. It renders the complete upstream descriptor
18
16
  * and resolves only through the full Think stub's idempotent execution RPCs.
@@ -31,6 +31,6 @@ interface ThinkRoutineCreateRequest {
31
31
  /** Whole upstream task, including prompt functions and handler tasks. */
32
32
  task: ThinkScheduledTask;
33
33
  }
34
- declare function getThinkRoutineNextRun(routine: ThinkRoutine): string;
34
+ declare function getThinkRoutineNextRun(routine: ThinkRoutine): string | null;
35
35
  //#endregion
36
36
  export { ThinkRoutine, ThinkRoutineCreateRequest, ThinkRoutineOwner, ThinkRoutineRunOf, getThinkRoutineNextRun };
@@ -1,7 +1,8 @@
1
1
  //#region src/components/ThinkRoutine.ts
2
2
  function getThinkRoutineNextRun(routine) {
3
+ if (!routine.schedule) return null;
3
4
  if (!routine.enabled) return "Paused";
4
- return routine.schedule ? formatThinkExecutionDate(routine.schedule.time * 1e3, "Not scheduled") : "Pending reconciliation";
5
+ return formatThinkExecutionDate(routine.schedule.time * 1e3, "Not scheduled");
5
6
  }
6
7
  function formatThinkExecutionDate(value, fallback) {
7
8
  const date = value instanceof Date ? value : new Date(value);
@@ -1,13 +1,14 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { V as PlusIcon } from "../icons-DKXiSepE.js";
2
+ import { V as PlusIcon } from "../icons-DyOM0EJs.js";
3
3
  import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
4
4
  import { buttonVariants } from "./Button.js";
5
5
  import { Tooltip } from "./Tooltip.js";
6
+ import { t as capitalize } from "../format-S6uWyoSb.js";
6
7
  import { SearchField } from "./SearchField.js";
7
8
  import { ToggleGroup } from "./ToggleGroup.js";
8
9
  import { getThinkRoutineNextRun } from "./ThinkRoutine.js";
9
10
  import * as React from "react";
10
- import { jsx, jsxs } from "react/jsx-runtime";
11
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
12
  //#region src/components/ThinkRoutineBrowser.tsx
12
13
  function filterRoutines(routines, filter, query) {
13
14
  const normalizedQuery = query.trim().toLocaleLowerCase();
@@ -51,7 +52,7 @@ function ThinkRoutineBrowser({ className, routines, selectedRoutineId, showOwner
51
52
  ].map((value) => /* @__PURE__ */ jsx(ToggleGroup.Item, {
52
53
  type: "button",
53
54
  value,
54
- children: value.charAt(0).toUpperCase() + value.slice(1)
55
+ children: capitalize(value)
55
56
  }, value))
56
57
  }), createRoutineLink ? /* @__PURE__ */ jsxs(Tooltip.Root, { children: [/* @__PURE__ */ jsx(Tooltip.Trigger, {
57
58
  render: /* @__PURE__ */ jsx(NavigationLink, {
@@ -126,12 +127,11 @@ function ThinkRoutineBrowser({ className, routines, selectedRoutineId, showOwner
126
127
  children: [
127
128
  /* @__PURE__ */ jsx("strong", { children: routine.name }),
128
129
  /* @__PURE__ */ jsx("span", { children: routine.task.schedule }),
129
- /* @__PURE__ */ jsxs("small", { children: [
130
- showOwner ? `${routine.owner.name} · ` : null,
131
- "Next",
132
- " ",
133
- getThinkRoutineNextRun(routine)
134
- ] })
130
+ showOwner || routine.schedule ? /* @__PURE__ */ jsxs("small", { children: [
131
+ showOwner ? routine.owner.name : null,
132
+ showOwner && routine.schedule ? " · " : null,
133
+ routine.schedule ? /* @__PURE__ */ jsxs(Fragment, { children: ["Next ", getThinkRoutineNextRun(routine)] }) : null
134
+ ] }) : null
135
135
  ]
136
136
  })
137
137
  ]
@@ -71,7 +71,7 @@ function ThinkRoutineDetail({ busy = false, className, routine, showOwner = true
71
71
  className: "think-routine-library__facts",
72
72
  children: [
73
73
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Repeats" }), /* @__PURE__ */ jsx("dd", { children: routine.task.schedule })] }),
74
- /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Next run" }), /* @__PURE__ */ jsx("dd", { children: getThinkRoutineNextRun(routine) })] }),
74
+ routine.schedule ? /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Next run" }), /* @__PURE__ */ jsx("dd", { children: getThinkRoutineNextRun(routine) })] }) : null,
75
75
  showOwner ? /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Agent" }), /* @__PURE__ */ jsx("dd", { children: routine.owner.name })] }) : null
76
76
  ]
77
77
  }),
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { K as SpinnerIcon } from "../icons-DKXiSepE.js";
2
+ import { K as SpinnerIcon } from "../icons-DyOM0EJs.js";
3
3
  import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
4
4
  import { Button, buttonVariants } from "./Button.js";
5
5
  import { Field } from "./Field.js";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { B as PlayIcon, K as SpinnerIcon, Q as WarningIcon, d as ChevronDownIcon, y as EllipsisIcon } from "../icons-DKXiSepE.js";
2
+ import { B as PlayIcon, K as SpinnerIcon, Q as WarningIcon, d as ChevronDownIcon, y as EllipsisIcon } from "../icons-DyOM0EJs.js";
3
3
  import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
4
4
  import { Button, buttonVariants } from "./Button.js";
5
5
  import { Menu } from "./Menu.js";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { K as SpinnerIcon, Q as WarningIcon, V as PlusIcon, _ as DotIcon, t as ArchiveIcon } from "../icons-DKXiSepE.js";
2
+ import { K as SpinnerIcon, Q as WarningIcon, V as PlusIcon, _ as DotIcon, t as ArchiveIcon } from "../icons-DyOM0EJs.js";
3
3
  import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
4
4
  import { Button, buttonVariants } from "./Button.js";
5
5
  import { SearchField } from "./SearchField.js";
@@ -161,7 +161,7 @@ function ThinkThreadPicker({ threads, renderThreadLink, onCreate, onDelete, clas
161
161
  /* @__PURE__ */ jsxs("header", {
162
162
  className: "think-thread-picker__header",
163
163
  children: [/* @__PURE__ */ jsx("h2", {
164
- className: "think-thread-picker__title",
164
+ className: "think-thread-picker__title sigvelo-truncate",
165
165
  children: title
166
166
  }), /* @__PURE__ */ jsx(ThinkThreadStatusIndicators, { summary: statusSummary })]
167
167
  }),
@@ -210,7 +210,7 @@ function ThinkThreadPicker({ threads, renderThreadLink, onCreate, onDelete, clas
210
210
  }),
211
211
  "data-thread-status": thread.status,
212
212
  children: [/* @__PURE__ */ jsx("span", {
213
- className: "think-thread-picker__thread-title",
213
+ className: "think-thread-picker__thread-title sigvelo-truncate",
214
214
  children: thread.title
215
215
  }), statusLabel ? /* @__PURE__ */ jsx("span", {
216
216
  className: "think-thread-picker__thread-status",
@@ -1,3 +1,4 @@
1
+ import { t as cx } from "../class-names-BiMDVpUo.js";
1
2
  import { ResponsiveSidebarShell } from "./ResponsiveSidebarShell.js";
2
3
  import "react";
3
4
  import { jsx } from "react/jsx-runtime";
@@ -10,7 +11,7 @@ function ThinkThreadShell({ sidebar, sidebarOpen, defaultSidebarOpen, onSidebarO
10
11
  return /* @__PURE__ */ jsx(ResponsiveSidebarShell, {
11
12
  ...props,
12
13
  ref,
13
- className: ["think-thread-shell", className].filter(Boolean).join(" "),
14
+ className: cx("think-thread-shell", className),
14
15
  sidebar,
15
16
  sidebarLabel: "threads",
16
17
  sidebarOpen,
@@ -24,7 +24,7 @@ const ToastProvider = (props) => {
24
24
  * Container for displaying toasts.
25
25
  */
26
26
  function ToastViewport({ className, ref, ...props }) {
27
- const classes = mergeBaseClassName(["toast__viewport"].filter(Boolean).join(" "), className);
27
+ const classes = mergeBaseClassName("toast__viewport", className);
28
28
  return /* @__PURE__ */ jsx(Toast$1.Viewport, {
29
29
  ref,
30
30
  "data-slot": "toast-viewport",
@@ -36,7 +36,7 @@ function ToastViewport({ className, ref, ...props }) {
36
36
  * Individual toast wrapper.
37
37
  */
38
38
  function ToastRoot({ className, ref, ...props }) {
39
- const classes = mergeBaseClassName(["toast"].filter(Boolean).join(" "), className);
39
+ const classes = mergeBaseClassName("toast", className);
40
40
  return /* @__PURE__ */ jsx(Toast$1.Root, {
41
41
  ref,
42
42
  "data-slot": "toast",
@@ -48,7 +48,7 @@ function ToastRoot({ className, ref, ...props }) {
48
48
  * Container for the contents of a toast.
49
49
  */
50
50
  function ToastContent({ className, ref, ...props }) {
51
- const classes = mergeBaseClassName(["toast__content"].filter(Boolean).join(" "), className);
51
+ const classes = mergeBaseClassName("toast__content", className);
52
52
  return /* @__PURE__ */ jsx(Toast$1.Content, {
53
53
  ref,
54
54
  "data-slot": "toast-content",
@@ -60,7 +60,7 @@ function ToastContent({ className, ref, ...props }) {
60
60
  * Title that labels the toast. Renders an `<h2>` element.
61
61
  */
62
62
  function ToastTitle({ className, ref, ...props }) {
63
- const classes = mergeBaseClassName(["toast__title"].filter(Boolean).join(" "), className);
63
+ const classes = mergeBaseClassName("toast__title", className);
64
64
  return /* @__PURE__ */ jsx(Toast$1.Title, {
65
65
  ref,
66
66
  "data-slot": "toast-title",
@@ -72,7 +72,7 @@ function ToastTitle({ className, ref, ...props }) {
72
72
  * Description text for the toast. Renders a `<p>` element.
73
73
  */
74
74
  function ToastDescription({ className, ref, ...props }) {
75
- const classes = mergeBaseClassName(["toast__description"].filter(Boolean).join(" "), className);
75
+ const classes = mergeBaseClassName("toast__description", className);
76
76
  return /* @__PURE__ */ jsx(Toast$1.Description, {
77
77
  ref,
78
78
  "data-slot": "toast-description",
@@ -102,7 +102,7 @@ function ToastAction({ render, className, ref, ...props }) {
102
102
  * Close button that dismisses the toast.
103
103
  */
104
104
  function ToastClose({ className, ref, ...props }) {
105
- const classes = mergeBaseClassName(["toast__close"].filter(Boolean).join(" "), className);
105
+ const classes = mergeBaseClassName("toast__close", className);
106
106
  return /* @__PURE__ */ jsx(Toast$1.Close, {
107
107
  ref,
108
108
  "data-slot": "toast-close",
@@ -1,4 +1,4 @@
1
- import { n as mergeBaseClassName } from "../class-names-BiMDVpUo.js";
1
+ import { n as mergeBaseClassName, t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { toggleVariants } from "./Toggle.js";
3
3
  import * as React from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -44,7 +44,7 @@ function ToggleGroupRoot({ size = "md", spacing = 0, variant = "default", classN
44
44
  ...style,
45
45
  gap
46
46
  };
47
- const classes = mergeBaseClassName(["toggle-group", size !== "md" && `toggle-group--${size}`].filter(Boolean).join(" "), className);
47
+ const classes = mergeBaseClassName(cx("toggle-group", size !== "md" && `toggle-group--${size}`), className);
48
48
  const contextValue = React.useMemo(() => ({
49
49
  variant,
50
50
  size,
@@ -38,7 +38,7 @@ function TooltipTrigger(props) {
38
38
  });
39
39
  }
40
40
  function TooltipPositioner({ className, ref, ...props }) {
41
- const classes = mergeBaseClassName(["tooltip__positioner", "base-ui-positioner"].filter(Boolean).join(" "), className);
41
+ const classes = mergeBaseClassName("tooltip__positioner base-ui-positioner", className);
42
42
  return /* @__PURE__ */ jsx(Tooltip$1.Positioner, {
43
43
  ref,
44
44
  "data-slot": "tooltip-positioner",
@@ -47,7 +47,7 @@ function TooltipPositioner({ className, ref, ...props }) {
47
47
  });
48
48
  }
49
49
  function TooltipPopup({ className, ref, role = "tooltip", ...props }) {
50
- const classes = mergeBaseClassName(["tooltip__popup", "base-ui-popup"].filter(Boolean).join(" "), className);
50
+ const classes = mergeBaseClassName("tooltip__popup base-ui-popup", className);
51
51
  return /* @__PURE__ */ jsx(Tooltip$1.Popup, {
52
52
  ref,
53
53
  role,
@@ -62,7 +62,7 @@ function TooltipPopup({ className, ref, role = "tooltip", ...props }) {
62
62
  * positioner, popup, and this viewport when that behavior is needed.
63
63
  */
64
64
  function TooltipViewport({ className, ref, ...props }) {
65
- const classes = mergeBaseClassName(["tooltip__viewport"].filter(Boolean).join(" "), className);
65
+ const classes = mergeBaseClassName("tooltip__viewport", className);
66
66
  return /* @__PURE__ */ jsx(Tooltip$1.Viewport, {
67
67
  ref,
68
68
  "data-slot": "tooltip-viewport",
@@ -71,7 +71,7 @@ function TooltipViewport({ className, ref, ...props }) {
71
71
  });
72
72
  }
73
73
  function TooltipArrow({ className, ref, ...props }) {
74
- const classes = mergeBaseClassName(["tooltip__arrow"].filter(Boolean).join(" "), className);
74
+ const classes = mergeBaseClassName("tooltip__arrow", className);
75
75
  return /* @__PURE__ */ jsx(Tooltip$1.Arrow, {
76
76
  ref,
77
77
  "data-slot": "tooltip-arrow",
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { U as RefreshIcon, d as ChevronDownIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../icons-DKXiSepE.js";
2
+ import { U as RefreshIcon, d as ChevronDownIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../icons-DyOM0EJs.js";
3
3
  import { Button } from "./Button.js";
4
4
  import { Tooltip } from "./Tooltip.js";
5
5
  import { Badge } from "./Badge.js";
@@ -1,4 +1,4 @@
1
- import { i as FileTreeFolder, r as FileTreeFile, t as FileTree } from "../FileTree-CUlXfnmc.js";
1
+ import { i as FileTreeFolder, r as FileTreeFile, t as FileTree } from "../FileTree-CdgfccsM.js";
2
2
  import { SearchField } from "./SearchField.js";
3
3
  import { WorkspaceHeader } from "./WorkspaceHeader.js";
4
4
  import * as React from "react";