@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,9 +1,9 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { a as WorkspaceNavigationRestorationBoundary, n as WorkspaceNavigationProvider, o as useRequiredWorkspaceNavigationRestoration, r as resolveWorkspaceLink, t as WorkspaceFileLink } from "../WorkspaceLink-BYYeTQLf.js";
3
+ import { n as mergeRefs } from "../merge-refs-DF_7w2x_.js";
3
4
  import { inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceMediaPath, isWorkspaceSkillPath, parseWorkspaceSkill } from "./WorkspaceFile.js";
4
5
  import { WorkspaceBrowser } from "./WorkspaceBrowser.js";
5
- import { t as WorkspaceFileView } from "../WorkspaceFileView-CEdArlOT.js";
6
- import { t as mergeRefs } from "../merge-refs-KlanQB7A.js";
6
+ import { t as WorkspaceFileView } from "../WorkspaceFileView-Bxx4wEzJ.js";
7
7
  import { useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryOptions, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions } from "./Workspace.js";
8
8
  import * as React from "react";
9
9
  import { jsx } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { t as WorkspaceFileView } from "../WorkspaceFileView-CEdArlOT.js";
1
+ import { t as WorkspaceFileView } from "../WorkspaceFileView-Bxx4wEzJ.js";
2
2
  export { WorkspaceFileView };
@@ -1,4 +1,4 @@
1
- import { U as RefreshIcon } from "../icons-DKXiSepE.js";
1
+ import { U as RefreshIcon } from "../icons-DyOM0EJs.js";
2
2
  import { AppTopBar } from "./AppTopBar.js";
3
3
  import "react";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { $ as WrenchIcon, A as McpIcon, B as PlayIcon, C as FolderIcon, D as InfoIcon, E as ImageIcon, F as MoonIcon, G as SidebarIcon, H as QueueIcon, I as MoveToFrontIcon, J as StopIcon, K as SpinnerIcon, L as PaperclipIcon, M as MicrophoneIcon, N as MinusIcon, O as LinkIcon, P as MonitorIcon, Q as WarningIcon, R as PauseIcon, S as FileIcon, T as HashIcon, U as RefreshIcon, V as PlusIcon, W as SearchIcon, X as TerminalIcon, Y as SunIcon, Z as TrashIcon, _ as DotIcon, a as ArrowUpIcon, b as EyeIcon, c as BrainIcon, d as ChevronDownIcon, et as XIcon, f as ChevronLeftIcon, g as DiscordIcon, h as CopyIcon, i as ArrowRightIcon, j as MessageSquareIcon, k as MaximizeIcon, l as CalendarIcon, m as CodeIcon, n as ArrowDownIcon, o as BookmarkIcon, p as ChevronRightIcon, q as SquareIcon, r as ArrowLeftIcon, s as BoxIcon, t as ArchiveIcon, u as CheckIcon, v as DownloadIcon, w as FolderOpenIcon, x as EyeOffIcon, y as EllipsisIcon, z as PencilIcon } from "../icons-DKXiSepE.js";
1
+ import { $ as WrenchIcon, A as McpIcon, B as PlayIcon, C as FolderIcon, D as InfoIcon, E as ImageIcon, F as MoonIcon, G as SidebarIcon, H as QueueIcon, I as MoveToFrontIcon, J as StopIcon, K as SpinnerIcon, L as PaperclipIcon, M as MicrophoneIcon, N as MinusIcon, O as LinkIcon, P as MonitorIcon, Q as WarningIcon, R as PauseIcon, S as FileIcon, T as HashIcon, U as RefreshIcon, V as PlusIcon, W as SearchIcon, X as TerminalIcon, Y as SunIcon, Z as TrashIcon, _ as DotIcon, a as ArrowUpIcon, b as EyeIcon, c as BrainIcon, d as ChevronDownIcon, et as XIcon, f as ChevronLeftIcon, g as DiscordIcon, h as CopyIcon, i as ArrowRightIcon, j as MessageSquareIcon, k as MaximizeIcon, l as CalendarIcon, m as CodeIcon, n as ArrowDownIcon, o as BookmarkIcon, p as ChevronRightIcon, q as SquareIcon, r as ArrowLeftIcon, s as BoxIcon, t as ArchiveIcon, u as CheckIcon, v as DownloadIcon, w as FolderOpenIcon, x as EyeOffIcon, y as EllipsisIcon, z as PencilIcon } from "../icons-DyOM0EJs.js";
2
2
  export { ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, BookmarkIcon, BoxIcon, BrainIcon, CalendarIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CodeIcon, CopyIcon, DiscordIcon, DotIcon, DownloadIcon, EllipsisIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, HashIcon, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, McpIcon, MessageSquareIcon, MicrophoneIcon, MinusIcon, MonitorIcon, MoonIcon, MoveToFrontIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, QueueIcon, RefreshIcon, SearchIcon, SidebarIcon, SpinnerIcon, SquareIcon, StopIcon, SunIcon, TerminalIcon, TrashIcon, WarningIcon, WrenchIcon, XIcon };
