@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
@@ -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
  }
@@ -75,6 +75,6 @@
75
75
  }
76
76
 
77
77
  .theme-mode-control__item.radio:focus-visible {
78
- outline: 2px solid Highlight;
78
+ outline: var(--sigvelo-focus-ring-forced);
79
79
  }
80
80
  }
@@ -26,13 +26,7 @@
26
26
  [data-status="rollingBack"]
27
27
  )
28
28
  svg {
29
- animation: think-execution-status-spin 0.8s linear infinite;
30
- }
31
-
32
- @keyframes think-execution-status-spin {
33
- to {
34
- transform: rotate(360deg);
35
- }
29
+ animation: sigvelo-icon-spin 0.8s linear infinite;
36
30
  }
37
31
 
38
32
  @media (prefers-reduced-motion: reduce) {
@@ -144,11 +144,8 @@
144
144
 
145
145
  .think-execution-workbench__run-title {
146
146
  min-inline-size: 0;
147
- overflow: hidden;
148
147
  font-size: var(--sigvelo-text-compact);
149
148
  font-weight: var(--sigvelo-font-weight-semibold);
150
- text-overflow: ellipsis;
151
- white-space: nowrap;
152
149
  }
153
150
 
154
151
  .think-execution-workbench__run-copy code,
@@ -187,9 +187,6 @@ body.is-resizing-side-panel .think-full-app__view-scope {
187
187
 
188
188
  .think-full-app__thread-trigger-title {
189
189
  min-inline-size: 0;
190
- overflow: hidden;
191
- text-overflow: ellipsis;
192
- white-space: nowrap;
193
190
  }
194
191
 
195
192
  .think-full-app__thread-trigger > svg {
@@ -27,13 +27,10 @@
27
27
  min-inline-size: 0;
28
28
  margin: 0;
29
29
  flex: 1 1 auto;
30
- overflow: hidden;
31
30
  color: var(--sigvelo-color-text-muted);
32
31
  font-size: var(--sigvelo-density-compact-control-font-size);
33
32
  font-weight: var(--sigvelo-font-weight-semibold);
34
33
  line-height: var(--sigvelo-leading-tight);
35
- text-overflow: ellipsis;
36
- white-space: nowrap;
37
34
  }
38
35
 
39
36
  .think-thread-picker__search {
@@ -72,7 +69,7 @@
72
69
  }
73
70
 
74
71
  .think-thread-status-indicators__item[data-status="running"] svg {
75
- animation: think-thread-picker-spin 900ms linear infinite;
72
+ animation: sigvelo-icon-spin 900ms linear infinite;
76
73
  }
77
74
 
78
75
  .think-thread-status-indicators__item[data-status="attention"] {
@@ -180,11 +177,8 @@
180
177
  .think-thread-picker__thread-title {
181
178
  min-inline-size: 0;
182
179
  display: block;
183
- overflow: hidden;
184
180
  font-size: var(--sigvelo-density-compact-control-font-size);
185
181
  line-height: var(--sigvelo-leading-tight);
186
- text-overflow: ellipsis;
187
- white-space: nowrap;
188
182
  }
189
183
 
190
184
  .think-thread-picker__delete {
@@ -299,7 +293,7 @@
299
293
  .think-thread-picker__thread[data-thread-status="recovering"]
300
294
  .think-thread-picker__thread-status
301
295
  svg {
302
- animation: think-thread-picker-spin 900ms linear infinite;
296
+ animation: sigvelo-icon-spin 900ms linear infinite;
303
297
  }
304
298
 
305
299
  .think-thread-picker__thread[data-thread-status="error"] .think-thread-picker__thread-status {
@@ -339,12 +333,6 @@
339
333
  flex: 0 0 auto;
340
334
  }
341
335
 
342
- @keyframes think-thread-picker-spin {
343
- to {
344
- transform: rotate(360deg);
345
- }
346
- }
347
-
348
336
  @container responsive-sidebar-shell (inline-size <= 56rem) {
349
337
  .think-thread-picker {
350
338
  block-size: auto;
@@ -40,7 +40,7 @@
40
40
 
41
41
  @media (forced-colors: active) {
42
42
  .toggle-group__item[data-pressed] {
43
- outline: 2px solid Highlight;
43
+ outline: var(--sigvelo-focus-ring-forced);
44
44
  outline-offset: -2px;
45
45
  }
46
46
  }
@@ -23,9 +23,13 @@
23
23
  }
24
24
 
25
25
  .sigvelo-truncate {
26
- min-inline-size: 0;
27
- flex: 1;
28
26
  overflow: hidden;
29
27
  text-overflow: ellipsis;
30
28
  white-space: nowrap;
31
29
  }
30
+
31
+ /* Truncating flex child that also grows to fill its track. */
32
+ .sigvelo-truncate-grow {
33
+ min-inline-size: 0;
34
+ flex: 1;
35
+ }
@@ -534,7 +534,7 @@
534
534
 
535
535
  @media (forced-colors: active) {
536
536
  .workspace-explorer__tree .file-tree__node:is([data-focused], :focus-visible) {
537
- outline: 2px solid Highlight;
537
+ outline: var(--sigvelo-focus-ring-forced);
538
538
  outline-offset: -2px;
539
539
  background-color: Canvas;
540
540
  color: CanvasText;
@@ -0,0 +1,77 @@
1
+ import { flushSync } from "react-dom";
2
+ //#region src/components/_internal/view-transitions.ts
3
+ let documentScopeSequence = 0;
4
+ let restoreActiveDocumentScope = null;
5
+ /**
6
+ * Reports whether motion should be suppressed, honoring both the app-level
7
+ * `data-motion="reduce"` override and the `prefers-reduced-motion` media query.
8
+ * Returns `true` (reduced) when there is no document, e.g. during SSR.
9
+ */
10
+ function motionIsReduced() {
11
+ if (typeof document === "undefined") return true;
12
+ if (document.documentElement.dataset.motion === "reduce") return true;
13
+ return window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? false;
14
+ }
15
+ function isReactTestEnvironment() {
16
+ return globalThis.IS_REACT_ACT_ENVIRONMENT;
17
+ }
18
+ function scopeDocumentTransition(scope) {
19
+ if (!(scope instanceof HTMLElement || scope instanceof SVGElement)) return null;
20
+ restoreActiveDocumentScope?.();
21
+ const rootStyle = document.documentElement.style;
22
+ const scopeStyle = scope.style;
23
+ const rootValue = rootStyle.getPropertyValue("view-transition-name");
24
+ const rootPriority = rootStyle.getPropertyPriority("view-transition-name");
25
+ const scopeValue = scopeStyle.getPropertyValue("view-transition-name");
26
+ const scopePriority = scopeStyle.getPropertyPriority("view-transition-name");
27
+ rootStyle.setProperty("view-transition-name", "none", "important");
28
+ scopeStyle.setProperty("view-transition-name", `sigvelo-transition-scope-${++documentScopeSequence}`, "important");
29
+ let active = true;
30
+ const restore = () => {
31
+ if (!active) return;
32
+ active = false;
33
+ if (rootValue) rootStyle.setProperty("view-transition-name", rootValue, rootPriority);
34
+ else rootStyle.removeProperty("view-transition-name");
35
+ if (scopeValue) scopeStyle.setProperty("view-transition-name", scopeValue, scopePriority);
36
+ else scopeStyle.removeProperty("view-transition-name");
37
+ if (restoreActiveDocumentScope === restore) restoreActiveDocumentScope = null;
38
+ };
39
+ restoreActiveDocumentScope = restore;
40
+ return restore;
41
+ }
42
+ /**
43
+ * Runs one synchronous React update inside the narrowest supported native view
44
+ * transition. Unsupported and reduced-motion environments commit immediately.
45
+ */
46
+ function runViewTransition({ scope, update }) {
47
+ let committed = false;
48
+ const commitOnce = () => {
49
+ if (committed) return;
50
+ committed = true;
51
+ flushSync(update);
52
+ };
53
+ if (typeof document === "undefined" || motionIsReduced() || isReactTestEnvironment()) {
54
+ commitOnce();
55
+ return null;
56
+ }
57
+ const scopedHost = scope;
58
+ const documentHost = document;
59
+ const useScopedHost = typeof scopedHost?.startViewTransition === "function";
60
+ const host = useScopedHost ? scopedHost : typeof documentHost.startViewTransition === "function" ? documentHost : null;
61
+ if (!host?.startViewTransition) {
62
+ commitOnce();
63
+ return null;
64
+ }
65
+ const restoreDocumentScope = useScopedHost ? null : scopeDocumentTransition(scope);
66
+ try {
67
+ const transition = host.startViewTransition(commitOnce);
68
+ if (restoreDocumentScope) transition.finished.finally(restoreDocumentScope).catch(() => void 0);
69
+ return transition;
70
+ } catch {
71
+ restoreDocumentScope?.();
72
+ commitOnce();
73
+ return null;
74
+ }
75
+ }
76
+ //#endregion
77
+ export { runViewTransition as n, motionIsReduced as t };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-b/react-components",
3
- "version": "0.20.0",
3
+ "version": "0.20.4",
4
4
  "description": "MCP-B React components built on Base UI and shared design tokens, including Cloudflare Think chat primitives.",
5
5
  "homepage": "https://design-system.sigvelo.com",
6
6
  "bugs": {
@@ -57,7 +57,7 @@
57
57
  "streamdown": "^2.5.0",
58
58
  "unist-util-visit": "^5.1.0",
59
59
  "yet-another-react-lightbox": "^3.32.1",
60
- "@mcp-b/design-tokens": "0.20.0"
60
+ "@mcp-b/design-tokens": "0.20.4"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@ai-sdk/react": "^3.0.222",