@@ -1,4 +1,4 @@
1
- import { h as CopyIcon, u as CheckIcon } from "./icons-DKXiSepE.js";
1
+ import { h as CopyIcon, u as CheckIcon } from "./icons-DyOM0EJs.js";
2
2
  import { Button } from "./components/Button.js";
3
3
  import { Tooltip } from "./components/Tooltip.js";
4
4
  import * as React from "react";
@@ -0,0 +1,38 @@
1
+ //#region src/components/_internal/format.ts
2
+ /**
3
+ * Small string/number formatting helpers shared across components, so the same
4
+ * one-liners are not re-derived in each file.
5
+ */
6
+ /**
7
+ * Constrains `value` to the inclusive `[min, max]` range.
8
+ */
9
+ function clamp(value, min, max) {
10
+ return Math.min(max, Math.max(min, value));
11
+ }
12
+ /**
13
+ * Uppercases the first character of `value`, leaving the rest untouched.
14
+ */
15
+ function capitalize(value) {
16
+ return value.charAt(0).toUpperCase() + value.slice(1);
17
+ }
18
+ /**
19
+ * Turns a `kebab-case` or `snake_case` identifier into a space-separated,
20
+ * word-capitalized label (e.g. `"service-tier"` → `"Service Tier"`).
21
+ */
22
+ function titleCase(value) {
23
+ return value.split(/[-_]/).filter(Boolean).map((word) => word[0].toUpperCase() + word.slice(1)).join(" ");
24
+ }
25
+ /**
26
+ * Formats a whole number of seconds as a clock string — `m:ss`, widening to
27
+ * `h:mm:ss` once it reaches an hour. Negative and fractional inputs are floored
28
+ * to whole seconds, so callers that need rounding should round before calling.
29
+ */
30
+ function formatClock(totalSeconds) {
31
+ const total = Math.max(0, Math.floor(totalSeconds));
32
+ const hours = Math.floor(total / 3600);
33
+ const minutes = Math.floor(total % 3600 / 60);
34
+ const seconds = String(total % 60).padStart(2, "0");
35
+ return hours > 0 ? `${hours}:${String(minutes).padStart(2, "0")}:${seconds}` : `${minutes}:${seconds}`;
36
+ }
37
+ //#endregion
38
+ export { titleCase as i, clamp as n, formatClock as r, capitalize as t };
@@ -1,3 +1,4 @@
1
+ import { t as cx } from "./class-names-BiMDVpUo.js";
1
2
  import { jsx } from "react/jsx-runtime";
2
3
  import { Archive, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Bookmark, Box, Brain, CalendarDays, Check, ChevronDown, ChevronLeft, ChevronRight, CircleStop, CodeXml, Copy, CornerDownRight, Dot, Download, Ellipsis, Eye, EyeOff, File, Folder, FolderOpen, Hash, Image, Info, Link2, ListRestart, LoaderCircle, Maximize2, MessageSquare, Mic, Minus, Monitor, Moon, PanelLeft, Paperclip, Pause, Pencil, Play, Plus, RefreshCw, Search, Square, Sun, Terminal, Trash2, TriangleAlert, Wrench, X } from "lucide-react";
3
4
  import { SiDiscord, SiModelcontextprotocol } from "react-icons/si";
@@ -61,7 +62,7 @@ function SpinnerIcon({ className, size = 16, strokeWidth = 1.75, ...props }) {
61
62
  strokeWidth,
62
63
  "aria-hidden": "true",
63
64
  focusable: "false",
64
- className: ["sigvelo-icon--spinner", className].filter(Boolean).join(" "),
65
+ className: cx("sigvelo-icon--spinner", className),
65
66
  ...props
66
67
  });
67
68
  }
@@ -15,4 +15,4 @@ function mergeRefs(...refs) {
15
15
  };
16
16
  }
17
17
  //#endregion
18
- export { mergeRefs as t };
18
+ export { mergeRefs as n, assignRef as t };
@@ -18,9 +18,6 @@
18
18
  min-width: 0;
19
19
  max-width: max-content;
20
20
  color: var(--sigvelo-color-text);
21
- overflow: hidden;
22
- text-overflow: ellipsis;
23
- white-space: nowrap;
24
21
  }
25
22
 
26
23
  .activity__item-icon {
@@ -339,7 +339,7 @@
339
339
 
340
340
  @media (forced-colors: active) {
341
341
  .activity__trigger:focus-visible {
342
- outline: 2px solid Highlight;
342
+ outline: var(--sigvelo-focus-ring-forced);
343
343
  outline-offset: 2px;
344
344
  }
345
345
  }
@@ -60,13 +60,6 @@
60
60
  line-height: 1.35;
61
61
  }
62
62
 
63
- .agent-attention__title,
64
- .agent-attention__description {
65
- overflow: hidden;
66
- text-overflow: ellipsis;
67
- white-space: nowrap;
68
- }
69
-
70
63
  .agent-attention__title {
71
64
  font-size: var(--sigvelo-text-compact);
72
65
  font-weight: var(--sigvelo-font-weight-semibold);
@@ -175,7 +175,7 @@
175
175
  }
176
176
 
177
177
  .agent-connect__target[data-selected="true"] {
178
- outline: 2px solid Highlight;
178
+ outline: var(--sigvelo-focus-ring-forced);
179
179
  outline-offset: -2px;
180
180
  }
181
181
  }
@@ -38,13 +38,10 @@
38
38
  max-inline-size: min(20rem, 45vw);
39
39
  align-self: center;
40
40
  justify-self: center;
41
- overflow: hidden;
42
41
  color: var(--sigvelo-color-text);
43
42
  font-size: var(--sigvelo-density-compact-control-font-size);
44
43
  font-weight: var(--sigvelo-font-weight-semibold);
45
44
  line-height: var(--sigvelo-leading-tight);
46
- text-overflow: ellipsis;
47
- white-space: nowrap;
48
45
  }
49
46
 
50
47
  .app-top-bar__trailing {
@@ -98,13 +95,13 @@
98
95
  }
99
96
 
100
97
  .app-top-bar__button:focus-visible {
101
- outline: 2px solid Highlight;
98
+ outline: var(--sigvelo-focus-ring-forced);
102
99
  outline-offset: 2px;
103
100
  box-shadow: none;
104
101
  }
105
102
 
106
103
  .app-top-bar__button:is([aria-expanded="true"], [data-popup-open], [data-pressed]) {
107
- outline: 2px solid Highlight;
104
+ outline: var(--sigvelo-focus-ring-forced);
108
105
  outline-offset: -2px;
109
106
  }
110
107
  }
@@ -66,9 +66,6 @@
66
66
  font-size: var(--sigvelo-text-xs);
67
67
  color: var(--sigvelo-color-text-muted);
68
68
  max-inline-size: 80%;
69
- overflow: hidden;
70
- text-overflow: ellipsis;
71
- white-space: nowrap;
72
69
  }
73
70
 
74
71
  /* An expired view showing a screenshot fallback keeps the image flush */
@@ -95,7 +92,7 @@
95
92
  }
96
93
 
97
94
  .browser-live-view__state-spinner {
98
- animation: browser-live-view-spin 900ms linear infinite;
95
+ animation: sigvelo-icon-spin 900ms linear infinite;
99
96
  }
100
97
 
101
98
  /* Expand affordance, video-player style: quiet until the box is hovered or
@@ -157,12 +154,6 @@
157
154
  }
158
155
  }
159
156
 
160
- @keyframes browser-live-view-spin {
161
- to {
162
- transform: rotate(360deg);
163
- }
164
- }
165
-
166
157
  @media (prefers-reduced-motion: reduce) {
167
158
  .browser-live-view__badge-dot,
168
159
  .browser-live-view__state-spinner {
@@ -61,12 +61,9 @@
61
61
  }
62
62
 
63
63
  .browser-run-panel__tab-title {
64
- overflow: hidden;
65
64
  max-inline-size: 100%;
66
65
  font-size: var(--sigvelo-text-xs);
67
66
  line-height: var(--sigvelo-leading-tight);
68
- text-overflow: ellipsis;
69
- white-space: nowrap;
70
67
  }
71
68
 
72
69
  .browser-run-panel__address-bar {
@@ -105,13 +102,7 @@
105
102
  }
106
103
 
107
104
  .browser-run-panel__spinner {
108
- animation: browser-run-panel-spin 900ms linear infinite;
109
- }
110
-
111
- @keyframes browser-run-panel-spin {
112
- to {
113
- transform: rotate(360deg);
114
- }
105
+ animation: sigvelo-icon-spin 900ms linear infinite;
115
106
  }
116
107
 
117
108
  @media (prefers-reduced-motion: reduce) {
@@ -126,7 +117,7 @@
126
117
 
127
118
  @media (forced-colors: active) {
128
119
  .browser-run-panel__tab[data-active] {
129
- outline: 2px solid Highlight;
120
+ outline: var(--sigvelo-focus-ring-forced);
130
121
  outline-offset: -2px;
131
122
  }
132
123
  }
@@ -44,7 +44,7 @@
44
44
  background-color: var(--sigvelo-color-primary-bg-subtle);
45
45
  border-color: var(--sigvelo-color-primary-border-muted);
46
46
  color: var(--sigvelo-color-primary-text);
47
- animation: chain-of-thought-spin 1.6s linear infinite;
47
+ animation: sigvelo-icon-spin 1.6s linear infinite;
48
48
  }
49
49
 
50
50
  .chain-of-thought__step-body {
@@ -105,9 +105,6 @@
105
105
  color: var(--sigvelo-color-text);
106
106
  text-decoration: none;
107
107
  max-inline-size: 18rem;
108
- overflow: hidden;
109
- text-overflow: ellipsis;
110
- white-space: nowrap;
111
108
  transition:
112
109
  background-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
113
110
  border-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
@@ -157,15 +154,6 @@
157
154
  color: var(--sigvelo-color-text-muted);
158
155
  }
159
156
 
160
- @keyframes chain-of-thought-spin {
161
- from {
162
- transform: rotate(0deg);
163
- }
164
- to {
165
- transform: rotate(360deg);
166
- }
167
- }
168
-
169
157
  @media (prefers-reduced-motion: reduce) {
170
158
  .chain-of-thought__step--active .chain-of-thought__step-indicator {
171
159
  animation: none;
@@ -184,7 +172,7 @@
184
172
 
185
173
  .chain-of-thought__header:focus-visible,
186
174
  .chain-of-thought__search-result:focus-visible {
187
- outline: 2px solid Highlight;
175
+ outline: var(--sigvelo-focus-ring-forced);
188
176
  outline-offset: 2px;
189
177
  }
190
178
  }
@@ -52,12 +52,6 @@
52
52
  }
53
53
 
54
54
  .checkbox-group__title,
55
- .checkbox-group__description {
56
- overflow: hidden;
57
- text-overflow: ellipsis;
58
- white-space: nowrap;
59
- }
60
-
61
55
  .checkbox-group__title {
62
56
  font-weight: var(--sigvelo-font-weight-semibold);
63
57
  }
@@ -60,10 +60,7 @@
60
60
  justify-content: center;
61
61
  gap: var(--sigvelo-spacing-1);
62
62
  min-inline-size: 0;
63
- overflow: hidden;
64
63
  text-align: center;
65
- text-overflow: ellipsis;
66
- white-space: nowrap;
67
64
  }
68
65
 
69
66
  .codex-model-selector__summary-effort,
@@ -145,9 +142,6 @@
145
142
  .codex-model-selector__submenu-value {
146
143
  min-inline-size: 0;
147
144
  margin-inline-start: auto;
148
- overflow: hidden;
149
- text-overflow: ellipsis;
150
- white-space: nowrap;
151
145
  }
152
146
 
153
147
  .codex-model-selector__option {
@@ -67,10 +67,7 @@
67
67
 
68
68
  .commit__message {
69
69
  min-inline-size: 0;
70
- overflow: hidden;
71
70
  font-weight: var(--sigvelo-font-weight-semibold);
72
- text-overflow: ellipsis;
73
- white-space: nowrap;
74
71
  }
75
72
 
76
73
  .commit__metadata {
@@ -146,9 +143,6 @@
146
143
  color: var(--sigvelo-color-text);
147
144
  flex: 1;
148
145
  min-inline-size: 0;
149
- overflow: hidden;
150
- text-overflow: ellipsis;
151
- white-space: nowrap;
152
146
  }
153
147
 
154
148
  .commit__file-additions {
@@ -177,7 +171,7 @@
177
171
  }
178
172
 
179
173
  .commit__header:focus-visible {
180
- outline: 2px solid Highlight;
174
+ outline: var(--sigvelo-focus-ring-forced);
181
175
  outline-offset: 2px;
182
176
  }
183
177
  }
@@ -88,9 +88,6 @@
88
88
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
89
89
  var(--sigvelo-color-neutral-border-subtle);
90
90
  border-radius: var(--sigvelo-radius-sm);
91
- overflow: hidden;
92
- text-overflow: ellipsis;
93
- white-space: nowrap;
94
91
  }
95
92
 
96
93
  .environment-variables__required {
@@ -159,7 +159,7 @@
159
159
 
160
160
  .file-tree__node:focus-visible,
161
161
  .file-tree__node[data-focused] {
162
- outline: 2px solid Highlight;
162
+ outline: var(--sigvelo-focus-ring-forced);
163
163
  outline-offset: 2px;
164
164
  }
165
165
 
@@ -68,13 +68,10 @@
68
68
  }
69
69
 
70
70
  .inline-citation__title {
71
- overflow: hidden;
72
71
  color: var(--sigvelo-color-text);
73
72
  font-size: var(--sigvelo-text-compact);
74
73
  font-weight: var(--sigvelo-font-weight-semibold);
75
74
  line-height: var(--sigvelo-leading-compact);
76
- text-overflow: ellipsis;
77
- white-space: nowrap;
78
75
  }
79
76
 
80
77
  .inline-citation__location,
@@ -100,7 +97,7 @@
100
97
 
101
98
  @media (forced-colors: active) {
102
99
  .inline-citation__trigger:focus-visible {
103
- outline: 2px solid Highlight;
100
+ outline: var(--sigvelo-focus-ring-forced);
104
101
  outline-offset: 2px;
105
102
  box-shadow: none;
106
103
  }
@@ -110,9 +110,6 @@
110
110
 
111
111
  .mcp-server-picker__description {
112
112
  min-inline-size: 0;
113
- overflow: hidden;
114
- text-overflow: ellipsis;
115
- white-space: nowrap;
116
113
  color: var(--sigvelo-color-text);
117
114
  }
118
115
 
@@ -83,12 +83,6 @@
83
83
  flex-shrink: 0;
84
84
  }
85
85
 
86
- .message__attachment-name {
87
- overflow: hidden;
88
- text-overflow: ellipsis;
89
- white-space: nowrap;
90
- }
91
-
92
86
  .message__attachment-zoom {
93
87
  display: block;
94
88
  min-block-size: 0;
@@ -181,7 +181,7 @@
181
181
  @media (forced-colors: active) {
182
182
  .model-selector__item:focus-visible,
183
183
  .model-selector__item:hover {
184
- outline: 2px solid Highlight;
184
+ outline: var(--sigvelo-focus-ring-forced);
185
185
  outline-offset: -2px;
186
186
  }
187
187
  }
@@ -141,12 +141,6 @@
141
141
  color: var(--sigvelo-color-text-muted);
142
142
  }
143
143
 
144
- .prompt-input__attachment-name {
145
- overflow: hidden;
146
- text-overflow: ellipsis;
147
- white-space: nowrap;
148
- }
149
-
150
144
  .prompt-input__attachment-remove {
151
145
  display: inline-flex;
152
146
  align-items: center;
@@ -283,7 +277,7 @@
283
277
  }
284
278
 
285
279
  .prompt-input__dictation[data-starting] .prompt-input__dictation-icon {
286
- animation: prompt-input-spin 900ms linear infinite;
280
+ animation: sigvelo-icon-spin 900ms linear infinite;
287
281
  }
288
282
 
289
283
  @media (prefers-reduced-motion: reduce) {
@@ -328,7 +322,7 @@
328
322
  }
329
323
 
330
324
  .prompt-input__submit-spinner {
331
- animation: prompt-input-spin 900ms linear infinite;
325
+ animation: sigvelo-icon-spin 900ms linear infinite;
332
326
  }
333
327
 
334
328
  .prompt-input__action-menu {
@@ -563,12 +557,6 @@
563
557
  min-inline-size: 0;
564
558
  }
565
559
 
566
- .prompt-input__command-description {
567
- overflow: hidden;
568
- text-overflow: ellipsis;
569
- white-space: nowrap;
570
- }
571
-
572
560
  .prompt-input__command-meta {
573
561
  color: var(--prompt-input-secondary-text);
574
562
  font-size: var(--sigvelo-density-compact-control-font-size);
@@ -603,10 +591,7 @@
603
591
  }
604
592
 
605
593
  .prompt-input__reference-label {
606
- overflow: hidden;
607
594
  max-inline-size: 18rem;
608
- text-overflow: ellipsis;
609
- white-space: nowrap;
610
595
  }
611
596
 
612
597
  .prompt-input__reference-remove {
@@ -638,13 +623,6 @@
638
623
  max-inline-size: min(20rem, 45cqi);
639
624
  }
640
625
 
641
- .prompt-input__context-category,
642
- .prompt-input__context-value {
643
- overflow: hidden;
644
- text-overflow: ellipsis;
645
- white-space: nowrap;
646
- }
647
-
648
626
  .prompt-input__context-category {
649
627
  flex: 0 0 auto;
650
628
  color: var(--sigvelo-color-text);
@@ -673,15 +651,6 @@
673
651
  margin-inline-start: auto;
674
652
  }
675
653
 
676
- @keyframes prompt-input-spin {
677
- from {
678
- transform: rotate(0deg);
679
- }
680
- to {
681
- transform: rotate(360deg);
682
- }
683
- }
684
-
685
654
  @media (prefers-reduced-motion: reduce) {
686
655
  .prompt-input__submit-spinner {
687
656
  animation: none;
@@ -694,7 +663,7 @@
694
663
  }
695
664
 
696
665
  .prompt-input:focus-within {
697
- outline: 2px solid Highlight;
666
+ outline: var(--sigvelo-focus-ring-forced);
698
667
  outline-offset: 2px;
699
668
  }
700
669
  }
@@ -237,7 +237,7 @@
237
237
  }
238
238
 
239
239
  .queue__section-trigger:focus-visible {
240
- outline: 2px solid Highlight;
240
+ outline: var(--sigvelo-focus-ring-forced);
241
241
  outline-offset: 2px;
242
242
  }
243
243
  }
@@ -740,7 +740,7 @@
740
740
  [data-slot="number-field-input"],
741
741
  [data-slot="toolbar-input"]
742
742
  ):focus-visible {
743
- outline: 2px solid Highlight;
743
+ outline: var(--sigvelo-focus-ring-forced);
744
744
  outline-offset: 2px;
745
745
  box-shadow: none;
746
746
  }
@@ -750,7 +750,7 @@
750
750
  [data-slot="reasoning-trigger"],
751
751
  [data-slot="sources-trigger"]
752
752
  ):focus-visible {
753
- outline: 2px solid Highlight;
753
+ outline: var(--sigvelo-focus-ring-forced);
754
754
  outline-offset: 2px;
755
755
  box-shadow: none;
756
756
  }
@@ -62,9 +62,6 @@
62
62
  font-size: var(--sigvelo-text-compact);
63
63
  font-weight: var(--sigvelo-font-weight-semibold);
64
64
  color: var(--sigvelo-color-text);
65
- overflow: hidden;
66
- text-overflow: ellipsis;
67
- white-space: nowrap;
68
65
  }
69
66
 
70
67
  .sources__link-description {
@@ -90,7 +87,7 @@
90
87
  }
91
88
 
92
89
  .sources__link:focus-visible {
93
- outline: 2px solid Highlight;
90
+ outline: var(--sigvelo-focus-ring-forced);
94
91
  outline-offset: 2px;
95
92
  }
96
93
  }
@@ -119,7 +119,7 @@
119
119
  }
120
120
 
121
121
  .stepper__indicator[data-loading] .stepper__indicator-content {
122
- animation: stepper-spin 800ms linear infinite;
122
+ animation: sigvelo-icon-spin 800ms linear infinite;
123
123
  }
124
124
 
125
125
  .stepper__separator {
@@ -206,12 +206,6 @@
206
206
  display: none;
207
207
  }
208
208
 
209
- @keyframes stepper-spin {
210
- to {
211
- transform: rotate(360deg);
212
- }
213
- }
214
-
215
209
  @media (prefers-reduced-motion: reduce) {
216
210
  .stepper__indicator[data-loading] .stepper__indicator-content {
217
211
  animation: none;
@@ -43,12 +43,9 @@
43
43
 
44
44
  .subagent-run__title {
45
45
  min-inline-size: 0;
46
- overflow: hidden;
47
46
  color: var(--sigvelo-color-text);
48
47
  font-size: var(--sigvelo-text-sm);
49
48
  font-weight: var(--sigvelo-font-weight-semibold);
50
- text-overflow: ellipsis;
51
- white-space: nowrap;
52
49
  }
53
50
 
54
51
  .subagent-run__selector .subagent-run__title {
@@ -123,7 +123,7 @@
123
123
  }
124
124
 
125
125
  .task__trigger:focus-visible {
126
- outline: 2px solid Highlight;
126
+ outline: var(--sigvelo-focus-ring-forced);
127
127
  outline-offset: 2px;
128
128
  }
129
129
  }
@@ -126,9 +126,6 @@
126
126
  font-family: var(--sigvelo-font-mono);
127
127
  font-size: var(--sigvelo-text-compact);
128
128
  font-weight: var(--sigvelo-font-weight-normal);
129
- overflow: hidden;
130
- text-overflow: ellipsis;
131
- white-space: nowrap;
132
129
  }
133
130
 
134
131
  .test-results__suite-stats {
@@ -191,7 +188,7 @@
191
188
 
192
189
  .test-results__test-status--running {
193
190
  color: var(--sigvelo-color-primary-text);
194
- animation: test-results-spin 1.4s linear infinite;
191
+ animation: sigvelo-icon-spin 1.4s linear infinite;
195
192
  }
196
193
 
197
194
  .test-results__test-name {
@@ -200,9 +197,6 @@
200
197
  font-family: var(--sigvelo-font-mono);
201
198
  font-size: var(--sigvelo-text-compact);
202
199
  color: var(--sigvelo-color-text);
203
- overflow: hidden;
204
- text-overflow: ellipsis;
205
- white-space: nowrap;
206
200
  }
207
201
 
208
202
  .test-results__test-duration {
@@ -250,15 +244,6 @@
250
244
  font-weight: var(--sigvelo-font-weight-semibold);
251
245
  }
252
246
 
253
- @keyframes test-results-spin {
254
- from {
255
- transform: rotate(0deg);
256
- }
257
- to {
258
- transform: rotate(360deg);
259
- }
260
- }
261
-
262
247
  @media (prefers-reduced-motion: reduce) {
263
248
  .test-results__progress-segment {
264
249
  transition: none;
@@ -285,7 +270,7 @@
285
270
  }
286
271
 
287
272
  .test-results__suite-trigger:focus-visible {
288
- outline: 2px solid Highlight;
273
+ outline: var(--sigvelo-focus-ring-forced);
289
274
  outline-offset: 2px;
290
275
  }
291
276
  }